diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/BackupEngineBaseResource.tsp b/specification/recoveryservicesbackup/RecoveryServices.Management/BackupEngineBaseResource.tsp new file mode 100644 index 000000000000..44be7da1adf1 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/BackupEngineBaseResource.tsp @@ -0,0 +1,80 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using Azure.ResourceManager.Legacy; +using TypeSpec.Http; + +namespace Microsoft.RecoveryServices; +/** + * The base backup engine class. All workload specific backup engines derive from this class. + */ +@parentResource(VaultResource) +model BackupEngineBaseResource + is TrackedResourceWithOptionalLocation { + ...ResourceNameParameter< + Resource = BackupEngineBaseResource, + KeyName = "backupEngineName", + SegmentName = "backupEngines", + NamePattern = "" + >; + + /** + * Optional ETag. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + eTag?: string; +} + +@armResourceOperations +interface BackupEngines { + /** + * Returns backup management server registered to Recovery Services Vault. + */ + get is ArmResourceRead< + BackupEngineBaseResource, + Parameters = { + /** + * OData filter options. + */ + @query("$filter") + $filter?: string; + + /** + * skipToken Filter. + */ + @query("$skipToken") + $skipToken?: string; + } + >; + + /** + * Backup management servers registered to Recovery Services Vault. Returns a pageable list of servers. + */ + @list + list is ArmResourceListByParent< + BackupEngineBaseResource, + Parameters = { + /** + * OData filter options. + */ + @query("$filter") + $filter?: string; + + /** + * skipToken Filter. + */ + @query("$skipToken") + $skipToken?: string; + }, + Response = ArmResponse + >; +} + +@@doc(BackupEngineBaseResource.name, "Name of the backup management server."); +@@doc(BackupEngineBaseResource.properties, + "BackupEngineBaseResource properties" +); diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/BackupResourceConfigResource.tsp b/specification/recoveryservicesbackup/RecoveryServices.Management/BackupResourceConfigResource.tsp new file mode 100644 index 000000000000..689ac73683b5 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/BackupResourceConfigResource.tsp @@ -0,0 +1,180 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using Azure.ResourceManager.Legacy; +using TypeSpec.Http; + +namespace Microsoft.RecoveryServices; +/** + * The resource storage details. + */ +@singleton("vaultstorageconfig") +@parentResource(VaultResource) +model BackupResourceConfigResource + is TrackedResourceWithOptionalLocation { + ...ResourceNameParameter< + Resource = BackupResourceConfigResource, + KeyName = "backupstorageconfig", + SegmentName = "backupstorageconfig", + NamePattern = "" + >; + + /** + * Optional ETag. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + eTag?: string; +} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@armResourceOperations +interface BackupResourceStorageConfigsNonCRR { + /** + * Fetches resource storage config. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + get is ArmResourceRead; + + /** + * Updates vault storage model type. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + update is ArmResourceCreateOrReplaceSync< + BackupResourceConfigResource, + Response = ArmResourceUpdatedResponse + >; + + /** + * Updates vault storage model type. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @patch(#{ implicitOptionality: false }) + patch is ArmCustomPatchSync< + BackupResourceConfigResource, + PatchModel = BackupResourceConfigResource, + Response = ArmNoContentResponse + >; + + /** + * Prepares source vault for Data Move operation + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @action("prepareDataMove") + bmsPrepareDataMove is ArmResourceActionAsync< + BackupResourceConfigResource, + PrepareDataMoveRequest, + OkResponse + >; + + /** + * Triggers Data Move Operation on target vault + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @action("triggerDataMove") + bmsTriggerDataMove is ArmResourceActionAsync< + BackupResourceConfigResource, + TriggerDataMoveRequest, + OkResponse + >; +} + +@armResourceOperations +interface BackupResourceConfigOperationResultOps + extends Azure.ResourceManager.Legacy.LegacyOperations< + { + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + + /** vaults */ + @path @segment("vaults") vaultName: string, + + /** backupStorageConfigName */ + @path + @segment("backupstorageconfig") + backupStorageConfigName: "vaultstorageconfig", + }, + KeysOf> + > {} + +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@armResourceOperations +interface BMSPrepareDataMoveOperationResult { + /** + * Fetches operation status for data move operation on vault + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + get is BackupResourceConfigOperationResultOps.Read< + BackupResourceConfigResource, + Response = ArmResponse | AcceptedResponse + >; +} + +@armResourceOperations +interface BackupResourceConfigOperationStatusOps + extends Azure.ResourceManager.Legacy.LegacyOperations< + { + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + + /** vaults */ + @path @segment("vaults") vaultName: string, + + /** backupStorageConfigName */ + @path + @segment("backupstorageconfig") + backupStorageConfigName: "vaultstorageconfig", + }, + KeysOf> + > {} + +#suppress "@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@armResourceOperations +interface BackupResourceConfigOperationStatuses { + /** + * Fetches Operation Result for Prepare Data Move + */ + @get + getOperationStatus is BackupResourceConfigOperationStatusOps.Read< + BackupResourceConfigResource, + Response = ArmResponse + >; +} + +@@doc(BackupResourceConfigResource.name, ""); +@@doc(BackupResourceConfigResource.properties, + "BackupResourceConfigResource properties" +); +@@doc(BackupResourceStorageConfigsNonCRR.update::parameters.resource, + "Vault storage config request" +); +@@doc(BackupResourceStorageConfigsNonCRR.patch::parameters.properties, + "Vault storage config request" +); +@@doc(BackupResourceStorageConfigsNonCRR.bmsPrepareDataMove::parameters.body, + "Prepare data move request" +); +@@doc(BackupResourceStorageConfigsNonCRR.bmsTriggerDataMove::parameters.body, + "Trigger data move request" +); diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/BackupResourceEncryptionConfigExtendedResource.tsp b/specification/recoveryservicesbackup/RecoveryServices.Management/BackupResourceEncryptionConfigExtendedResource.tsp new file mode 100644 index 000000000000..74eeccd2750e --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/BackupResourceEncryptionConfigExtendedResource.tsp @@ -0,0 +1,84 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using Azure.ResourceManager.Legacy; +using TypeSpec.Http; + +namespace Microsoft.RecoveryServices; + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@singleton("backupResourceEncryptionConfig") +@parentResource(VaultResource) +@doc("") +model BackupResourceEncryptionConfigExtendedResource + is TrackedResourceWithOptionalLocation { + ...ResourceNameParameter< + Resource = BackupResourceEncryptionConfigExtendedResource, + KeyName = "backupEncryptionConfig", + SegmentName = "backupEncryptionConfigs", + NamePattern = "" + >; + + /** + * Optional ETag. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + eTag?: string; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@singleton("backupResourceEncryptionConfig") +@parentResource(VaultResource) +@doc("") +model BackupResourceEncryptionConfigResource + is TrackedResourceWithOptionalLocation { + ...ResourceNameParameter< + Resource = BackupResourceEncryptionConfigResource, + KeyName = "backupEncryptionConfig", + SegmentName = "backupEncryptionConfigs", + NamePattern = "" + >; + + /** + * Optional ETag. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + eTag?: string; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@armResourceOperations +interface BackupResourceEncryptionConfigs { + /** + * Fetches Vault Encryption config. + */ + get is ArmResourceRead; + + /** + * Updates Vault encryption config. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + update is ArmResourceCreateOrReplaceSync< + BackupResourceEncryptionConfigResource, + Response = OkResponse + >; +} + +@@doc(BackupResourceEncryptionConfigExtendedResource.name, ""); +@@doc(BackupResourceEncryptionConfigExtendedResource.properties, + "BackupResourceEncryptionConfigExtendedResource properties" +); +@@doc(BackupResourceEncryptionConfigs.update::parameters.resource, + "Vault encryption input config request" +); + +@@doc(BackupResourceEncryptionConfigResource.name, ""); +@@doc(BackupResourceEncryptionConfigResource.properties, + "BackupResourceEncryptionConfigResource properties" +); diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/BackupResourceVaultConfigResource.tsp b/specification/recoveryservicesbackup/RecoveryServices.Management/BackupResourceVaultConfigResource.tsp new file mode 100644 index 000000000000..bcdd656f8bc3 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/BackupResourceVaultConfigResource.tsp @@ -0,0 +1,81 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using Azure.ResourceManager.Legacy; +using TypeSpec.Http; + +namespace Microsoft.RecoveryServices; +/** + * Backup resource vault config details. + */ +@singleton("vaultconfig") +@parentResource(VaultResource) +model BackupResourceVaultConfigResource + is TrackedResourceWithOptionalLocation { + ...ResourceNameParameter< + Resource = BackupResourceVaultConfigResource, + KeyName = "backupconfig", + SegmentName = "backupconfig", + NamePattern = "" + >; + + /** + * Optional ETag. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + eTag?: string; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@armResourceOperations +interface BackupResourceVaultConfigs { + /** + * Fetches resource vault config. + */ + get is ArmResourceRead; + + /** + * Updates vault security config. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + put is ArmResourceCreateOrReplaceSync< + BackupResourceVaultConfigResource, + Parameters = { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header + `x-ms-authorization-auxiliary`?: string; + }, + Response = ArmResourceUpdatedResponse + >; + + /** + * Updates vault security config. + */ + @patch(#{ implicitOptionality: false }) + update is ArmCustomPatchSync< + BackupResourceVaultConfigResource, + PatchModel = BackupResourceVaultConfigResource, + Parameters = { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header + `x-ms-authorization-auxiliary`?: string; + } + >; +} + +@@doc(BackupResourceVaultConfigResource.name, ""); +@@doc(BackupResourceVaultConfigResource.properties, + "BackupResourceVaultConfigResource properties" +); +@@doc(BackupResourceVaultConfigs.put::parameters.resource, + "resource config request" +); +@@doc(BackupResourceVaultConfigs.update::parameters.properties, + "resource config request" +); diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/JobResource.tsp b/specification/recoveryservicesbackup/RecoveryServices.Management/JobResource.tsp new file mode 100644 index 000000000000..dba3315312f3 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/JobResource.tsp @@ -0,0 +1,159 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using Azure.ResourceManager.Legacy; +using TypeSpec.Http; + +namespace Microsoft.RecoveryServices; +/** + * Defines workload agnostic properties for a job. + */ +@parentResource(VaultResource) +model JobResource is TrackedResourceWithOptionalLocation { + ...ResourceNameParameter< + Resource = JobResource, + KeyName = "jobName", + SegmentName = "backupJobs", + NamePattern = "" + >; + + /** + * Optional ETag. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + eTag?: string; +} + +@armResourceOperations +interface JobDetails { + /** + * Gets extended information associated with the job. + */ + get is ArmResourceRead; +} + +@armResourceOperations +interface BackupJobs { + /** + * Provides a pageable list of jobs. + */ + @list + list is ArmResourceListByParent< + JobResource, + Parameters = { + /** + * OData filter options. + */ + @query("$filter") + $filter?: string; + + /** + * skipToken Filter. + */ + @query("$skipToken") + $skipToken?: string; + }, + Response = ArmResponse + >; +} + +@armResourceOperations +interface JobCancellations { + /** + * Cancels a job. This is an asynchronous operation. To know the status of the cancellation, call + * GetCancelOperationResult API. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @action("cancel") + trigger is ArmResourceActionSync; +} + +@armResourceOperations +interface JobOperationResultsOps + extends Azure.ResourceManager.Legacy.LegacyOperations< + { + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + + /** vaults */ + @path @segment("vaults") vaultName: string, + + ...KeysOf>, + }, + KeysOf> + > {} + +@armResourceOperations +interface JobOperationResults { + /** + * Fetches the result of any operation. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @get + get is JobOperationResultsOps.Read< + JobResource, + Response = OkResponse | AcceptedResponse | ArmNoContentResponse + >; +} + +@armResourceOperations +interface ExportJobsOperationResultsOps + extends Azure.ResourceManager.Legacy.LegacyOperations< + { + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + + /** vaults */ + @path @segment("vaults") vaultName: string, + + /** backupJobs */ + @path backupJobs: "backupJobs", + }, + KeysOf> + > {} + +@armResourceOperations +interface ExportJobsOperationResults { + /** + * Gets the operation result of operation triggered by Export Jobs API. If the operation is successful, then it also + * contains URL of a Blob and a SAS key to access the same. The blob contains exported jobs in JSON serialized format. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @get + get is ExportJobsOperationResultsOps.Read< + JobResource, + Response = ArmResponse | { + ...AcceptedResponse; + @body body: OperationResultInfoBaseResource; + } + >; +} + +@@doc(JobResource.name, "Name of the job whose details are to be fetched."); +@@doc(JobResource.properties, "JobResource properties"); diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/PrivateEndpointConnectionResource.tsp b/specification/recoveryservicesbackup/RecoveryServices.Management/PrivateEndpointConnectionResource.tsp new file mode 100644 index 000000000000..a01451337304 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/PrivateEndpointConnectionResource.tsp @@ -0,0 +1,105 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using Azure.ResourceManager.Legacy; +using TypeSpec.Http; + +namespace Microsoft.RecoveryServices; +/** + * Private Endpoint Connection Response Properties + */ +@parentResource(VaultResource) +model PrivateEndpointConnectionResource + is TrackedResourceWithOptionalLocation { + ...ResourceNameParameter< + Resource = PrivateEndpointConnectionResource, + KeyName = "privateEndpointConnectionName", + SegmentName = "privateEndpointConnections", + NamePattern = "" + >; + + /** + * Optional ETag. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + eTag?: string; +} + +@armResourceOperations +interface PrivateEndpointConnectionResources { + /** + * Get Private Endpoint Connection. This call is made by Backup Admin. + */ + get is ArmResourceRead; + + /** + * Approve or Reject Private Endpoint requests. This call is made by Backup Admin. + */ + put is ArmResourceCreateOrReplaceAsync< + PrivateEndpointConnectionResource, + LroHeaders = ArmLroLocationHeader & + Azure.Core.Foundations.RetryAfterHeader + >; + + /** + * Delete Private Endpoint requests. This call is made by Backup Admin. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + delete is ArmResourceDeleteWithoutOkAsync< + PrivateEndpointConnectionResource, + Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; +} + +@armResourceOperations +interface PrivateEndpointOperationStatusOps + extends Azure.ResourceManager.Legacy.LegacyOperations< + { + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + + /** vaults */ + @path @segment("vaults") vaultName: string, + + ...KeysOf>, + }, + KeysOf> + > {} + +@armResourceOperations +interface PrivateEndpointOperationStatuses { + /** + * Gets the operation status for a private endpoint connection. + */ + @get + getOperationStatus is PrivateEndpointOperationStatusOps.Read< + PrivateEndpointConnectionResource, + Response = ArmResponse + >; +} + +@@doc(PrivateEndpointConnectionResource.name, + "The name of the private endpoint connection." +); +@@doc(PrivateEndpointConnectionResource.properties, + "PrivateEndpointConnectionResource properties" +); +@@doc(PrivateEndpointConnectionResources.put::parameters.resource, + "Request body for operation" +); diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/ProtectedItemResource.tsp b/specification/recoveryservicesbackup/RecoveryServices.Management/ProtectedItemResource.tsp new file mode 100644 index 000000000000..1fc9ef0f0cee --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/ProtectedItemResource.tsp @@ -0,0 +1,217 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/rest"; +import "./models.tsp"; +import "./ProtectionContainerResource.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using Azure.ResourceManager.Legacy; +using TypeSpec.Http; + +namespace Microsoft.RecoveryServices; +/** + * Base class for backup items. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@parentResource(ProtectionContainerResource) +model ProtectedItemResource + is TrackedResourceWithOptionalLocation { + ...ResourceNameParameter< + Resource = ProtectedItemResource, + KeyName = "protectedItemName", + SegmentName = "protectedItems", + NamePattern = "" + >; + + /** + * Optional ETag. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + eTag?: string; +} + +@armResourceOperations +interface ProtectedItems { + /** + * Provides the details of the backed up item. This is an asynchronous operation. To know the status of the operation, + * call the GetItemOperationResult API. + */ + get is ArmResourceRead< + ProtectedItemResource, + Parameters = { + /** + * OData filter options. + */ + @query("$filter") + $filter?: string; + } + >; + + /** + * Enables backup of an item or to modifies the backup policy information of an already backed up item. This is an + * asynchronous operation. To know the status of the operation, call the GetItemOperationResult API. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + createOrUpdate is ArmResourceCreateOrReplaceSync< + ProtectedItemResource, + Parameters = { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header + `x-ms-authorization-auxiliary`?: string; + }, + Response = ArmResourceUpdatedResponse | AcceptedResponse + >; + + /** + * Used to disable backup of an item within a container. This is an asynchronous operation. To know the status of the + * request, call the GetItemOperationResult API. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + delete is ArmResourceDeleteSync< + ProtectedItemResource, + Response = ArmDeletedResponse | AcceptedResponse | ArmDeletedNoContentResponse + >; +} + +@armResourceOperations +interface Backups { + /** + * Triggers backup for specified backed up item. This is an asynchronous operation. To know the status of the + * operation, call GetProtectedItemOperationResult API. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @action("backup") + trigger is ArmResourceActionSync< + ProtectedItemResource, + BackupRequestResource, + AcceptedResponse + >; +} + +@armResourceOperations +interface RecoveryPointsRecommendedForMove { + /** + * Lists the recovery points recommended for move to another tier + */ + @action("recoveryPointsRecommendedForMove") + @list + list is ArmResourceActionSync< + ProtectedItemResource, + ListRecoveryPointsRecommendedForMoveRequest, + ArmResponse + >; +} + +@armResourceOperations +interface ProtectedItemOperationStatusOps + extends Azure.ResourceManager.Legacy.LegacyOperations< + { + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + + /** vaults */ + @path @segment("vaults") vaultName: string, + + /** backupFabrics */ + @path @segment("backupFabrics") fabricName: string, + + ...KeysOf>, + ...KeysOf>, + }, + KeysOf> + > {} + +@armResourceOperations +interface ProtectedItemOperationStatuses { + /** + * Fetches the status of an operation such as triggering a backup, restore. The status can be in progress, completed + * or failed. You can refer to the OperationStatus enum for all the possible states of the operation. Some operations + * create jobs. This method returns the list of jobs associated with the operation. + */ + get is ProtectedItemOperationStatusOps.Read< + ProtectedItemResource, + Response = ArmResponse + >; +} + +@armResourceOperations +interface ProtectedItemOperationResultOps + extends Azure.ResourceManager.Legacy.LegacyOperations< + { + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + + /** vaults */ + @path @segment("vaults") vaultName: string, + + /** backupFabrics */ + @path @segment("backupFabrics") fabricName: string, + + ...KeysOf>, + ...KeysOf>, + }, + KeysOf> + > {} + +@armResourceOperations +interface ProtectedItemOperationResults { + /** + * Fetches the result of any operation on the backup item. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + get is ProtectedItemOperationResultOps.Read< + ProtectedItemResource, + Response = ArmResponse | AcceptedResponse | ArmNoContentResponse + >; +} + +@@doc(ProtectedItemResource.name, + "Backed up item name whose details are to be fetched." +); +@@doc(ProtectedItemResource.properties, "ProtectedItemResource properties"); +@@doc(ProtectedItems.createOrUpdate::parameters.resource, + "resource backed up item" +); +@@doc(Backups.trigger::parameters.body, "resource backup request"); +@@doc(RecoveryPointsRecommendedForMove.list::parameters.body, + "List Recovery points Recommended for Move Request" +); diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/ProtectionContainerResource.tsp b/specification/recoveryservicesbackup/RecoveryServices.Management/ProtectionContainerResource.tsp new file mode 100644 index 000000000000..8306e0401cc9 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/ProtectionContainerResource.tsp @@ -0,0 +1,160 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using Azure.ResourceManager.Legacy; +using TypeSpec.Http; + +namespace Microsoft.RecoveryServices; +/** + * Base class for container with backup items. Containers with specific workloads are derived from this class. + */ +@parentResource(BackupFabricResource) +model ProtectionContainerResource + is TrackedResourceWithOptionalLocation { + ...ResourceNameParameter< + Resource = ProtectionContainerResource, + KeyName = "containerName", + SegmentName = "protectionContainers", + NamePattern = "" + >; + + /** + * Optional ETag. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + eTag?: string; +} + +@armResourceOperations +interface ProtectionContainers { + /** + * Gets details of the specific container registered to your Recovery Services Vault. + */ + get is ArmResourceRead; + + /** + * Registers the container with Recovery Services vault. + * This is an asynchronous operation. To track the operation status, use location header to call get latest status of + * the operation. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + register is ArmResourceCreateOrUpdateAsync< + ProtectionContainerResource, + Response = ArmResourceUpdatedResponse | ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader> + >; + + /** + * Unregisters the given container from your Recovery Services Vault. This is an asynchronous operation. To determine + * whether the backend service has finished processing the request, call Get Container Operation Result API. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + unregister is ArmResourceDeleteSync< + ProtectionContainerResource, + Response = ArmDeletedResponse | AcceptedResponse | ArmDeletedNoContentResponse + >; + + /** + * This is an async operation and the results should be tracked using location header or Azure-async-url. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + inquire is ArmResourceActionSync< + ProtectionContainerResource, + void, + AcceptedResponse, + Parameters = { + /** + * OData filter options. + */ + @query("$filter") + $filter?: string; + } + >; +} + +@armResourceOperations +interface BackupWorkloadItems { + /** + * Provides a pageable list of workload item of a specific container according to the query filter and the pagination + * parameters. + */ + @get + @action("items") + @list + list is ArmResourceActionSync< + ProtectionContainerResource, + void, + ArmResponse, + Parameters = { + /** + * OData filter options. + */ + @query("$filter") + $filter?: string; + + /** + * skipToken Filter. + */ + @query("$skipToken") + $skipToken?: string; + } + >; +} + +@armResourceOperations +interface ProtectionContainerOperationResultOps + extends Azure.ResourceManager.Legacy.LegacyOperations< + { + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + + /** vaults */ + @path @segment("vaults") vaultName: string, + + /** backupFabrics */ + @path @segment("backupFabrics") fabricName: string, + + ...KeysOf>, + }, + KeysOf> + > {} + +@armResourceOperations +interface ProtectionContainerOperationResults { + /** + * Fetches the result of any operation on the container. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + get is ProtectionContainerOperationResultOps.Read< + ProtectionContainerResource, + Response = ArmResponse | AcceptedResponse | ArmNoContentResponse + >; +} + +@@doc(ProtectionContainerResource.name, + "Name of the container whose details need to be fetched." +); +@@doc(ProtectionContainerResource.properties, + "ProtectionContainerResource properties" +); +@@doc(ProtectionContainers.register::parameters.resource, + "Request body for operation" +); diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/ProtectionIntentResource.tsp b/specification/recoveryservicesbackup/RecoveryServices.Management/ProtectionIntentResource.tsp new file mode 100644 index 000000000000..816e8f918968 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/ProtectionIntentResource.tsp @@ -0,0 +1,66 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using Azure.ResourceManager.Legacy; + +namespace Microsoft.RecoveryServices; +/** + * Base class for backup ProtectionIntent. + */ +@parentResource(BackupFabricResource) +model ProtectionIntentResource + is TrackedResourceWithOptionalLocation { + ...ResourceNameParameter< + Resource = ProtectionIntentResource, + KeyName = "intentObjectName", + SegmentName = "backupProtectionIntent", + NamePattern = "" + >; + + /** + * Optional ETag. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + eTag?: string; +} + +@armResourceOperations +interface ProtectionIntentResources { + /** + * Provides the details of the protection intent up item. This is an asynchronous operation. To know the status of the operation, + * call the GetItemOperationResult API. + */ + get is ArmResourceRead; + + /** + * Create Intent for Enabling backup of an item. This is a synchronous operation. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + createOrUpdate is ArmResourceCreateOrReplaceSync< + ProtectionIntentResource, + Response = ArmResourceUpdatedResponse + >; + + /** + * Used to remove intent from an item + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + delete is ArmResourceDeleteSync< + ProtectionIntentResource, + Response = ArmDeletedNoContentResponse + >; +} + +@@doc(ProtectionIntentResource.name, + "Backed up item name whose details are to be fetched." +); +@@doc(ProtectionIntentResource.properties, + "ProtectionIntentResource properties" +); +@@doc(ProtectionIntentResources.createOrUpdate::parameters.resource, + "resource backed up item" +); diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/ProtectionPolicyResource.tsp b/specification/recoveryservicesbackup/RecoveryServices.Management/ProtectionPolicyResource.tsp new file mode 100644 index 000000000000..bba439b577fd --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/ProtectionPolicyResource.tsp @@ -0,0 +1,170 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using Azure.ResourceManager.Legacy; +using TypeSpec.Http; + +namespace Microsoft.RecoveryServices; +/** + * Base class for backup policy. Workload-specific backup policies are derived from this class. + */ +@parentResource(VaultResource) +model ProtectionPolicyResource + is TrackedResourceWithOptionalLocation { + ...ResourceNameParameter< + Resource = ProtectionPolicyResource, + KeyName = "policyName", + SegmentName = "backupPolicies", + NamePattern = "" + >; + + /** + * Optional ETag. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + eTag?: string; +} + +@armResourceOperations +interface ProtectionPolicies { + /** + * Provides the details of the backup policies associated to Recovery Services Vault. This is an asynchronous + * operation. Status of the operation can be fetched using GetPolicyOperationResult API. + */ + get is ArmResourceRead; + + /** + * Creates or modifies a backup policy. This is an asynchronous operation. Status of the operation can be fetched + * using GetPolicyOperationResult API. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + createOrUpdate is ArmResourceCreateOrReplaceSync< + ProtectionPolicyResource, + Parameters = { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header + `x-ms-authorization-auxiliary`?: string; + }, + Response = ArmResourceUpdatedResponse | AcceptedResponse + >; + + /** + * Deletes specified backup policy from your Recovery Services Vault. This is an asynchronous operation. Status of the + * operation can be fetched using GetProtectionPolicyOperationResult API. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + delete is ArmResourceDeleteAsyncBase< + ProtectionPolicyResource, + Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; +} + +@armResourceOperations +interface BackupPolicies { + /** + * Lists of backup policies associated with Recovery Services Vault. API provides pagination parameters to fetch + * scoped results. + */ + @list + list is ArmResourceListByParent< + ProtectionPolicyResource, + Parameters = { + /** + * OData filter options. + */ + @query("$filter") + $filter?: string; + }, + Response = ArmResponse + >; +} + +@armResourceOperations +interface ProtectionPolicyOperationResultOps + extends Azure.ResourceManager.Legacy.LegacyOperations< + { + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + + /** vaults */ + @path @segment("vaults") vaultName: string, + + ...KeysOf>, + }, + KeysOf> + > {} + +@armResourceOperations +interface ProtectionPolicyOperationResults { + /** + * Provides the result of an operation. + */ + get is ProtectionPolicyOperationResultOps.Read; +} + +@armResourceOperations +interface ProtectionPolicyOperationStatusOps + extends Azure.ResourceManager.Legacy.LegacyOperations< + { + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + ...Azure.ResourceManager.Legacy.Provider, + + /** vaults */ + @path @segment("vaults") vaultName: string, + + ...KeysOf>, + }, + KeysOf> + > {} + +@armResourceOperations +interface ProtectionPolicyOperationStatuses { + /** + * Provides the status of the asynchronous operations like backup, restore. The status can be in progress, completed + * or failed. You can refer to the Operation Status enum for all the possible states of an operation. Some operations + * create jobs. This method returns the list of jobs associated with operation. + */ + @get + get is ProtectionPolicyOperationStatusOps.Read; +} + +@@doc(ProtectionPolicyResource.name, + "Backup policy information to be fetched." +); +@@doc(ProtectionPolicyResource.properties, + "ProtectionPolicyResource properties" +); +@@doc(ProtectionPolicies.createOrUpdate::parameters.resource, + "resource backup policy" +); diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/RecoveryPointResource.tsp b/specification/recoveryservicesbackup/RecoveryServices.Management/RecoveryPointResource.tsp new file mode 100644 index 000000000000..9968893551e4 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/RecoveryPointResource.tsp @@ -0,0 +1,131 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/rest"; +import "./models.tsp"; +import "./ProtectedItemResource.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using Azure.ResourceManager.Legacy; +using TypeSpec.Http; + +namespace Microsoft.RecoveryServices; +/** + * Base class for backup copies. Workload-specific backup copies are derived from this class. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@parentResource(ProtectedItemResource) +model RecoveryPointResource + is TrackedResourceWithOptionalLocation { + ...ResourceNameParameter< + Resource = RecoveryPointResource, + KeyName = "recoveryPointId", + SegmentName = "recoveryPoints", + NamePattern = "" + >; + + /** + * Optional ETag. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + eTag?: string; +} + +@armResourceOperations +interface RecoveryPoints { + /** + * Provides the information of the backed up data identified using RecoveryPointID. This is an asynchronous operation. + * To know the status of the operation, call the GetProtectedItemOperationResult API. + */ + get is ArmResourceRead; + + /** + * Lists the backup copies for the backed up item. + */ + @list + list is ArmResourceListByParent< + RecoveryPointResource, + Parameters = { + /** + * OData filter options. + */ + @query("$filter") + $filter?: string; + }, + Response = ArmResponse + >; + + /** + * Move recovery point from one datastore to another store. + */ + @action("move") + moveRecoveryPoint is ArmResourceActionAsyncBase< + RecoveryPointResource, + MoveRPAcrossTiersRequest, + ArmAcceptedLroResponse, + BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters + >; +} + +@armResourceOperations +interface Restores { + /** + * Restores the specified backed up data. This is an asynchronous operation. To know the status of this API call, use + * GetProtectedItemOperationResult API. + */ + @action("restore") + trigger is ArmResourceActionAsyncBase< + RecoveryPointResource, + RestoreRequestResource, + ArmAcceptedLroResponse, + BaseParameters = Azure.ResourceManager.Foundations.DefaultBaseParameters, + Parameters = { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header + `x-ms-authorization-auxiliary`?: string; + } + >; +} + +@armResourceOperations +interface ItemLevelRecoveryConnections { + /** + * Provisions a script which invokes an iSCSI connection to the backup data. Executing this script opens a file + * explorer displaying all the recoverable files and folders. This is an asynchronous operation. To know the status of + * provisioning, call GetProtectedItemOperationResult API. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @action("provisionInstantItemRecovery") + provision is ArmResourceActionSync< + RecoveryPointResource, + ILRRequestResource, + AcceptedResponse + >; + + /** + * Revokes an iSCSI connection which can be used to download a script. Executing this script opens a file explorer + * displaying all recoverable files and folders. This is an asynchronous operation. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @action("revokeInstantItemRecovery") + revoke is ArmResourceActionSync< + RecoveryPointResource, + void, + AcceptedResponse + >; +} + +@@doc(RecoveryPointResource.name, + "RecoveryPointID represents the backed up data to be fetched." +); +@@doc(RecoveryPointResource.properties, "RecoveryPointResource properties"); +@@doc(RecoveryPoints.moveRecoveryPoint::parameters.body, + "Move Resource Across Tiers Request" +); +@@doc(Restores.trigger::parameters.body, "resource restore request"); +@@doc(ItemLevelRecoveryConnections.provision::parameters.body, + "resource ILR request" +); diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/ResourceGuardProxyBaseResource.tsp b/specification/recoveryservicesbackup/RecoveryServices.Management/ResourceGuardProxyBaseResource.tsp new file mode 100644 index 000000000000..30615e373787 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/ResourceGuardProxyBaseResource.tsp @@ -0,0 +1,84 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using Azure.ResourceManager.Legacy; + +namespace Microsoft.RecoveryServices; + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@doc("") +@parentResource(VaultResource) +model ResourceGuardProxyBaseResource + is TrackedResourceWithOptionalLocation { + ...ResourceNameParameter< + Resource = ResourceGuardProxyBaseResource, + KeyName = "resourceGuardProxyName", + SegmentName = "backupResourceGuardProxies", + NamePattern = "" + >; + + /** + * Optional ETag. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + eTag?: string; +} + +@armResourceOperations +interface ResourceGuardProxy { + /** + * Returns ResourceGuardProxy under vault and with the name referenced in request + */ + get is ArmResourceRead; + + /** + * Add or Update ResourceGuardProxy under vault + * Secures vault critical operations + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + put is ArmResourceCreateOrReplaceSync< + ResourceGuardProxyBaseResource, + Response = ArmResourceUpdatedResponse + >; + + /** + * Delete ResourceGuardProxy under vault + */ + delete is ArmResourceDeleteSync; + + /** + * Secures delete ResourceGuardProxy operations. + */ + unlockDelete is ArmResourceActionSync< + ResourceGuardProxyBaseResource, + UnlockDeleteRequest, + ArmResponse + >; +} + +@armResourceOperations +interface ResourceGuardProxies { + /** + * List the ResourceGuardProxies under vault + */ + @list + get is ArmResourceListByParent< + ResourceGuardProxyBaseResource, + Response = ArmResponse + >; +} + +@@doc(ResourceGuardProxyBaseResource.name, ""); +@@doc(ResourceGuardProxyBaseResource.properties, + "ResourceGuardProxyBaseResource properties" +); +@@doc(ResourceGuardProxy.put::parameters.resource, + "Request body for operation" +); +@@doc(ResourceGuardProxy.unlockDelete::parameters.body, + "Request body for operation" +); diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/VirtualResource.tsp b/specification/recoveryservicesbackup/RecoveryServices.Management/VirtualResource.tsp new file mode 100644 index 000000000000..d91df3933a43 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/VirtualResource.tsp @@ -0,0 +1,30 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/rest"; + +using TypeSpec.Rest; +using Azure.ResourceManager; + +namespace Microsoft.RecoveryServices; + +/** + * Vault resource in Recovery Service. + */ +@armVirtualResource +model VaultResource { + ...ResourceNameParameter; +} + +/** + * Backup Fabric virtual resource. + */ +@parentResource(VaultResource) +@armVirtualResource +model BackupFabricResource { + ...ResourceNameParameter< + BackupFabricResource, + "fabricName", + "backupFabrics", + "" + >; +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/back-compatible.tsp b/specification/recoveryservicesbackup/RecoveryServices.Management/back-compatible.tsp new file mode 100644 index 000000000000..1080d5d845a9 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/back-compatible.tsp @@ -0,0 +1,357 @@ +import "@azure-tools/typespec-client-generator-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using Azure.ClientGenerator.Core; +using Azure.ClientGenerator.Core.Legacy; +using Microsoft.RecoveryServices; + +@@clientName(BackupResourceStorageConfigsNonCRR.update::parameters.resource, + "parameters" +); +@@clientName(BackupResourceStorageConfigsNonCRR.patch::parameters.properties, + "parameters" +); +@@clientName(BackupResourceStorageConfigsNonCRR.bmsPrepareDataMove::parameters.body, + "parameters" +); +@@clientName(BackupResourceStorageConfigsNonCRR.bmsTriggerDataMove::parameters.body, + "parameters" +); + +@@clientName(ProtectionIntentResources.createOrUpdate::parameters.resource, + "parameters" +); + +@@clientName(BackupResourceVaultConfigs.put::parameters.resource, "parameters"); +@@clientName(BackupResourceVaultConfigs.update::parameters.properties, + "parameters" +); + +@@clientName(BackupResourceEncryptionConfigs.update::parameters.resource, + "parameters" +); + +@@clientName(PrivateEndpointConnectionResources.put::parameters.resource, + "parameters" +); + +@@clientName(ProtectedItems.createOrUpdate::parameters.resource, "parameters"); +@@clientName(Backups.trigger::parameters.body, "parameters"); +@@clientName(RecoveryPointsRecommendedForMove.list::parameters.body, + "parameters" +); + +@@clientName(RecoveryPoints.moveRecoveryPoint::parameters.body, "parameters"); +@@clientName(Restores.trigger::parameters.body, "parameters"); +@@clientName(ItemLevelRecoveryConnections.provision::parameters.body, + "parameters" +); + +@@clientName(ProtectionPolicies.createOrUpdate::parameters.resource, + "parameters" +); + +@@clientName(ProtectionContainers.register::parameters.resource, "parameters"); + +@@clientName(ResourceGuardProxy.put::parameters.resource, "parameters"); +@@clientName(ResourceGuardProxy.unlockDelete::parameters.body, "parameters"); + +@@clientName(BackupResourceStorageConfigsNonCRR.bmsPrepareDataMove, + "BMSPrepareDataMove" +); +@@clientName(BackupResourceStorageConfigsNonCRR.bmsTriggerDataMove, + "BMSTriggerDataMove" +); + +@@clientLocation(BackupResourceStorageConfigsNonCRR.bmsPrepareDataMove, + Microsoft.RecoveryServices +); +@@clientLocation(BackupResourceStorageConfigsNonCRR.bmsTriggerDataMove, + Microsoft.RecoveryServices +); +@@clientLocation(BackupResourceConfigOperationStatuses.getOperationStatus, + Microsoft.RecoveryServices +); + +@@clientLocation(PrivateEndpointConnectionResources.get, + "PrivateEndpointConnection" +); +@@clientLocation(PrivateEndpointConnectionResources.put, + "PrivateEndpointConnection" +); +@@clientLocation(PrivateEndpointConnectionResources.delete, + "PrivateEndpointConnection" +); +@@clientLocation(PrivateEndpointOperationStatuses.getOperationStatus, + "PrivateEndpoint" +); + +@@clientLocation(ProtectionIntentResources.get, "ProtectionIntent"); +@@clientLocation(ProtectionIntentResources.createOrUpdate, "ProtectionIntent"); +@@clientLocation(ProtectionIntentResources.delete, "ProtectionIntent"); + +@@clientLocation(RecoveryPoints.moveRecoveryPoint, Microsoft.RecoveryServices); + +@@clientLocation(ProtectionContainersOperationGroup.refresh, + ProtectionContainers +); + +@@clientLocation(ProtectionIntentOperationGroup.validate, "ProtectionIntent"); + +@@clientLocation(OperationOperationGroup.validate, "Operation"); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureIaaSClassicComputeVMProtectedItem, + AzureIaaSVMProtectedItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureIaaSComputeVMProtectedItem, AzureIaaSVMProtectedItem); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVmWorkloadSAPAseDatabaseProtectedItem, + AzureVmWorkloadProtectedItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVmWorkloadSAPHanaDatabaseProtectedItem, + AzureVmWorkloadProtectedItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVmWorkloadSAPHanaDBInstanceProtectedItem, + AzureVmWorkloadProtectedItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVmWorkloadSQLDatabaseProtectedItem, + AzureVmWorkloadProtectedItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSAPHanaRecoveryPoint, + AzureWorkloadRecoveryPoint +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSAPHanaPointInTimeRecoveryPoint, + AzureWorkloadPointInTimeRecoveryPoint +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSAPAseRecoveryPoint, + AzureWorkloadRecoveryPoint +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSAPAsePointInTimeRecoveryPoint, + AzureWorkloadPointInTimeRecoveryPoint +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSQLRecoveryPoint, AzureWorkloadRecoveryPoint); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSQLPointInTimeRecoveryPoint, + AzureWorkloadRecoveryPoint +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadPointInTimeRestoreRequest, + AzureWorkloadRestoreRequest +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSAPHanaRestoreRequest, + AzureWorkloadRestoreRequest +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSAPHanaPointInTimeRestoreRequest, + AzureWorkloadSAPHanaRestoreRequest +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSAPAseRestoreRequest, + AzureWorkloadRestoreRequest +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSAPAsePointInTimeRestoreRequest, + AzureWorkloadRestoreRequest +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSQLRestoreRequest, + AzureWorkloadRestoreRequest +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSQLPointInTimeRestoreRequest, + AzureWorkloadRestoreRequest +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureBackupServerContainer, DpmContainer); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureIaaSClassicComputeVMContainer, IaaSVMContainer); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureIaaSComputeVMContainer, IaaSVMContainer); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureIaaSClassicComputeVMProtectableItem, + IaaSVMProtectableItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureIaaSComputeVMProtectableItem, IaaSVMProtectableItem); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureSQLAGWorkloadContainerProtectionContainer, + AzureWorkloadContainer +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVMAppContainerProtectionContainer, + AzureWorkloadContainer +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVmWorkloadSAPAseDatabaseProtectableItem, + AzureVmWorkloadProtectableItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVmWorkloadSAPAseSystemProtectableItem, + AzureVmWorkloadProtectableItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVmWorkloadSAPHanaDBInstance, + AzureVmWorkloadProtectableItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVmWorkloadSAPHanaDatabaseProtectableItem, + AzureVmWorkloadProtectableItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVmWorkloadSAPHanaHSRProtectableItem, + AzureVmWorkloadProtectableItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVmWorkloadSAPHanaSystemProtectableItem, + AzureVmWorkloadProtectableItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVmWorkloadSQLAvailabilityGroupProtectableItem, + AzureVmWorkloadProtectableItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVmWorkloadSQLDatabaseProtectableItem, + AzureVmWorkloadProtectableItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVmWorkloadSQLInstanceProtectableItem, + AzureVmWorkloadProtectableItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadAutoProtectionIntent, + AzureRecoveryServiceVaultProtectionIntent +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSQLAutoProtectionIntent, + AzureWorkloadAutoProtectionIntent +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSAPHanaPointInTimeRestoreWithRehydrateRequest, + AzureWorkloadSAPHanaPointInTimeRestoreRequest +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSAPHanaRestoreWithRehydrateRequest, + AzureWorkloadSAPHanaRestoreRequest +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSQLPointInTimeRestoreRequest, + AzureWorkloadSQLRestoreRequest +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSQLPointInTimeRestoreWithRehydrateRequest, + AzureWorkloadSQLPointInTimeRestoreRequest +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSQLRestoreWithRehydrateRequest, + AzureWorkloadSQLRestoreRequest +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVmWorkloadSAPAseDatabaseWorkloadItem, + AzureVmWorkloadItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVmWorkloadSAPAseSystemWorkloadItem, + AzureVmWorkloadItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVmWorkloadSAPHanaDatabaseWorkloadItem, + AzureVmWorkloadItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVmWorkloadSAPHanaSystemWorkloadItem, + AzureVmWorkloadItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVmWorkloadSQLDatabaseWorkloadItem, + AzureVmWorkloadItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureVmWorkloadSQLInstanceWorkloadItem, + AzureVmWorkloadItem +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadPointInTimeRecoveryPoint, + AzureWorkloadRecoveryPoint +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSAPAsePointInTimeRestoreRequest, + AzureWorkloadSAPAseRestoreRequest +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(AzureWorkloadSQLPointInTimeRecoveryPoint, + AzureWorkloadSQLRecoveryPoint +); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(IaasVMRestoreWithRehydrationRequest, IaasVMRestoreRequest); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@hierarchyBuilding(ValidateIaasVMRestoreOperationRequest, + ValidateRestoreOperationRequest +); + +@@clientName(Azure.ResourceManager.CommonTypes.ErrorDetail, + "ArmErrorDetail", + "python,javascript" +); diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/client.tsp b/specification/recoveryservicesbackup/RecoveryServices.Management/client.tsp new file mode 100644 index 000000000000..648ca87fd2dc --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/client.tsp @@ -0,0 +1,2062 @@ +import "@azure-tools/typespec-client-generator-core"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "./main.tsp"; + +using Azure.ClientGenerator.Core; +using Microsoft.RecoveryServices; +using Azure.ResourceManager; +using Http; + +@@clientLocation(BackupResourceStorageConfigsNonCRR.bmsPrepareDataMove, + "Client", + "go" +); +@@clientLocation(BackupResourceStorageConfigsNonCRR.bmsTriggerDataMove, + "Client", + "go" +); +@@clientLocation(BackupResourceConfigOperationStatuses.getOperationStatus, + "Client", + "go" +); + +@@clientLocation(RecoveryPoints.moveRecoveryPoint, "Client", "go"); + +// Migration mappings added to mitigate Java SDK breaking changes after TypeSpec migration +@@clientName(Microsoft.RecoveryServices.IaaSVMContainer, + "IaaSvmContainer", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureIaaSVMProtectedItem, + "AzureIaaSvmProtectedItem", + "java" +); +@@alternateType(Microsoft.RecoveryServices.InquiryValidation.protectableItemCount, + unknown, + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureIaaSVMJob, + "AzureIaaSvmJob", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureIaaSVMJobV2, + "AzureIaaSvmJobV2", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureIaaSVMJobExtendedInfo, + "AzureIaaSvmJobExtendedInfo", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureIaaSVMJobTaskDetails, + "AzureIaaSvmJobTaskDetails", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureIaaSVMErrorInfo, + "AzureIaaSvmErrorInfo", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureIaaSVMHealthDetails, + "AzureIaaSvmHealthDetails", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureIaaSVMProtectedItemExtendedInfo, + "AzureIaaSvmProtectedItemExtendedInfo", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureIaaSVMProtectionPolicy, + "AzureIaaSvmProtectionPolicy", + "java" +); +@@clientName(Microsoft.RecoveryServices.IaaSVMProtectableItem, + "IaasVMProtectableItem", + "java" +); +@@clientName(Microsoft.RecoveryServices.IaasVMILRRegistrationRequest, + "IaasVmilrRegistrationRequest", + "java" +); +@@clientName(Microsoft.RecoveryServices.IAASVMPolicyType, + "IaasvmPolicyType", + "java" +); + +// Additional migrations for SQL/SAP related types +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSQLAutoProtectionIntent, + "AzureWorkloadSqlAutoProtectionIntent", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSQLRecoveryPoint, + "AzureWorkloadSqlRecoveryPoint", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSQLPointInTimeRecoveryPoint, + "AzureWorkloadSqlPointInTimeRecoveryPoint", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSQLRestoreRequest, + "AzureWorkloadSqlRestoreRequest", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSQLRestoreWithRehydrateRequest, + "AzureWorkloadSqlRestoreWithRehydrateRequest", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSQLPointInTimeRestoreRequest, + "AzureWorkloadSqlPointInTimeRestoreRequest", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSQLPointInTimeRestoreWithRehydrateRequest, + "AzureWorkloadSqlPointInTimeRestoreWithRehydrateRequest", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSQLRecoveryPointExtendedInfo, + "AzureWorkloadSqlRecoveryPointExtendedInfo", + "java" +); + +// SAP related mappings +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSAPHanaRestoreRequest, + "AzureWorkloadSapHanaRestoreRequest", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSAPHanaRestoreWithRehydrateRequest, + "AzureWorkloadSapHanaRestoreWithRehydrateRequest", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSAPHanaPointInTimeRestoreRequest, + "AzureWorkloadSapHanaPointInTimeRestoreRequest", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSAPHanaPointInTimeRestoreWithRehydrateRequest, + "AzureWorkloadSapHanaPointInTimeRestoreWithRehydrateRequest", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSAPHanaRecoveryPoint, + "AzureWorkloadSapHanaRecoveryPoint", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSAPHanaPointInTimeRecoveryPoint, + "AzureWorkloadSapHanaPointInTimeRecoveryPoint", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSAPAseRecoveryPoint, + "AzureWorkloadSapAseRecoveryPoint", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSAPAseRestoreRequest, + "AzureWorkloadSapAseRestoreRequest", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSAPAsePointInTimeRecoveryPoint, + "AzureWorkloadSapAsePointInTimeRecoveryPoint", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSAPAsePointInTimeRestoreRequest, + "AzureWorkloadSapAsePointInTimeRestoreRequest", + "java" +); + +// VM Workload related mappings +@@clientName(Microsoft.RecoveryServices.AzureVmWorkloadSQLDatabaseProtectedItem, + "AzureVmWorkloadSqlDatabaseProtectedItem", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureVmWorkloadSQLDatabaseProtectableItem, + "AzureVmWorkloadSqlDatabaseProtectableItem", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureVmWorkloadSQLDatabaseWorkloadItem, + "AzureVmWorkloadSqlDatabaseWorkloadItem", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureVmWorkloadSQLInstanceProtectableItem, + "AzureVmWorkloadSqlInstanceProtectableItem", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureVmWorkloadSQLInstanceWorkloadItem, + "AzureVmWorkloadSqlInstanceWorkloadItem", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureVmWorkloadSQLAvailabilityGroupProtectableItem, + "AzureVmWorkloadSqlAvailabilityGroupProtectableItem", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureVmWorkloadSAPHanaDatabaseProtectedItem, + "AzureVmWorkloadSapHanaDatabaseProtectedItem", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureVmWorkloadSAPHanaDatabaseProtectableItem, + "AzureVmWorkloadSapHanaDatabaseProtectableItem", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureVmWorkloadSAPHanaDatabaseWorkloadItem, + "AzureVmWorkloadSapHanaDatabaseWorkloadItem", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureVmWorkloadSAPHanaDBInstanceProtectedItem, + "AzureVmWorkloadSapHanaDBInstanceProtectedItem", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureVmWorkloadSAPHanaDBInstance, + "AzureVmWorkloadSapHanaDBInstance", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureVmWorkloadSAPHanaSystemProtectableItem, + "AzureVmWorkloadSapHanaSystemProtectableItem", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureVmWorkloadSAPHanaSystemWorkloadItem, + "AzureVmWorkloadSapHanaSystemWorkloadItem", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureVmWorkloadSAPHanaHSRProtectableItem, + "AzureVmWorkloadSapHanaHsr", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureVmWorkloadSAPAseDatabaseProtectedItem, + "AzureVmWorkloadSapAseDatabaseProtectedItem", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureVmWorkloadSAPAseDatabaseProtectableItem, + "AzureVmWorkloadSapAseDatabaseProtectableItem", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureVmWorkloadSAPAseDatabaseWorkloadItem, + "AzureVmWorkloadSapAseDatabaseWorkloadItem", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureVmWorkloadSAPAseSystemProtectableItem, + "AzureVmWorkloadSapAseSystemProtectableItem", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureVmWorkloadSAPAseSystemWorkloadItem, + "AzureVmWorkloadSapAseSystemWorkloadItem", + "java" +); + +// SQL and other mappings +@@clientName(Microsoft.RecoveryServices.SQLDataDirectory, + "SqlDataDirectory", + "java" +); +@@clientName(Microsoft.RecoveryServices.SQLDataDirectoryType, + "SqlDataDirectoryType", + "java" +); +@@clientName(Microsoft.RecoveryServices.SQLDataDirectoryMapping, + "SqlDataDirectoryMapping", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureSQLAGWorkloadContainerProtectionContainer, + "AzureSqlagWorkloadContainerProtectionContainer", + "java" +); + +// Storage and BMS related mappings +@@clientName(Microsoft.RecoveryServices.BMSPrepareDataMoveOperationResult, + "BmsPrepareDataMoveOperationResult", + "java" +); +@@clientName(Microsoft.RecoveryServices.BackupResourceStorageConfigsNonCRR, + "BackupResourceStorageConfigsNonCrr", + "java" +); + +// Key/secret related mappings +@@clientName(Microsoft.RecoveryServices.KEKDetails, "KekDetails", "java"); +@@clientName(Microsoft.RecoveryServices.BEKDetails, "BekDetails", "java"); + +// Target restore info mapping +@@clientName(Microsoft.RecoveryServices.TargetAFSRestoreInfo, + "TargetAfsRestoreInfo", + "java" +); + +// Additional ILR related mappings +@@clientName(Microsoft.RecoveryServices.ILRRequest, "IlrRequest", "java"); +@@clientName(Microsoft.RecoveryServices.ILRRequestResource, + "IlrRequestResource", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureFileShareProvisionILRRequest, + "AzureFileShareProvisionIlrRequest", + "java" +); +@@clientName(Microsoft.RecoveryServices.OperationStatusProvisionILRExtendedInfo, + "OperationStatusProvisionIlrExtendedInfo", + "java" +); + +// DPM related mappings +@@clientName(Microsoft.RecoveryServices.DPMContainerExtendedInfo, + "DpmContainerExtendedInfo", + "java" +); +@@clientName(Microsoft.RecoveryServices.DPMProtectedItem, + "DpmProtectedItem", + "java" +); +@@clientName(Microsoft.RecoveryServices.DPMProtectedItemExtendedInfo, + "DpmProtectedItemExtendedInfo", + "java" +); + +// MAB related mappings +@@clientName(Microsoft.RecoveryServices.MABContainerHealthDetails, + "MabContainerHealthDetails", + "java" +); + +// KPI related mappings +@@clientName(Microsoft.RecoveryServices.KPIResourceHealthDetails, + "KpiResourceHealthDetails", + "java" +); + +// ETag property mapping to preserve backward compatibility +@@clientName(Microsoft.RecoveryServices.BackupEngineBaseResource.eTag, + "etag", + "java" +); +@@clientName(Microsoft.RecoveryServices.BackupResourceConfigResource.eTag, + "etag", + "java" +); +@@clientName(Microsoft.RecoveryServices.BackupResourceEncryptionConfigExtendedResource.eTag, + "etag", + "java" +); +@@clientName(Microsoft.RecoveryServices.BackupResourceEncryptionConfigResource.eTag, + "etag", + "java" +); +@@clientName(Microsoft.RecoveryServices.BackupResourceVaultConfigResource.eTag, + "etag", + "java" +); +@@clientName(Microsoft.RecoveryServices.JobResource.eTag, "etag", "java"); +@@clientName(Microsoft.RecoveryServices.PrivateEndpointConnectionResource.eTag, + "etag", + "java" +); +@@clientName(Microsoft.RecoveryServices.ProtectedItemResource.eTag, + "etag", + "java" +); +@@clientName(Microsoft.RecoveryServices.ProtectionContainerResource.eTag, + "etag", + "java" +); +@@clientName(Microsoft.RecoveryServices.ProtectionIntentResource.eTag, + "etag", + "java" +); +@@clientName(Microsoft.RecoveryServices.ProtectionPolicyResource.eTag, + "etag", + "java" +); +@@clientName(Microsoft.RecoveryServices.RecoveryPointResource.eTag, + "etag", + "java" +); +@@clientName(Microsoft.RecoveryServices.ResourceGuardProxyBaseResource.eTag, + "etag", + "java" +); + +// UTC/PIN/VM abbreviation fixes for backward compatibility +@@clientName(Microsoft.RecoveryServices.TokenInformation.securityPIN, + "securityPin", + "java" +); +@@clientName(Microsoft.RecoveryServices.SecuredVMDetails.securedVMOsDiskEncryptionSetId, + "securedVmosDiskEncryptionSetId", + "java" +); + +// UTC property name fixes for backward compatibility +@@clientName(Microsoft.RecoveryServices.ProtectedItem.deferredDeleteTimeInUTC, + "deferredDeleteTimeInUtc", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadRecoveryPoint.recoveryPointTimeInUTC, + "recoveryPointTimeInUtc", + "java" +); +@@clientName(Microsoft.RecoveryServices.MabFileFolderProtectedItem.deferredDeleteSyncTimeInUTC, + "deferredDeleteSyncTimeInUtc", + "java" +); +@@clientName(Microsoft.RecoveryServices.IaasVMBackupRequest.recoveryPointExpiryTimeInUTC, + "recoveryPointExpiryTimeInUtc", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureFileShareBackupRequest.recoveryPointExpiryTimeInUTC, + "recoveryPointExpiryTimeInUtc", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadBackupRequest.recoveryPointExpiryTimeInUTC, + "recoveryPointExpiryTimeInUtc", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSQLRecoveryPointExtendedInfo.dataDirectoryTimeInUTC, + "dataDirectoryTimeInUtc", + "java" +); + +// Service name management operations fixes +@@clientName(Microsoft.RecoveryServices.BackupResourceStorageConfigsNonCRR.bmsPrepareDataMove, + "bmsPrepareDataMove", + "java" +); +@@clientName(Microsoft.RecoveryServices.BackupResourceStorageConfigsNonCRR.bmsTriggerDataMove, + "bmsTriggerDataMove", + "java" +); + +// Actions required property name fix +@@clientName(Microsoft.RecoveryServices.PrivateLinkServiceConnectionState.actionsRequired, + "actionRequired", + "java" +); + +// IaaS VM protectable item fix +@@clientName(Microsoft.RecoveryServices.IaaSVMProtectableItem, + "IaasVmProtectableItem", + "java" +); + +// Additional UTC property fixes for specific recovery point types +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSQLPointInTimeRecoveryPoint.recoveryPointTimeInUTC, + "recoveryPointTimeInUtc", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadPointInTimeRecoveryPoint.recoveryPointTimeInUTC, + "recoveryPointTimeInUtc", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSQLRecoveryPoint.recoveryPointTimeInUTC, + "recoveryPointTimeInUtc", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSAPHanaPointInTimeRecoveryPoint.recoveryPointTimeInUTC, + "recoveryPointTimeInUtc", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSAPAsePointInTimeRecoveryPoint.recoveryPointTimeInUTC, + "recoveryPointTimeInUtc", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSAPHanaRecoveryPoint.recoveryPointTimeInUTC, + "recoveryPointTimeInUtc", + "java" +); +@@clientName(Microsoft.RecoveryServices.AzureWorkloadSAPAseRecoveryPoint.recoveryPointTimeInUTC, + "recoveryPointTimeInUtc", + "java" +); + +// Merge ResourceGuardProxies into ResourceGuardProxyOperation group +@@clientLocation(Microsoft.RecoveryServices.ResourceGuardProxies.get, + "ResourceGuardProxyOperation", + "java" +); +@@clientName(Microsoft.RecoveryServices.ResourceGuardProxies.get, + "list", + "java" +); +@@clientLocation(Microsoft.RecoveryServices.ResourceGuardProxies.get, + "ResourceGuardProxyOperation", + "java" +); +@@clientLocation(Microsoft.RecoveryServices.ResourceGuardProxy.delete, + "ResourceGuardProxyOperation", + "java" +); +@@clientLocation(Microsoft.RecoveryServices.ResourceGuardProxy.put, + "ResourceGuardProxyOperation", + "java" +); +@@clientLocation(Microsoft.RecoveryServices.ResourceGuardProxy.unlockDelete, + "ResourceGuardProxyOperation", + "java" +); +@@clientName(Microsoft.RecoveryServices, + "RecoveryServicesBackupClient", + "javascript" +); + +// Custom operations to reorder parameters (resourceGroupName after vaultName) for various operations + +// BMSPrepareDataMoveOperationResult operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op bmsPrepareDataMoveOperationResultGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + backupStorageConfigName: "vaultstorageconfig", + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + operationId: string, +): VaultStorageConfigOperationResultResponse; + +@@override(BMSPrepareDataMoveOperationResult.get, + bmsPrepareDataMoveOperationResultGet, + "java,go,python" +); + +// BackupEngines operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op backupEnginesGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + backupEngineName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + $filter?: string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + $skipToken?: string, +): BackupEngineBaseResource; + +@@override(BackupEngines.get, backupEnginesGet, "java,go,python"); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op backupEnginesList( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + $filter?: string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + $skipToken?: string, +): ArmResponse; + +@@override(BackupEngines.list, backupEnginesList, "java,go,python"); + +// BackupJobs operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op backupJobsList( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + $filter?: string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + $skipToken?: string, +): ArmResponse; + +@@override(BackupJobs.list, backupJobsList, "java,go,python"); + +// BackupPolicies operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op backupPoliciesList( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + $filter?: string, +): ArmResponse; + +@@override(BackupPolicies.list, backupPoliciesList, "java,go,python"); + +// BackupResourceEncryptionConfigs operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op backupResourceEncryptionConfigsGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + backupEncryptionConfig: string, +): BackupResourceEncryptionConfigExtendedResource; + +@@override(BackupResourceEncryptionConfigs.get, + backupResourceEncryptionConfigsGet, + "java,go,python" +); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op backupResourceEncryptionConfigsUpdate( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + backupEncryptionConfig: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + parameters: BackupResourceEncryptionConfigResource, +): ArmResponse; + +@@override(BackupResourceEncryptionConfigs.update, + backupResourceEncryptionConfigsUpdate, + "java,go,python" +); + +// BackupResourceStorageConfigsNonCRR operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +#suppress "@azure-tools/typespec-azure-core/casing-style" "override" +op backupResourceStorageConfigsNonCRRGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + provider: "Microsoft.ThisWillBeReplaced", + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + backupstorageconfig: string, +): BackupResourceConfigResource; + +@@override(BackupResourceStorageConfigsNonCRR.get, + backupResourceStorageConfigsNonCRRGet, + "java,go,python" +); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +#suppress "@azure-tools/typespec-azure-core/casing-style" "override" +op backupResourceStorageConfigsNonCRRPatch( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + provider: "Microsoft.ThisWillBeReplaced", + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + backupstorageconfig: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + parameters: BackupResourceConfigResource, +): ArmNoContentResponse; + +@@override(BackupResourceStorageConfigsNonCRR.patch, + backupResourceStorageConfigsNonCRRPatch, + "java,go,python" +); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +#suppress "@azure-tools/typespec-azure-core/casing-style" "override" +op backupResourceStorageConfigsNonCRRUpdate( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + provider: "Microsoft.ThisWillBeReplaced", + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + backupstorageconfig: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + parameters: BackupResourceConfigResource, +): ArmResourceUpdatedResponse; + +@@override(BackupResourceStorageConfigsNonCRR.update, + backupResourceStorageConfigsNonCRRUpdate, + "java,go,python" +); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +#suppress "@azure-tools/typespec-azure-core/casing-style" "override" +op backupResourceStorageConfigsNonCRRBmsPrepareDataMove( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + provider: "Microsoft.ThisWillBeReplaced", + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + backupstorageconfig: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + parameters: PrepareDataMoveRequest, +): ArmAcceptedLroResponse; + +@@override(BackupResourceStorageConfigsNonCRR.bmsPrepareDataMove, + backupResourceStorageConfigsNonCRRBmsPrepareDataMove, + "java,go,python" +); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +#suppress "@azure-tools/typespec-azure-core/casing-style" "override" +op backupResourceStorageConfigsNonCRRBmsTriggerDataMove( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + provider: "Microsoft.ThisWillBeReplaced", + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + backupstorageconfig: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + parameters: TriggerDataMoveRequest, +): ArmAcceptedLroResponse; + +@@override(BackupResourceStorageConfigsNonCRR.bmsTriggerDataMove, + backupResourceStorageConfigsNonCRRBmsTriggerDataMove, + "java,go,python" +); + +// BackupResourceVaultConfigs operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op backupResourceVaultConfigsGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + backupconfig: string, +): BackupResourceVaultConfigResource; + +@@override(BackupResourceVaultConfigs.get, + backupResourceVaultConfigsGet, + "java,go,python" +); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op backupResourceVaultConfigsPut( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + backupconfig: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + parameters: BackupResourceVaultConfigResource, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + #suppress "@azure-tools/typespec-azure-core/casing-style" "override" + `x-ms-authorization-auxiliary`?: string, +): ArmResourceUpdatedResponse; + +@@override(BackupResourceVaultConfigs.put, + backupResourceVaultConfigsPut, + "java,go,python" +); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op backupResourceVaultConfigsUpdate( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + backupconfig: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + parameters: BackupResourceVaultConfigResource, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + #suppress "@azure-tools/typespec-azure-core/casing-style" "override" + `x-ms-authorization-auxiliary`?: string, +): ArmNoContentResponse; + +@@override(BackupResourceVaultConfigs.update, + backupResourceVaultConfigsUpdate, + "java,go,python" +); + +// BackupWorkloadItems operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op backupWorkloadItemsList( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + containerName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + $filter?: string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + $skipToken?: string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + body: void, +): ArmResponse; + +@@override(BackupWorkloadItems.list, backupWorkloadItemsList, "java,go,python"); + +// Backups operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op backupsTrigger( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + containerName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + protectedItemName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + parameters: BackupRequestResource, +): void; + +@@override(Backups.trigger, backupsTrigger, "java,go,python"); + +// RecoveryPoints operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op recoveryPointsGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + containerName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + protectedItemName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + recoveryPointId: string, +): RecoveryPointResource; + +@@override(RecoveryPoints.get, recoveryPointsGet, "java,go,python"); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op recoveryPointsList( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + containerName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + protectedItemName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + $filter?: string, +): ArmResponse; + +@@override(RecoveryPoints.list, recoveryPointsList, "java,go,python"); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op recoveryPointsMoveRecoveryPoint( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + containerName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + protectedItemName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + recoveryPointId: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + parameters: MoveRPAcrossTiersRequest, +): ArmAcceptedLroResponse; + +@@override(RecoveryPoints.moveRecoveryPoint, + recoveryPointsMoveRecoveryPoint, + "java,go,python" +); + +// RecoveryPointsRecommendedForMove operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op recoveryPointsRecommendedForMoveList( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + containerName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + protectedItemName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + parameters: ListRecoveryPointsRecommendedForMoveRequest, +): ArmResponse; + +@@override(RecoveryPointsRecommendedForMove.list, + recoveryPointsRecommendedForMoveList, + "java,go,python" +); + +// BackupResourceConfigOperationStatuses operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op backupResourceConfigOperationStatusesGetOperationStatus( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + backupStorageConfigName: "vaultstorageconfig", + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + operationId: string, +): ArmResponse; + +@@override(BackupResourceConfigOperationStatuses.getOperationStatus, + backupResourceConfigOperationStatusesGetOperationStatus, + "java,go,python" +); + +// ExportJobsOperationResults operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op exportJobsOperationResultsGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + operationId: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + backupJobs: "backupJobs", +): OperationResultInfoBaseResource; + +@@override(ExportJobsOperationResults.get, + exportJobsOperationResultsGet, + "java,go,python" +); + +// ItemLevelRecoveryConnections operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op itemLevelRecoveryConnectionsProvision( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + containerName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + protectedItemName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + recoveryPointId: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + parameters: ILRRequestResource, +): void; + +@@override(ItemLevelRecoveryConnections.provision, + itemLevelRecoveryConnectionsProvision, + "java,go,python" +); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op itemLevelRecoveryConnectionsRevoke( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + containerName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + protectedItemName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + recoveryPointId: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + body: void, +): void; + +@@override(ItemLevelRecoveryConnections.revoke, + itemLevelRecoveryConnectionsRevoke, + "java,go,python" +); + +// JobCancellations operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op jobCancellationsTrigger( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + jobName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + body: void, +): void; + +@@override(JobCancellations.trigger, jobCancellationsTrigger, "java,go,python"); + +// JobDetails operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op jobDetailsGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + jobName: string, +): JobResource; + +@@override(JobDetails.get, jobDetailsGet, "java,go,python"); + +// JobOperationResults operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op jobOperationResultsGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + jobName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + operationId: string, +): JobResource; + +@@override(JobOperationResults.get, jobOperationResultsGet, "java,go,python"); + +// PrivateEndpointConnectionResources operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op privateEndpointConnectionResourcesGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + privateEndpointConnectionName: string, +): Microsoft.RecoveryServices.PrivateEndpointConnectionResource; + +@@override(PrivateEndpointConnectionResources.get, + privateEndpointConnectionResourcesGet, + "java,go,python" +); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op privateEndpointConnectionResourcesPut( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + privateEndpointConnectionName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + parameters: Microsoft.RecoveryServices.PrivateEndpointConnectionResource, +): Microsoft.RecoveryServices.PrivateEndpointConnectionResource | ArmAcceptedLroResponse; + +@@override(PrivateEndpointConnectionResources.put, + privateEndpointConnectionResourcesPut, + "java,go,python" +); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op privateEndpointConnectionResourcesDelete( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + privateEndpointConnectionName: string, +): ArmDeletedNoContentResponse; + +@@override(PrivateEndpointConnectionResources.delete, + privateEndpointConnectionResourcesDelete, + "java,go,python" +); + +// PrivateEndpointOperationStatuses operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op privateEndpointOperationStatusesGetOperationStatus( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + privateEndpointConnectionName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + operationId: string, +): ArmResponse; + +@@override(PrivateEndpointOperationStatuses.getOperationStatus, + privateEndpointOperationStatusesGetOperationStatus, + "java,go,python" +); + +// ProtectedItemOperationResults operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op protectedItemOperationResultsGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + containerName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + protectedItemName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + operationId: string, +): ProtectedItemResource; + +@@override(ProtectedItemOperationResults.get, + protectedItemOperationResultsGet, + "java,go,python" +); + +// ProtectedItemOperationStatuses operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op protectedItemOperationStatusesGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + containerName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + protectedItemName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + operationId: string, +): ArmResponse; + +@@override(ProtectedItemOperationStatuses.get, + protectedItemOperationStatusesGet, + "java,go,python" +); + +// ProtectedItems operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op protectedItemsCreateOrUpdate( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + containerName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + protectedItemName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + parameters: ProtectedItemResource, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + #suppress "@azure-tools/typespec-azure-core/casing-style" "override" + `x-ms-authorization-auxiliary`?: string, +): ProtectedItemResource; + +@@override(ProtectedItems.createOrUpdate, + protectedItemsCreateOrUpdate, + "java,go,python" +); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op protectedItemsDelete( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + containerName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + protectedItemName: string, +): ArmDeletedNoContentResponse; + +@@override(ProtectedItems.delete, protectedItemsDelete, "java,go,python"); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op protectedItemsGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + containerName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + protectedItemName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + $filter?: string, +): ProtectedItemResource; + +@@override(ProtectedItems.get, protectedItemsGet, "java,go,python"); + +// ProtectionContainerOperationResults operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op protectionContainerOperationResultsGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + containerName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + operationId: string, +): ProtectionContainerResource; + +@@override(ProtectionContainerOperationResults.get, + protectionContainerOperationResultsGet, + "java,go,python" +); + +// ProtectionContainers operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op protectionContainersRegister( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + containerName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + parameters: ProtectionContainerResource, +): ProtectionContainerResource; + +@@override(ProtectionContainers.register, + protectionContainersRegister, + "java,go,python" +); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op protectionContainersGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + containerName: string, +): ProtectionContainerResource; + +@@override(ProtectionContainers.get, protectionContainersGet, "java,go,python"); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op protectionContainersInquire( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + containerName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + $filter?: string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + body: void, +): void; + +@@override(ProtectionContainers.inquire, + protectionContainersInquire, + "java,go,python" +); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op protectionContainersUnregister( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + containerName: string, +): void; + +@@override(ProtectionContainers.unregister, + protectionContainersUnregister, + "java,go,python" +); + +// ProtectionIntentResources operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op protectionIntentResourcesCreateOrUpdate( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + intentObjectName: string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + parameters: ProtectionIntentResource, +): ProtectionIntentResource; + +@@override(ProtectionIntentResources.createOrUpdate, + protectionIntentResourcesCreateOrUpdate, + "java,go,python" +); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op protectionIntentResourcesDelete( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + intentObjectName: string, +): ArmDeletedNoContentResponse; + +@@override(ProtectionIntentResources.delete, + protectionIntentResourcesDelete, + "java,go,python" +); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op protectionIntentResourcesGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + intentObjectName: string, +): ProtectionIntentResource; + +@@override(ProtectionIntentResources.get, + protectionIntentResourcesGet, + "java,go,python" +); + +// ProtectionPolicies operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op protectionPoliciesGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + policyName: string, +): ProtectionPolicyResource; + +@@override(ProtectionPolicies.get, protectionPoliciesGet, "java,go,python"); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op protectionPoliciesCreateOrUpdate( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + policyName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + parameters: ProtectionPolicyResource, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + #suppress "@azure-tools/typespec-azure-core/casing-style" "override" + `x-ms-authorization-auxiliary`?: string, +): ArmResourceUpdatedResponse; + +@@override(ProtectionPolicies.createOrUpdate, + protectionPoliciesCreateOrUpdate, + "java,go,python" +); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op protectionPoliciesDelete( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + policyName: string, +): ArmDeletedNoContentResponse; + +@@override(ProtectionPolicies.delete, + protectionPoliciesDelete, + "java,go,python" +); + +// ProtectionPolicyOperationResults operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op protectionPolicyOperationResultsGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + policyName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + operationId: string, +): ProtectionPolicyResource; + +@@override(ProtectionPolicyOperationResults.get, + protectionPolicyOperationResultsGet, + "java,go,python" +); + +// ResourceGuardProxies operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op resourceGuardProxiesGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, +): ArmResponse; + +@@override(ResourceGuardProxies.get, resourceGuardProxiesGet, "java,go,python"); + +// ResourceGuardProxy operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op resourceGuardProxyDelete( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + resourceGuardProxyName: string, +): ArmDeletedNoContentResponse; + +@@override(ResourceGuardProxy.delete, + resourceGuardProxyDelete, + "java,go,python" +); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op resourceGuardProxyGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + resourceGuardProxyName: string, +): ResourceGuardProxyBaseResource; + +@@override(ResourceGuardProxy.get, resourceGuardProxyGet, "java,go,python"); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op resourceGuardProxyPut( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + resourceGuardProxyName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + parameters: ResourceGuardProxyBaseResource, +): ResourceGuardProxyBaseResource; + +@@override(ResourceGuardProxy.put, resourceGuardProxyPut, "java,go,python"); + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op resourceGuardProxyUnlockDelete( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + resourceGuardProxyName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + parameters: UnlockDeleteRequest, +): UnlockDeleteResponse; + +@@override(ResourceGuardProxy.unlockDelete, + resourceGuardProxyUnlockDelete, + "java,go,python" +); + +// Restores operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op restoresTrigger( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + fabricName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + containerName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + protectedItemName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + recoveryPointId: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + parameters: RestoreRequestResource, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + #suppress "@azure-tools/typespec-azure-core/casing-style" "override" + `x-ms-authorization-auxiliary`?: string, +): ArmAcceptedLroResponse; + +@@override(Restores.trigger, restoresTrigger, "java,go,python"); + +// ProtectionPolicyOperationStatuses operations +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "customization" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "override" +op protectionPolicyOperationStatusesGet( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...Azure.ResourceManager.Legacy.Provider, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + vaultName: string, + + ...ResourceGroupParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + policyName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "override" + @path + operationId: string, +): ArmAcceptedLroResponse; + +@@override(ProtectionPolicyOperationStatuses.get, + protectionPolicyOperationStatusesGet, + "java,go,python" +); diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/BackupFeature_Validate.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/BackupFeature_Validate.json new file mode 100644 index 000000000000..f25f1bf1dfe3 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/BackupFeature_Validate.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "azureRegion": "southeastasia", + "parameters": { + "featureType": "AzureVMResourceBackup", + "vmSize": "Basic_A0", + "vmSku": "Premium" + }, + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "supportStatus": "DefaultOFF" + } + } + }, + "operationId": "FeatureSupport_Validate", + "title": "Check Azure Vm Backup Feature Support" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/BackupPolicies_List.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/BackupPolicies_List.json new file mode 100644 index 000000000000..6fece46aee46 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/BackupPolicies_List.json @@ -0,0 +1,78 @@ +{ + "parameters": { + "$filter": "backupManagementType eq 'AzureIaasVM'", + "api-version": "2025-02-01", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "DefaultPolicy", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/DefaultPolicy", + "properties": { + "backupManagementType": "AzureIaasVM", + "protectedItemsCount": 0, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 30, + "durationType": "Days" + }, + "retentionTimes": [ + "2017-12-05T19:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": [ + "2017-12-05T19:00:00Z" + ], + "scheduleWeeklyFrequency": 0 + } + } + }, + { + "name": "testPolicy1", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", + "properties": { + "backupManagementType": "AzureIaasVM", + "protectedItemsCount": 0, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 1, + "durationType": "Days" + }, + "retentionTimes": [ + "2018-01-24T02:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": [ + "2018-01-24T02:00:00Z" + ], + "scheduleWeeklyFrequency": 0 + }, + "timeZone": "Pacific Standard Time" + } + } + ] + } + } + }, + "operationId": "BackupPolicies_List", + "title": "List protection policies with backupManagementType filter as AzureIaasVm" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/BackupProtectableItems_List.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/BackupProtectableItems_List.json new file mode 100644 index 000000000000..a83a80f799a4 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/BackupProtectableItems_List.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "$filter": "backupManagementType eq 'AzureIaasVM'", + "api-version": "2025-02-01", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "VM;iaasvmcontainer;iaasvm-rg;iaasvm-1", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectableItems", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/protectionContainers/IaasVMContainer;iaasvmcontainer;iaasvm-rg;iaasvm-1/protectableItems/VM;iaasvmcontainer;iaasvm-rg;iaasvm-1", + "properties": { + "backupManagementType": "AzureIaasVM", + "friendlyName": "iaasvm-1", + "protectableItemType": "Microsoft.ClassicCompute/virtualMachines", + "protectionState": "NotProtected", + "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ClassicCompute/virtualMachines/iaasvm-1", + "workloadType": "VM" + } + } + ] + } + } + }, + "operationId": "BackupProtectableItems_List", + "title": "List protectable items with backupManagementType filter as AzureIaasVm" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/BackupProtectedItems_List.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/BackupProtectedItems_List.json new file mode 100644 index 000000000000..d8168fa70c69 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/BackupProtectedItems_List.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "$filter": "backupManagementType eq 'AzureIaasVM' and itemType eq 'VM'", + "api-version": "2025-02-01", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "VM;iaasvmcontainer;iaasvm-rg;iaasvm-1", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/protectionContainers/IaasVMContainer;iaasvmcontainer;iaasvm-rg;iaasvm-1/protectedItems/VM;iaasvmcontainer;iaasvm-rg;iaasvm-1", + "properties": { + "backupManagementType": "AzureIaasVM", + "containerName": "iaasvmcontainer;iaasvm-rg;iaasvm-1", + "friendlyName": "iaasvm-1", + "healthStatus": "Passed", + "lastBackupStatus": "Completed", + "lastBackupTime": "2018-01-22T12:25:32.048723Z", + "lastRecoveryPoint": "2017-11-22T12:25:32.048723Z", + "policyId": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", + "policyType": "V2", + "protectedItemDataId": "636482643132986882", + "protectedItemType": "Microsoft.ClassicCompute/virtualMachines", + "protectionState": "Protected", + "protectionStatus": "Healthy", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ClassicCompute/virtualMachines/iaasvm-1", + "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ClassicCompute/virtualMachines/iaasvm-1", + "workloadType": "VM" + } + } + ] + } + } + }, + "operationId": "BackupProtectedItems_List", + "title": "List protected items with backupManagementType filter as AzureIaasVm" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ClassicCompute_ProtectedItem_Get.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ClassicCompute_ProtectedItem_Get.json new file mode 100644 index 000000000000..a4271c620fdc --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ClassicCompute_ProtectedItem_Get.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "iaasvmcontainer;iaasvmcontainer;iaasvm-rg;iaasvm-1", + "fabricName": "Azure", + "protectedItemName": "vm;iaasvmcontainer;iaasvm-rg;iaasvm-1", + "resourceGroupName": "PythonSDKBackupTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "VM;iaasvmcontainer;iaasvm-rg;iaasvm-1", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainer;iaasvm-rg;iaasvm-1/protectedItems/VM;iaasvmcontainer;iaasvm-rg;iaasvm-1", + "properties": { + "backupManagementType": "AzureIaasVM", + "containerName": "iaasvmcontainer;iaasvm-rg;iaasvm-1", + "friendlyName": "iaasvm-1", + "healthStatus": "Passed", + "lastBackupStatus": "Completed", + "lastBackupTime": "2018-01-22T12:25:32.048723Z", + "lastRecoveryPoint": "2017-11-22T12:25:32.048723Z", + "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupPolicies/testPolicy1", + "policyType": "V1", + "protectedItemDataId": "636482643132986882", + "protectedItemType": "Microsoft.ClassicCompute/virtualMachines", + "protectionState": "Protected", + "protectionStatus": "Healthy", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ClassicCompute/virtualMachines/iaasvm-1", + "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ClassicCompute/virtualMachines/iaasvm-1", + "workloadType": "VM" + } + }, + "headers": {} + } + }, + "operationId": "ProtectedItems_Get", + "title": "Get Protected Classic Virtual Machine Details" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/Compute_ProtectedItem_Get.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/Compute_ProtectedItem_Get.json new file mode 100644 index 000000000000..ef24d6f74a4f --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/Compute_ProtectedItem_Get.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "iaasvmcontainer;iaasvmcontainerv2;iaasvm-rg;iaasvm-1", + "fabricName": "Azure", + "protectedItemName": "vm;iaasvmcontainerv2;iaasvm-rg;iaasvm-1", + "resourceGroupName": "PythonSDKBackupTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "VM;iaasvmcontainerv2;iaasvm-rg;iaasvm-1", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;iaasvm-rg;iaasvm-1/protectedItems/VM;iaasvmcontainerv2;iaasvm-rg;iaasvm-1", + "properties": { + "backupManagementType": "AzureIaasVM", + "containerName": "iaasvmcontainerv2;iaasvm-rg;iaasvm-1", + "friendlyName": "iaasvm-1", + "healthStatus": "Passed", + "lastBackupStatus": "Completed", + "lastBackupTime": "2018-01-22T12:25:32.048723Z", + "lastRecoveryPoint": "2017-11-22T12:25:32.048723Z", + "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupPolicies/testPolicy1", + "policyType": "V2", + "protectedItemDataId": "636482643132986882", + "protectedItemType": "Microsoft.Compute/virtualMachines", + "protectionState": "Protected", + "protectionStatus": "Healthy", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.Compute/virtualMachines/iaasvm-1", + "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.Compute/virtualMachines/iaasvm-1", + "workloadType": "VM" + } + }, + "headers": {} + } + }, + "operationId": "ProtectedItems_Get", + "title": "Get Protected Virtual Machine Details" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ConfigureProtection.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ConfigureProtection.json new file mode 100644 index 000000000000..210303050770 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ConfigureProtection.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", + "parameters": { + "properties": { + "policyId": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/DefaultPolicy", + "protectedItemType": "Microsoft.Compute/virtualMachines", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1" + } + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "properties": { + "backupManagementType": "AzureIaasVM", + "containerName": "iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "friendlyName": "netvmtestv2vm1", + "healthStatus": "Passed", + "lastBackupStatus": "Completed", + "lastBackupTime": "2018-01-22T12:25:32.048723Z", + "lastRecoveryPoint": null, + "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupPolicies/testPolicy1", + "protectedItemDataId": "636482643132986882", + "protectedItemType": "Microsoft.Compute/virtualMachines", + "protectionState": "Protected", + "protectionStatus": "Healthy", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "workloadType": "VM" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Retry-After": 60 + } + } + }, + "operationId": "ProtectedItems_CreateOrUpdate", + "title": "Enable Protection on Azure IaasVm" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/GetBackupStatus.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/GetBackupStatus.json new file mode 100644 index 000000000000..1fd862bd8f91 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/GetBackupStatus.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "azureRegion": "southeastasia", + "parameters": { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Compute/VirtualMachines/testVm", + "resourceType": "VM" + }, + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "containerName": "iaasvmcontainer;iaasvmcontainerv2;testRg;testVm", + "errorCode": "Success", + "errorMessage": "ErrorMessage", + "fabricName": "Azure", + "policyName": "myPolicy", + "protectedItemName": "vm;iaasvmcontainerv2;testRg;testVm", + "protectionStatus": "Protected", + "vaultId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.RecoveryServices/Vaults/testVault" + } + } + }, + "operationId": "BackupStatus_Get", + "title": "Get Azure Virtual Machine Backup Status" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectedItemOperationResults.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectedItemOperationResults.json new file mode 100644 index 000000000000..f1b22bf28163 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectedItemOperationResults.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "operationId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "properties": { + "backupManagementType": "AzureIaasVM", + "containerName": "iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "friendlyName": "netvmtestv2vm1", + "healthStatus": "Passed", + "lastBackupStatus": "Completed", + "lastBackupTime": "2018-01-22T12:25:32.048723Z", + "lastRecoveryPoint": null, + "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupPolicies/testPolicy1", + "protectedItemDataId": "636482643132986882", + "protectedItemType": "Microsoft.Compute/virtualMachines", + "protectionState": "Protected", + "protectionStatus": "Healthy", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "workloadType": "VM" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Retry-After": 60 + } + }, + "204": {} + }, + "operationId": "ProtectedItemOperationResults_Get", + "title": "Get Operation Results of Protected Vm" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectedItemOperationStatus.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectedItemOperationStatus.json new file mode 100644 index 000000000000..849954101b26 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectedItemOperationStatus.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "operationId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "00000000-0000-0000-0000-000000000000", + "endTime": "2017-10-29T06:04:18.207325Z", + "id": "00000000-0000-0000-0000-000000000000", + "properties": { + "jobId": "00000000-0000-0000-0000-000000000000", + "objectType": "OperationStatusJobExtendedInfo" + }, + "startTime": "2017-10-29T06:04:18.207325Z", + "status": "Succeeded" + }, + "headers": {} + } + }, + "operationId": "ProtectedItemOperationStatuses_Get", + "title": "Get Operation Status of Protected Vm" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionIntent_CreateOrUpdate.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionIntent_CreateOrUpdate.json new file mode 100644 index 000000000000..1ac8fd1c211a --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionIntent_CreateOrUpdate.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "fabricName": "Azure", + "intentObjectName": "vm;iaasvmcontainerv2;chamsrgtest;chamscandel", + "parameters": { + "properties": { + "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupPolicies/myPolicy", + "protectionIntentItemType": "AzureResourceItem", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/chamsrgtest/providers/Microsoft.Compute/virtualMachines/chamscandel" + } + }, + "resourceGroupName": "myRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "myVault" + }, + "responses": { + "200": { + "body": { + "name": "vm;iaasvmcontainerv2;chamsrgtest;chamscandel", + "type": "Microsoft.RecoveryServices/vaults/backupProtectionIntent", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupFabrics/Azure/backupProtectionIntent/vm;iaasvmcontainerv2;chamsrgtest;chamscandel", + "properties": { + "backupManagementType": "AzureIaasVM", + "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupPolicies/myPolicy", + "protectionIntentItemType": "AzureResourceItem", + "protectionState": "Protected" + } + } + } + }, + "operationId": "ProtectionIntent_CreateOrUpdate", + "title": "Create or Update Azure Vm Protection Intent" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionIntent_Validate.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionIntent_Validate.json new file mode 100644 index 000000000000..fad264ea0a1a --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionIntent_Validate.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "azureRegion": "southeastasia", + "parameters": { + "properties": "", + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/arunaupgrade/providers/Microsoft.Compute/VirtualMachines/upgrade1", + "resourceType": "VM", + "vaultId": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/Vaults/myVault" + }, + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "containerName": "iaasvmcontainer;iaasvmcontainerv2;arunaupgrade;upgrade1", + "errorCode": "VirtualMachineAlreadyProtected", + "errorMessage": "Virtual machine with same name and same resource group is already protected. Please select `Disable' choice above for backup and go to backup item corresponding to this VM in the vault", + "protectedItemName": "vm;iaasvmcontainerv2;arunaupgrade;upgrade1", + "recommendation": "Please do not enable protection again.", + "status": "Failed" + } + } + }, + "operationId": "ProtectionIntent_Validate", + "title": "Validate Enable Protection on Azure Vm" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionPolicies_CreateOrUpdate_Complex.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionPolicies_CreateOrUpdate_Complex.json new file mode 100644 index 000000000000..823e81f1979f --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionPolicies_CreateOrUpdate_Complex.json @@ -0,0 +1,183 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "properties": { + "backupManagementType": "AzureIaasVM", + "retentionPolicy": { + "monthlySchedule": { + "retentionDuration": { + "count": 2, + "durationType": "Months" + }, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Wednesday", + "Thursday" + ], + "weeksOfTheMonth": [ + "First", + "Third" + ] + }, + "retentionTimes": [ + "2018-01-24T10:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Monday", + "Wednesday", + "Thursday" + ], + "retentionDuration": { + "count": 1, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2018-01-24T10:00:00Z" + ] + }, + "yearlySchedule": { + "monthsOfYear": [ + "February", + "November" + ], + "retentionDuration": { + "count": 4, + "durationType": "Years" + }, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Monday", + "Thursday" + ], + "weeksOfTheMonth": [ + "Fourth" + ] + }, + "retentionTimes": [ + "2018-01-24T10:00:00Z" + ] + } + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunDays": [ + "Monday", + "Wednesday", + "Thursday" + ], + "scheduleRunFrequency": "Weekly", + "scheduleRunTimes": [ + "2018-01-24T10:00:00Z" + ] + }, + "timeZone": "Pacific Standard Time" + } + }, + "policyName": "testPolicy1", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "testPolicy1", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", + "properties": { + "backupManagementType": "AzureIaasVM", + "protectedItemsCount": 0, + "retentionPolicy": { + "monthlySchedule": { + "retentionDuration": { + "count": 2, + "durationType": "Months" + }, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Wednesday", + "Thursday" + ], + "weeksOfTheMonth": [ + "First", + "Third" + ] + }, + "retentionTimes": [ + "2018-01-24T10:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Monday", + "Wednesday", + "Thursday" + ], + "retentionDuration": { + "count": 1, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2018-01-24T10:00:00Z" + ] + }, + "yearlySchedule": { + "monthsOfYear": [ + "February", + "November" + ], + "retentionDuration": { + "count": 4, + "durationType": "Years" + }, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Monday", + "Thursday" + ], + "weeksOfTheMonth": [ + "Fourth" + ] + }, + "retentionTimes": [ + "2018-01-24T10:00:00Z" + ] + } + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunDays": [ + "Monday", + "Wednesday", + "Thursday" + ], + "scheduleRunFrequency": "Weekly", + "scheduleRunTimes": [ + "2018-01-24T10:00:00Z" + ], + "scheduleWeeklyFrequency": 0 + }, + "timeZone": "Pacific Standard Time" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1/operations/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", + "Retry-After": 60 + } + } + }, + "operationId": "ProtectionPolicies_CreateOrUpdate", + "title": "Create or Update Full Azure Vm Protection Policy" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionPolicies_CreateOrUpdate_Simple.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionPolicies_CreateOrUpdate_Simple.json new file mode 100644 index 000000000000..d6331f6ab4e4 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionPolicies_CreateOrUpdate_Simple.json @@ -0,0 +1,77 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "properties": { + "backupManagementType": "AzureIaasVM", + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 1, + "durationType": "Days" + }, + "retentionTimes": [ + "2018-01-24T02:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": [ + "2018-01-24T02:00:00Z" + ] + }, + "timeZone": "Pacific Standard Time" + } + }, + "policyName": "testPolicy1", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "testPolicy1", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", + "properties": { + "backupManagementType": "AzureIaasVM", + "protectedItemsCount": 0, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 1, + "durationType": "Days" + }, + "retentionTimes": [ + "2018-01-24T02:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": [ + "2018-01-24T02:00:00Z" + ], + "scheduleWeeklyFrequency": 0 + }, + "timeZone": "Pacific Standard Time" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1/operations/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", + "Retry-After": 60 + } + } + }, + "operationId": "ProtectionPolicies_CreateOrUpdate", + "title": "Create or Update Simple Azure Vm Protection Policy" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionPolicies_Delete.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionPolicies_Delete.json new file mode 100644 index 000000000000..34ef259de3e9 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionPolicies_Delete.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "policyName": "testPolicy1", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1/operations/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", + "Retry-After": 60 + } + }, + "204": {} + }, + "operationId": "ProtectionPolicies_Delete", + "title": "Delete Azure Vm Protection Policy" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionPolicies_Get.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionPolicies_Get.json new file mode 100644 index 000000000000..fe7e274f8a28 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionPolicies_Get.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "policyName": "testPolicy1", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "testPolicy1", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", + "properties": { + "backupManagementType": "AzureIaasVM", + "protectedItemsCount": 0, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 1, + "durationType": "Days" + }, + "retentionTimes": [ + "2018-01-24T02:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": [ + "2018-01-24T02:00:00Z" + ], + "scheduleWeeklyFrequency": 0 + }, + "timeZone": "Pacific Standard Time" + } + } + } + }, + "operationId": "ProtectionPolicies_Get", + "title": "Get Azure IaasVm Protection Policy Details" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionPolicyOperationResults_Get.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionPolicyOperationResults_Get.json new file mode 100644 index 000000000000..1150e635f54d --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionPolicyOperationResults_Get.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "operationId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", + "policyName": "testPolicy1", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "testPolicy1", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", + "properties": { + "backupManagementType": "AzureIaasVM", + "protectedItemsCount": 1, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 1, + "durationType": "Days" + }, + "retentionTimes": [ + "2018-01-24T02:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": [ + "2018-01-24T02:00:00Z" + ], + "scheduleWeeklyFrequency": 0 + }, + "timeZone": "Pacific Standard Time" + } + } + } + }, + "operationId": "ProtectionPolicyOperationResults_Get", + "title": "Get Protection Policy Operation Results" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionPolicyOperationStatuses_Get.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionPolicyOperationStatuses_Get.json new file mode 100644 index 000000000000..16bc427a5d83 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ProtectionPolicyOperationStatuses_Get.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "operationId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", + "policyName": "testPolicy1", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "GetProtectionPolicyOperationStatus", + "endTime": "2018-01-24T12:57:32.1142968Z", + "id": "00000000-0000-0000-0000-000000000000", + "properties": { + "failedJobsError": {}, + "jobIds": [ + "00000000-0000-0000-0000-000000000000" + ], + "objectType": "OperationStatusJobsExtendedInfo" + }, + "startTime": "2018-01-24T12:57:32.1142968Z", + "status": "Succeeded" + } + } + }, + "operationId": "ProtectionPolicyOperationStatuses_Get", + "title": "Get Protection Policy Operation Status" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/Provision_Ilr.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/Provision_Ilr.json new file mode 100644 index 000000000000..25f600328e14 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/Provision_Ilr.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "iaasvmcontainer;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1", + "fabricName": "Azure", + "parameters": { + "properties": { + "initiatorName": "Hello World", + "objectType": "IaasVMILRRegistrationRequest", + "recoveryPointId": "38823086363464", + "renewExistingRegistration": true, + "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pysdktestrg/providers/Microsoft.Compute/virtualMachines/pysdktestv2vm1" + } + }, + "protectedItemName": "vm;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1", + "recoveryPointId": "1", + "resourceGroupName": "PythonSDKBackupTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1/protectedItems/vm;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1/protectedItems/vm;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Retry-After": 60 + } + } + }, + "operationId": "ItemLevelRecoveryConnections_Provision", + "title": "Provision Instant Item Level Recovery for Azure Vm" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/RecoveryPointsRecommendedForMove_List.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/RecoveryPointsRecommendedForMove_List.json new file mode 100644 index 000000000000..967e2b36a666 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/RecoveryPointsRecommendedForMove_List.json @@ -0,0 +1,103 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall", + "fabricName": "Azure", + "parameters": { + "excludedRPList": [ + "348916168024334", + "348916168024335" + ], + "objectType": "ListRecoveryPointsRecommendedForMoveRequest" + }, + "protectedItemName": "VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall", + "resourceGroupName": "rshhtestmdvmrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "rshvault" + }, + "responses": { + "200": { + "body": { + "nextLink": null, + "value": [ + { + "name": "22244821112382", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/22244821112382", + "properties": { + "isInstantIlrSessionActive": false, + "isManagedVirtualMachine": true, + "isSourceVMEncrypted": false, + "objectType": "IaasVMRecoveryPoint", + "originalStorageAccountOption": false, + "recoveryPointAdditionalInfo": "", + "recoveryPointMoveReadinessInfo": { + "ArchivedRP": { + "isReadyForMove": true + } + }, + "recoveryPointTierDetails": [ + { + "type": "InstantRP", + "status": "Deleted" + }, + { + "type": "HardenedRP", + "status": "Valid" + } + ], + "recoveryPointTime": "2017-12-21T22:48:25.4353958Z", + "recoveryPointType": "CrashConsistent", + "sourceVMStorageType": "NormalStorage", + "virtualMachineSize": "Standard_D1" + } + }, + { + "name": "24977149827250", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/24977149827250", + "properties": { + "isInstantIlrSessionActive": false, + "isManagedVirtualMachine": true, + "isSourceVMEncrypted": false, + "objectType": "IaasVMRecoveryPoint", + "originalStorageAccountOption": false, + "recoveryPointAdditionalInfo": "", + "recoveryPointMoveReadinessInfo": { + "ArchivedRP": { + "isReadyForMove": true + } + }, + "recoveryPointTierDetails": [ + { + "type": "InstantRP", + "status": "Deleted" + }, + { + "type": "HardenedRP", + "status": "Deleted" + }, + { + "type": "ArchivedRP", + "extendedInfo": { + "RehydratedRPExpiryTime": "2020-12-21T22:48:25.4353958Z" + }, + "status": "Rehydrated" + } + ], + "recoveryPointTime": "2017-12-20T22:49:44.3317945Z", + "recoveryPointType": "CrashConsistent", + "sourceVMStorageType": "NormalStorage", + "virtualMachineSize": "Standard_D1", + "zones": [ + "1" + ] + } + } + ] + } + } + }, + "operationId": "RecoveryPointsRecommendedForMove_List", + "title": "Get Protected Azure Vm Recovery Points Recommended for Move" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/RecoveryPoints_Get.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/RecoveryPoints_Get.json new file mode 100644 index 000000000000..a48772eacf87 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/RecoveryPoints_Get.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall", + "fabricName": "Azure", + "protectedItemName": "VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall", + "recoveryPointId": "26083826328862", + "resourceGroupName": "rshhtestmdvmrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "rshvault" + }, + "responses": { + "200": { + "body": { + "name": "26083826328862", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/26083826328862", + "properties": { + "isInstantIlrSessionActive": false, + "isManagedVirtualMachine": true, + "isPrivateAccessEnabledOnAnyDisk": true, + "isSourceVMEncrypted": false, + "objectType": "IaasVMRecoveryPoint", + "originalStorageAccountOption": false, + "recoveryPointAdditionalInfo": "", + "recoveryPointMoveReadinessInfo": { + "ArchivedRP": { + "isReadyForMove": true + } + }, + "recoveryPointTierDetails": [ + { + "type": "HardenedRP", + "status": "Valid" + } + ], + "recoveryPointTime": "2017-11-22T22:32:46.6088472Z", + "recoveryPointType": "CrashConsistent", + "sourceVMStorageType": "NormalStorage", + "virtualMachineSize": "Standard_D1", + "zones": [ + "1" + ] + } + } + } + }, + "operationId": "RecoveryPoints_Get", + "title": "Get Azure Vm Recovery Point Details" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/RecoveryPoints_List.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/RecoveryPoints_List.json new file mode 100644 index 000000000000..5042f19c9292 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/RecoveryPoints_List.json @@ -0,0 +1,138 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall", + "fabricName": "Azure", + "protectedItemName": "VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall", + "resourceGroupName": "rshhtestmdvmrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "rshvault" + }, + "responses": { + "200": { + "body": { + "nextLink": null, + "value": [ + { + "name": "22244821112382", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/22244821112382", + "properties": { + "isInstantIlrSessionActive": false, + "isManagedVirtualMachine": true, + "isSourceVMEncrypted": false, + "objectType": "IaasVMRecoveryPoint", + "originalStorageAccountOption": false, + "recoveryPointAdditionalInfo": "", + "recoveryPointMoveReadinessInfo": { + "Archive": { + "isReadyForMove": true + } + }, + "recoveryPointTierDetails": [ + { + "type": "InstantRP", + "status": "Deleted" + }, + { + "type": "HardenedRP", + "status": "Valid" + } + ], + "recoveryPointTime": "2017-12-21T22:48:25.4353958Z", + "recoveryPointType": "CrashConsistent", + "sourceVMStorageType": "NormalStorage", + "virtualMachineSize": "Standard_D1" + } + }, + { + "name": "24977149827250", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/24977149827250", + "properties": { + "isInstantIlrSessionActive": false, + "isManagedVirtualMachine": true, + "isPrivateAccessEnabledOnAnyDisk": true, + "isSourceVMEncrypted": false, + "objectType": "IaasVMRecoveryPoint", + "originalStorageAccountOption": false, + "recoveryPointAdditionalInfo": "", + "recoveryPointMoveReadinessInfo": { + "ArchivedRP": { + "additionalInfo": "Recovery point cannot be moved to archive tier since it has already been moved.", + "isReadyForMove": false + } + }, + "recoveryPointTierDetails": [ + { + "type": "InstantRP", + "status": "Deleted" + }, + { + "type": "HardenedRP", + "status": "Deleted" + }, + { + "type": "ArchivedRP", + "extendedInfo": { + "RehydratedRPExpiryTime": "2020-12-21T22:48:25.4353958Z" + }, + "status": "Rehydrated" + } + ], + "recoveryPointTime": "2017-12-20T22:49:44.3317945Z", + "recoveryPointType": "CrashConsistent", + "sourceVMStorageType": "NormalStorage", + "virtualMachineSize": "Standard_D1", + "zones": [ + "1" + ] + } + }, + { + "name": "70477518625276", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/FijiValidation-asr-microsoftrrdclab3-408/providers/Microsoft.RecoveryServices/vaults/testVault408/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;fijivalidation-asr-microsoftrrdclab3-408;vm408/protectedItems/VM;iaasvmcontainerv2;fijivalidation-asr-microsoftrrdclab3-408;vm408/recoveryPoints/70477518625276", + "properties": { + "extendedLocation": { + "name": "microsoftrrdclab3", + "type": "EdgeZone" + }, + "isInstantIlrSessionActive": false, + "isManagedVirtualMachine": true, + "isPrivateAccessEnabledOnAnyDisk": false, + "isSourceVMEncrypted": true, + "objectType": "IaasVMRecoveryPoint", + "originalStorageAccountOption": false, + "osType": "Windows", + "recoveryPointAdditionalInfo": "", + "recoveryPointMoveReadinessInfo": { + "ArchivedRP": { + "additionalInfo": "We're still determining if this Recovery Point can be moved.. Please check again after some time.", + "isReadyForMove": false + } + }, + "recoveryPointTierDetails": [ + { + "type": "InstantRP", + "status": "Valid" + }, + { + "type": "HardenedRP", + "status": "Valid" + } + ], + "recoveryPointTime": "2023-09-22T20:02:00.1225746Z", + "recoveryPointType": "CrashConsistent", + "securityType": "None", + "sourceVMStorageType": "PremiumVMOnPartialPremiumStorage", + "virtualMachineSize": "Standard_D2s_v3" + } + } + ] + } + } + }, + "operationId": "RecoveryPoints_List", + "title": "Get Protected Azure Vm Recovery Points" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/Revoke_Ilr.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/Revoke_Ilr.json new file mode 100644 index 000000000000..b894c6271282 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/Revoke_Ilr.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "iaasvmcontainer;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1", + "fabricName": "Azure", + "protectedItemName": "vm;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1", + "recoveryPointId": "1", + "resourceGroupName": "PythonSDKBackupTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1/protectedItems/vm;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1/protectedItems/vm;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Retry-After": 60 + } + } + }, + "operationId": "ItemLevelRecoveryConnections_Revoke", + "title": "Revoke Instant Item Level Recovery for Azure Vm" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/StopProtection.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/StopProtection.json new file mode 100644 index 000000000000..e937007e4e92 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/StopProtection.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", + "parameters": { + "properties": { + "protectedItemType": "Microsoft.Compute/virtualMachines", + "protectionState": "ProtectionStopped", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1" + } + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "properties": { + "backupManagementType": "AzureIaasVM", + "containerName": "iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "friendlyName": "netvmtestv2vm1", + "healthStatus": "Passed", + "lastBackupStatus": "Completed", + "lastBackupTime": "2018-01-22T12:25:32.048723Z", + "lastRecoveryPoint": null, + "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupPolicies/testPolicy1", + "protectedItemDataId": "636482643132986882", + "protectedItemType": "Microsoft.Compute/virtualMachines", + "protectionState": "ProtectionStopped", + "protectionStatus": "Healthy", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "workloadType": "VM" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Retry-After": 60 + } + } + }, + "operationId": "ProtectedItems_CreateOrUpdate", + "title": "Stop Protection with retain data on Azure IaasVm" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreRequest.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreRequest.json new file mode 100644 index 000000000000..617b6ca8ad37 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreRequest.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", + "parameters": { + "properties": { + "createNewCloudService": false, + "encryptionDetails": { + "encryptionEnabled": false + }, + "identityInfo": { + "isSystemAssignedIdentity": true + }, + "objectType": "IaasVMRestoreRequest", + "originalStorageAccountOption": false, + "recoveryPointId": "348916168024334", + "recoveryType": "AlternateLocation", + "region": "southeastasia", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "storageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Storage/storageAccounts/testingAccount", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualNetworks/testNet/subnets/default", + "targetResourceGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg2", + "targetVirtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg2/providers/Microsoft.Compute/virtualmachines/RSMDALRVM981435", + "virtualNetworkId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualNetworks/testNet" + } + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "recoveryPointId": "348916168024334", + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Retry-After": 60 + } + } + }, + "operationId": "Restores_Trigger", + "title": "Restore to New Azure IaasVm with IaasVMRestoreRequest" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreRequest_IdentityBasedRestoreDetails.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreRequest_IdentityBasedRestoreDetails.json new file mode 100644 index 000000000000..3ac7206a5d91 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreRequest_IdentityBasedRestoreDetails.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", + "parameters": { + "properties": { + "createNewCloudService": false, + "encryptionDetails": { + "encryptionEnabled": false + }, + "identityBasedRestoreDetails": { + "targetStorageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Storage/storageAccounts/testingAccount" + }, + "identityInfo": { + "isSystemAssignedIdentity": true + }, + "objectType": "IaasVMRestoreRequest", + "originalStorageAccountOption": false, + "recoveryPointId": "348916168024334", + "recoveryType": "AlternateLocation", + "region": "southeastasia", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualNetworks/testNet/subnets/default", + "targetResourceGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg2", + "targetVirtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg2/providers/Microsoft.Compute/virtualmachines/RSMDALRVM981435", + "virtualNetworkId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualNetworks/testNet" + } + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "recoveryPointId": "348916168024334", + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Retry-After": 60 + } + } + }, + "operationId": "Restores_Trigger", + "title": "Restore to New Azure IaasVm with IaasVMRestoreRequest with identityBasedRestoreDetails" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreWithRehydrationRequest.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreWithRehydrationRequest.json new file mode 100644 index 000000000000..33f3abaf587a --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreWithRehydrationRequest.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", + "parameters": { + "properties": { + "createNewCloudService": false, + "encryptionDetails": { + "encryptionEnabled": false + }, + "objectType": "IaasVMRestoreWithRehydrationRequest", + "originalStorageAccountOption": false, + "recoveryPointId": "348916168024334", + "recoveryPointRehydrationInfo": { + "rehydrationPriority": "High", + "rehydrationRetentionDuration": "P7D" + }, + "recoveryType": "AlternateLocation", + "region": "southeastasia", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "storageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Storage/storageAccounts/testingAccount", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualNetworks/testNet/subnets/default", + "targetResourceGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg2", + "targetVirtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg2/providers/Microsoft.Compute/virtualmachines/RSMDALRVM981435", + "virtualNetworkId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualNetworks/testNet" + } + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "recoveryPointId": "348916168024334", + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Retry-After": 60 + } + } + }, + "operationId": "Restores_Trigger", + "title": "Restore to New Azure IaasVm with IaasVMRestoreWithRehydrationRequest" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_ResourceGuardEnabled.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_ResourceGuardEnabled.json new file mode 100644 index 000000000000..1b6856f5bcbc --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_ResourceGuardEnabled.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", + "parameters": { + "properties": { + "createNewCloudService": true, + "encryptionDetails": { + "encryptionEnabled": false + }, + "identityBasedRestoreDetails": { + "targetStorageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount" + }, + "identityInfo": { + "isSystemAssignedIdentity": false, + "managedIdentityResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asmaskarRG1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asmaskartestmsi" + }, + "objectType": "IaasVMRestoreRequest", + "originalStorageAccountOption": false, + "recoveryPointId": "348916168024334", + "recoveryType": "RestoreDisks", + "region": "southeastasia", + "resourceGuardOperationRequests": [ + "/subscriptions/063bf7bc-e4dc-4cde-8840-8416fbd7921e/resourcegroups/ankurRG1/providers/Microsoft.DataProtection/resourceGuards/RG341/triggerRestoreRequests/default" + ], + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1" + } + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "recoveryPointId": "348916168024334", + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", + "Retry-After": 60 + } + } + }, + "operationId": "Restores_Trigger", + "title": "Restore with Resource Guard Enabled" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreRequest.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreRequest.json new file mode 100644 index 000000000000..c66e1d763b7d --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreRequest.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", + "parameters": { + "properties": { + "createNewCloudService": true, + "encryptionDetails": { + "encryptionEnabled": false + }, + "identityInfo": { + "isSystemAssignedIdentity": false, + "managedIdentityResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asmaskarRG1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asmaskartestmsi" + }, + "objectType": "IaasVMRestoreRequest", + "originalStorageAccountOption": false, + "recoveryPointId": "348916168024334", + "recoveryType": "RestoreDisks", + "region": "southeastasia", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "storageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount", + "targetDiskNetworkAccessSettings": { + "targetDiskAccessId": "/subscriptions/e7a191f5-713c-4bdb-b5e4-cf3dd90230ef/resourceGroups/arpja/providers/Microsoft.Compute/diskAccesses/arpja-diskaccess-ccy", + "targetDiskNetworkAccessOption": "EnablePrivateAccessForAllDisks" + } + } + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "recoveryPointId": "348916168024334", + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", + "Retry-After": 60 + } + } + }, + "operationId": "Restores_Trigger", + "title": "Restore Disks with IaasVMRestoreRequest" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreRequest_IdentityBasedRestoreDetails.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreRequest_IdentityBasedRestoreDetails.json new file mode 100644 index 000000000000..a2d62e873739 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreRequest_IdentityBasedRestoreDetails.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", + "parameters": { + "properties": { + "createNewCloudService": true, + "encryptionDetails": { + "encryptionEnabled": false + }, + "identityBasedRestoreDetails": { + "targetStorageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount" + }, + "identityInfo": { + "isSystemAssignedIdentity": false, + "managedIdentityResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asmaskarRG1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asmaskartestmsi" + }, + "objectType": "IaasVMRestoreRequest", + "originalStorageAccountOption": false, + "recoveryPointId": "348916168024334", + "recoveryType": "RestoreDisks", + "region": "southeastasia", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1" + } + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "recoveryPointId": "348916168024334", + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", + "Retry-After": 60 + } + } + }, + "operationId": "Restores_Trigger", + "title": "Restore Disks with IaasVMRestoreRequest with IdentityBasedRestoreDetails" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreWithRehydrationRequest.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreWithRehydrationRequest.json new file mode 100644 index 000000000000..abf369c76190 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreWithRehydrationRequest.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", + "parameters": { + "properties": { + "createNewCloudService": true, + "encryptionDetails": { + "encryptionEnabled": false + }, + "objectType": "IaasVMRestoreWithRehydrationRequest", + "originalStorageAccountOption": false, + "recoveryPointId": "348916168024334", + "recoveryPointRehydrationInfo": { + "rehydrationPriority": "Standard", + "rehydrationRetentionDuration": "P7D" + }, + "recoveryType": "RestoreDisks", + "region": "southeastasia", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "storageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount" + } + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "recoveryPointId": "348916168024334", + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", + "Retry-After": 60 + } + } + }, + "operationId": "Restores_Trigger", + "title": "Restore Disks with IaasVMRestoreWithRehydrationRequest" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerValidateOperation_RestoreDisk.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerValidateOperation_RestoreDisk.json new file mode 100644 index 000000000000..08ae08f9a410 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/TriggerValidateOperation_RestoreDisk.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;testRG;testvmName", + "fabricName": "Azure", + "parameters": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVault/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;testRG;testvmName/protectedItems/VM;iaasvmcontainerv2;testRG;testvmName/recoveryPoints/348916168024334", + "properties": { + "objectType": "ValidateIaasVMRestoreOperationRequest", + "restoreRequest": { + "createNewCloudService": true, + "encryptionDetails": { + "encryptionEnabled": false + }, + "identityInfo": { + "isSystemAssignedIdentity": false, + "managedIdentityResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asmaskarRG1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asmaskartestmsi" + }, + "objectType": "IaasVMRestoreRequest", + "originalStorageAccountOption": false, + "recoveryPointId": "348916168024334", + "recoveryType": "RestoreDisks", + "region": "southeastasia", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "storageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount" + } + } + }, + "protectedItemName": "VM;iaasvmcontainerv2;testRG;testvmName", + "recoveryPointId": "348916168024334", + "resourceGroupName": "testRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupValidateOperationsStatuses/00000000-0000-0000-0000-000000000000?api-version=2022-03-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupValidateOperationResults/00000000-0000-0000-0000-000000000000?api-version=2022-03-01", + "Retry-After": 10 + } + } + }, + "operationId": "ValidateOperation_Trigger", + "title": "Trigger Validate Operation" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/V2Policy/IaaS_v2_daily.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/V2Policy/IaaS_v2_daily.json new file mode 100644 index 000000000000..fd3a0638867d --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/V2Policy/IaaS_v2_daily.json @@ -0,0 +1,193 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "properties": { + "backupManagementType": "AzureIaasVM", + "instantRpRetentionRangeInDays": 30, + "policyType": "V2", + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 180, + "durationType": "Days" + }, + "retentionTimes": [ + "2021-12-17T08:00:00+00:00" + ] + }, + "monthlySchedule": { + "retentionDuration": { + "count": 60, + "durationType": "Months" + }, + "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": [ + "2021-12-17T08:00:00+00:00" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday" + ], + "retentionDuration": { + "count": 12, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2021-12-17T08:00:00+00:00" + ] + }, + "yearlySchedule": { + "monthsOfYear": [ + "January" + ], + "retentionDuration": { + "count": 10, + "durationType": "Years" + }, + "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": [ + "2021-12-17T08:00:00+00:00" + ] + } + }, + "schedulePolicy": { + "dailySchedule": { + "scheduleRunTimes": [ + "2018-01-24T10:00:00Z" + ] + }, + "schedulePolicyType": "SimpleSchedulePolicyV2", + "scheduleRunFrequency": "Daily" + }, + "snapshotConsistencyType": "OnlyCrashConsistent", + "timeZone": "India Standard Time" + } + }, + "policyName": "v2-daily-sample", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "v2-daily-sample", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-sample", + "properties": { + "backupManagementType": "AzureIaasVM", + "instantRpRetentionRangeInDays": 30, + "policyType": "V2", + "protectedItemsCount": 0, + "resourceGuardOperationRequests": null, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 180, + "durationType": "Days" + }, + "retentionTimes": [ + "2021-12-17T08:00:00+00:00" + ] + }, + "monthlySchedule": { + "retentionDuration": { + "count": 60, + "durationType": "Months" + }, + "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": [ + "2021-12-17T08:00:00+00:00" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday" + ], + "retentionDuration": { + "count": 12, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2021-12-17T08:00:00+00:00" + ] + }, + "yearlySchedule": { + "monthsOfYear": [ + "January" + ], + "retentionDuration": { + "count": 10, + "durationType": "Years" + }, + "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": [ + "2021-12-17T08:00:00+00:00" + ] + } + }, + "schedulePolicy": { + "dailySchedule": { + "scheduleRunTimes": [ + "2018-01-24T10:00:00Z" + ] + }, + "schedulePolicyType": "SimpleSchedulePolicyV2", + "scheduleRunFrequency": "Daily" + }, + "snapshotConsistencyType": "OnlyCrashConsistent", + "timeZone": "India Standard Time" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-sample/operations/00000000-0000-0000-0000-000000000000?api-version=2020-06-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-sample/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-06-01", + "Retry-After": 60 + } + } + }, + "operationId": "ProtectionPolicies_CreateOrUpdate", + "title": "Create or Update Enhanced Azure Vm Protection Policy with daily backup" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/V2Policy/IaaS_v2_hourly.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/V2Policy/IaaS_v2_hourly.json new file mode 100644 index 000000000000..0d4674b93c90 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/V2Policy/IaaS_v2_hourly.json @@ -0,0 +1,193 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "properties": { + "backupManagementType": "AzureIaasVM", + "instantRpRetentionRangeInDays": 30, + "policyType": "V2", + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 180, + "durationType": "Days" + }, + "retentionTimes": [ + "2021-12-17T08:00:00+00:00" + ] + }, + "monthlySchedule": { + "retentionDuration": { + "count": 60, + "durationType": "Months" + }, + "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": [ + "2021-12-17T08:00:00+00:00" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday" + ], + "retentionDuration": { + "count": 12, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2021-12-17T08:00:00+00:00" + ] + }, + "yearlySchedule": { + "monthsOfYear": [ + "January" + ], + "retentionDuration": { + "count": 10, + "durationType": "Years" + }, + "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": [ + "2021-12-17T08:00:00+00:00" + ] + } + }, + "schedulePolicy": { + "hourlySchedule": { + "interval": 4, + "scheduleWindowDuration": 16, + "scheduleWindowStartTime": "2021-12-17T08:00:00Z" + }, + "schedulePolicyType": "SimpleSchedulePolicyV2", + "scheduleRunFrequency": "Hourly" + }, + "snapshotConsistencyType": "OnlyCrashConsistent", + "timeZone": "India Standard Time" + } + }, + "policyName": "v2-daily-sample", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "v2-daily-sample", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-sample", + "properties": { + "backupManagementType": "AzureIaasVM", + "instantRpRetentionRangeInDays": 30, + "policyType": "V2", + "protectedItemsCount": 0, + "resourceGuardOperationRequests": null, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 180, + "durationType": "Days" + }, + "retentionTimes": [ + "2021-12-17T08:00:00+00:00" + ] + }, + "monthlySchedule": { + "retentionDuration": { + "count": 60, + "durationType": "Months" + }, + "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": [ + "2021-12-17T08:00:00+00:00" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday" + ], + "retentionDuration": { + "count": 12, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2021-12-17T08:00:00+00:00" + ] + }, + "yearlySchedule": { + "monthsOfYear": [ + "January" + ], + "retentionDuration": { + "count": 10, + "durationType": "Years" + }, + "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": [ + "2021-12-17T08:00:00+00:00" + ] + } + }, + "schedulePolicy": { + "hourlySchedule": { + "interval": 4, + "scheduleWindowDuration": 16, + "scheduleWindowStartTime": "2021-12-17T08:00:00Z" + }, + "schedulePolicyType": "SimpleSchedulePolicyV2", + "scheduleRunFrequency": "Hourly" + }, + "snapshotConsistencyType": "OnlyCrashConsistent", + "timeZone": "India Standard Time" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-sample/operations/00000000-0000-0000-0000-000000000000?api-version=2020-06-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-sample/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-06-01", + "Retry-After": 60 + } + } + }, + "operationId": "ProtectionPolicies_CreateOrUpdate", + "title": "Create or Update Enhanced Azure Vm Protection Policy with Hourly backup" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/V2Policy/v2-Get-Policy.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/V2Policy/v2-Get-Policy.json new file mode 100644 index 000000000000..fb72cf3ecca7 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/V2Policy/v2-Get-Policy.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "policyName": "v2-daily-sample", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "v2-daily-sample", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-sample", + "properties": { + "backupManagementType": "AzureIaasVM", + "instantRpRetentionRangeInDays": 30, + "policyType": "V2", + "protectedItemsCount": 0, + "resourceGuardOperationRequests": null, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 1, + "durationType": "Days" + }, + "retentionTimes": [ + "2018-01-24T02:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, + "schedulePolicy": { + "dailySchedule": { + "scheduleRunTimes": [ + "2018-01-24T10:00:00Z" + ] + }, + "schedulePolicyType": "SimpleSchedulePolicyV2", + "scheduleRunFrequency": "Daily" + }, + "snapshotConsistencyType": "OnlyCrashConsistent", + "timeZone": "Pacific Standard Time" + } + } + } + }, + "operationId": "ProtectionPolicies_Get", + "title": "Get Azure IaasVm Enhanced Protection Policy Details" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/V2Policy/v2-List-Policies.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/V2Policy/v2-List-Policies.json new file mode 100644 index 000000000000..80d4b18a1f40 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/V2Policy/v2-List-Policies.json @@ -0,0 +1,109 @@ +{ + "parameters": { + "$filter": "backupManagementType eq 'AzureIaasVM'", + "api-version": "2025-02-01", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "DefaultPolicy", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/DefaultPolicy", + "properties": { + "backupManagementType": "AzureIaasVM", + "protectedItemsCount": 0, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 30, + "durationType": "Days" + }, + "retentionTimes": [ + "2017-12-05T19:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": [ + "2017-12-05T19:00:00Z" + ], + "scheduleWeeklyFrequency": 0 + } + } + }, + { + "name": "testPolicy1", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", + "properties": { + "backupManagementType": "AzureIaasVM", + "protectedItemsCount": 0, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 1, + "durationType": "Days" + }, + "retentionTimes": [ + "2018-01-24T02:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": [ + "2018-01-24T02:00:00Z" + ], + "scheduleWeeklyFrequency": 0 + }, + "timeZone": "Pacific Standard Time" + } + }, + { + "name": "v2-daily-policy", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-policy", + "properties": { + "backupManagementType": "AzureIaasVM", + "protectedItemsCount": 0, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 1, + "durationType": "Days" + }, + "retentionTimes": [ + "2018-01-24T02:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, + "schedulePolicy": { + "dailySchedule": { + "scheduleRunTimes": [ + "2018-01-24T10:00:00Z" + ] + }, + "schedulePolicyType": "SimpleSchedulePolicyV2", + "scheduleRunFrequency": "Daily" + }, + "timeZone": "Pacific Standard Time" + } + } + ] + } + } + }, + "operationId": "BackupPolicies_List", + "title": "List protection policies with backupManagementType filter as AzureIaasVm with both V1 and V2 policies" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ValidateOperationResults.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ValidateOperationResults.json new file mode 100644 index 000000000000..a81e4fcc945a --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ValidateOperationResults.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "operationId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "validateOperationResponse": { + "validationResults": [ + { + "code": "UserErrorCoreCountSubscriptionQuotaReached", + "message": "Core Count subscription quota has been reached.", + "recommendations": [ + "Contact Azure support to increase the limits." + ] + } + ] + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupValidateOperationsStatuses/00000000-0000-0000-0000-000000000000?api-version=2022-03-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupValidateOperationResults/00000000-0000-0000-0000-000000000000?api-version=2022-03-01", + "Retry-After": 10 + } + } + }, + "operationId": "ValidateOperationResults_Get", + "title": "Get Operation Results of Validate Operation" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ValidateOperationStatus.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ValidateOperationStatus.json new file mode 100644 index 000000000000..5590025cf878 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ValidateOperationStatus.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "operationId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "00000000-0000-0000-0000-000000000000", + "endTime": "2017-10-29T06:04:18.207325Z", + "id": "00000000-0000-0000-0000-000000000000", + "properties": { + "objectType": "OperationStatusValidateOperationExtendedInfo", + "validateOperationResponse": { + "validationResults": [ + { + "code": "UserErrorCoreCountSubscriptionQuotaReached", + "message": "Core Count subscription quota has been reached.", + "recommendations": [ + "Contact Azure support to increase the limits." + ] + } + ] + } + }, + "startTime": "2017-10-29T06:04:18.207325Z", + "status": "Succeeded" + }, + "headers": {} + } + }, + "operationId": "ValidateOperationStatuses_Get", + "title": "Get Operation Status of Validate Operation" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ValidateOperation_RestoreDisk.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ValidateOperation_RestoreDisk.json new file mode 100644 index 000000000000..6bbc2995605e --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ValidateOperation_RestoreDisk.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;testRG;testvmName", + "fabricName": "Azure", + "parameters": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVault/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;testRG;testvmName/protectedItems/VM;iaasvmcontainerv2;testRG;testvmName/recoveryPoints/348916168024334", + "properties": { + "objectType": "ValidateIaasVMRestoreOperationRequest", + "restoreRequest": { + "createNewCloudService": true, + "encryptionDetails": { + "encryptionEnabled": false + }, + "identityInfo": { + "isSystemAssignedIdentity": false, + "managedIdentityResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asmaskarRG1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asmaskartestmsi" + }, + "objectType": "IaasVMRestoreRequest", + "originalStorageAccountOption": false, + "recoveryPointId": "348916168024334", + "recoveryType": "RestoreDisks", + "region": "southeastasia", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "storageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount" + } + } + }, + "protectedItemName": "VM;iaasvmcontainerv2;testRG;testvmName", + "recoveryPointId": "348916168024334", + "resourceGroupName": "testRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "200": { + "body": { + "validateOperationResponse": { + "validationResults": [ + { + "code": "UserErrorCoreCountSubscriptionQuotaReached", + "message": "Core Count subscription quota has been reached.", + "recommendations": [ + "Contact Azure support to increase the limits." + ] + } + ] + } + }, + "headers": {} + } + }, + "operationId": "Operation_Validate", + "title": "Validate Operation" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ValidateOperation_RestoreDisk_IdentityBasedRestoreDetails.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ValidateOperation_RestoreDisk_IdentityBasedRestoreDetails.json new file mode 100644 index 000000000000..dc08ad57dd4b --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureIaasVm/ValidateOperation_RestoreDisk_IdentityBasedRestoreDetails.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;testRG;testvmName", + "fabricName": "Azure", + "parameters": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVault/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;testRG;testvmName/protectedItems/VM;iaasvmcontainerv2;testRG;testvmName/recoveryPoints/348916168024334", + "properties": { + "objectType": "ValidateIaasVMRestoreOperationRequest", + "restoreRequest": { + "createNewCloudService": true, + "encryptionDetails": { + "encryptionEnabled": false + }, + "identityBasedRestoreDetails": { + "targetStorageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount" + }, + "identityInfo": { + "isSystemAssignedIdentity": false, + "managedIdentityResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asmaskarRG1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asmaskartestmsi" + }, + "objectType": "IaasVMRestoreRequest", + "originalStorageAccountOption": false, + "recoveryPointId": "348916168024334", + "recoveryType": "RestoreDisks", + "region": "southeastasia", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1" + } + } + }, + "protectedItemName": "VM;iaasvmcontainerv2;testRG;testvmName", + "recoveryPointId": "348916168024334", + "resourceGroupName": "testRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "200": { + "body": { + "validateOperationResponse": { + "validationResults": [ + { + "code": "UserErrorCoreCountSubscriptionQuotaReached", + "message": "Core Count subscription quota has been reached.", + "recommendations": [ + "Contact Azure support to increase the limits." + ] + } + ] + } + }, + "headers": {} + } + }, + "operationId": "Operation_Validate", + "title": "Validate Operation with identityBasedRestoreDetails" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectableContainers_List.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectableContainers_List.json new file mode 100644 index 000000000000..73bb9f1fa04b --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectableContainers_List.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "$filter": "backupManagementType eq 'AzureStorage' and workloadType eq 'AzureFileShare'", + "api-version": "2025-02-01", + "fabricName": "Azure", + "resourceGroupName": "testRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testvault" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "StorageContainer;storage;test-rg;testst", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectableContainers", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectableContainers/StorageContainer;storage;test-rg;teststorage", + "properties": { + "backupManagementType": "AzureStorage", + "containerId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/teststorage", + "friendlyName": "teststorage", + "healthStatus": "Healthy", + "protectableContainerType": "StorageContainer" + } + }, + { + "name": "StorageContainer;ClassicStorage;test-rg;teststorage", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectableContainers", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectableContainers/StorageContainer;ClassicStorage;test-rg;teststorage", + "properties": { + "backupManagementType": "AzureStorage", + "containerId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ClassicStorage/storageAccounts/teststorage", + "friendlyName": "teststorage", + "healthStatus": "Healthy", + "protectableContainerType": "StorageContainer" + } + } + ] + } + } + }, + "operationId": "ProtectableContainers_List", + "title": "List protectable items with backupManagementType filter as AzureStorage" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionContainers_Inquire.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionContainers_Inquire.json new file mode 100644 index 000000000000..844c579a6850 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionContainers_Inquire.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "storagecontainer;Storage;test-rg;teststorage", + "fabricName": "Azure", + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testvault" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/storagecontainer;Storage;test-rg;teststorage/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/storagecontainer;Storage;test-rg;teststorage/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Retry-After": 60 + } + } + }, + "operationId": "ProtectionContainers_Inquire", + "title": "Inquire Azure Storage Protection Containers" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionContainers_Inquire_Result.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionContainers_Inquire_Result.json new file mode 100644 index 000000000000..5ddb311022db --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionContainers_Inquire_Result.json @@ -0,0 +1,67 @@ +{ + "parameters": { + "operationId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", + "containerName": "VMAppContainer;Compute;testRG;testSQL", + "fabricName": "Azure", + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testvault" + }, + "responses": { + "200": { + "body": { + "name": "VMAppContainer;Compute;testRG;testSQL", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;testRG;testSQL", + "properties": { + "backupManagementType": "AzureWorkload", + "containerType": "VMAppContainer", + "extendedInfo": { + "hostServerName": "testsql", + "inquiryInfo": { + "errorDetail": { + "code": "Success", + "message": "Not Available", + "recommendations": [ + "Not Available" + ] + }, + "inquiryDetails": [ + { + "type": "sql", + "inquiryValidation": { + "errorDetail": { + "code": "Success", + "message": "Not Available", + "recommendations": [ + "Not Available" + ] + }, + "status": "Success" + }, + "itemCount": 14 + } + ], + "status": "Success" + }, + "nodesList": [] + }, + "friendlyName": "testSQL", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testSQL", + "workloadType": null + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;testRG;testSQL/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;testRG;testSQL/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Retry-After": 60 + } + }, + "204": {} + }, + "operationId": "ProtectionContainerOperationResults_Get", + "title": "Get Azure Storage Protection Container Operation Result" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionContainers_List.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionContainers_List.json new file mode 100644 index 000000000000..b1bb7627c4dd --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionContainers_List.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "$filter": "backupManagementType eq 'AzureWorkload'", + "api-version": "2025-02-01", + "fabricName": "Azure", + "resourceGroupName": "testRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "StorageContainer;Storage;testrg;suchandrtestsa125", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers", + "id": "/subscriptions/172424a4-d65f-421e-a8de-197d98aabeba/resourcegroups/testrg/providers/microsoft.recoveryservices/vaults/suchandr-test-vault-wcus/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;testrg;suchandrtestsa125", + "properties": { + "backupManagementType": "AzureStorage", + "containerType": "StorageContainer", + "friendlyName": "suchandrtestsa125", + "healthStatus": "Healthy", + "protectedItemCount": 2, + "registrationStatus": "Registered", + "sourceResourceId": "/subscriptions/172424a4-d65f-421e-a8de-197d98aabeba/resourceGroups/testrg/providers/Microsoft.Storage/storageAccounts/suchandrtestsa125" + } + } + ] + } + } + }, + "operationId": "BackupProtectionContainers_List", + "title": "List Backup Protection Containers" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionContainers_Register.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionContainers_Register.json new file mode 100644 index 000000000000..95bff22bfaf0 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionContainers_Register.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "StorageContainer;Storage;SwaggerTestRg;swaggertestsa", + "fabricName": "Azure", + "parameters": { + "properties": { + "acquireStorageAccountLock": "Acquire", + "backupManagementType": "AzureStorage", + "containerType": "StorageContainer", + "friendlyName": "swaggertestsa", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/SwaggerTestRg/providers/Microsoft.Storage/storageAccounts/swaggertestsa" + } + }, + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "swaggertestvault" + }, + "responses": { + "200": { + "body": { + "name": "StorageContainer;Storage;SwaggerTestRg;swaggertestsa", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;SwaggerTestRg;swaggertestsa", + "properties": { + "acquireStorageAccountLock": "Acquire", + "backupManagementType": "AzureStorage", + "containerType": "StorageContainer", + "friendlyName": "swaggertestsa", + "healthStatus": "Healthy", + "protectedItemCount": 0, + "registrationStatus": "Registered", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/SwaggerTestRg/providers/Microsoft.Storage/storageAccounts/swaggertestsa" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;SwaggerTestRg;swaggertestsa/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2019-05-13-preview", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;SwaggerTestRg;swaggertestsa/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Retry-After": 60 + } + } + }, + "operationId": "ProtectionContainers_Register", + "title": "RegisterAzure Storage ProtectionContainers" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionPolicies_CreateOrUpdate_Daily.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionPolicies_CreateOrUpdate_Daily.json new file mode 100644 index 000000000000..774e340ce240 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionPolicies_CreateOrUpdate_Daily.json @@ -0,0 +1,182 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "properties": { + "backupManagementType": "AzureStorage", + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 5, + "durationType": "Days" + }, + "retentionTimes": [ + "2021-09-29T08:00:00.000Z" + ] + }, + "monthlySchedule": { + "retentionDuration": { + "count": 60, + "durationType": "Months" + }, + "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": [ + "2021-09-29T08:00:00.000Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday" + ], + "retentionDuration": { + "count": 12, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2021-09-29T08:00:00.000Z" + ] + }, + "yearlySchedule": { + "monthsOfYear": [ + "January" + ], + "retentionDuration": { + "count": 10, + "durationType": "Years" + }, + "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": [ + "2021-09-29T08:00:00.000Z" + ] + } + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": [ + "2021-09-29T08:00:00.000Z" + ] + }, + "timeZone": "UTC", + "workLoadType": "AzureFileShare" + } + }, + "policyName": "dailyPolicy2", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "swaggertestvault" + }, + "responses": { + "200": { + "body": { + "name": "dailyPolicy2", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/dailyPolicy2", + "properties": { + "backupManagementType": "AzureStorage", + "protectedItemsCount": 0, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 5, + "durationType": "Days" + }, + "retentionTimes": [ + "2021-09-29T08:00:00Z" + ] + }, + "monthlySchedule": { + "retentionDuration": { + "count": 60, + "durationType": "Months" + }, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": [ + "2021-09-29T08:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday" + ], + "retentionDuration": { + "count": 12, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2021-09-29T08:00:00Z" + ] + }, + "yearlySchedule": { + "monthsOfYear": [ + "January" + ], + "retentionDuration": { + "count": 10, + "durationType": "Years" + }, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": [ + "2021-09-29T08:00:00Z" + ] + } + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": [ + "2021-09-29T08:00:00Z" + ], + "scheduleWeeklyFrequency": 0 + }, + "timeZone": "UTC" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/dailyPolicy2/operations/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/dailyPolicy2/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", + "Retry-After": 60 + } + } + }, + "operationId": "ProtectionPolicies_CreateOrUpdate", + "title": "Create or Update Daily Azure Storage Protection Policy" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionPolicies_CreateOrUpdate_Hardened.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionPolicies_CreateOrUpdate_Hardened.json new file mode 100644 index 000000000000..767f3fb73bb7 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionPolicies_CreateOrUpdate_Hardened.json @@ -0,0 +1,189 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "properties": { + "backupManagementType": "AzureStorage", + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": [ + "2023-07-18T09:30:00.000Z" + ] + }, + "timeZone": "UTC", + "vaultRetentionPolicy": { + "snapshotRetentionInDays": 5, + "vaultRetention": { + "dailySchedule": { + "retentionDuration": { + "count": 30, + "durationType": "Days" + }, + "retentionTimes": [ + "2023-07-18T09:30:00.000Z" + ] + }, + "monthlySchedule": { + "retentionDuration": { + "count": 60, + "durationType": "Months" + }, + "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": [ + "2023-07-18T09:30:00.000Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday" + ], + "retentionDuration": { + "count": 12, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2023-07-18T09:30:00.000Z" + ] + }, + "yearlySchedule": { + "monthsOfYear": [ + "January" + ], + "retentionDuration": { + "count": 10, + "durationType": "Years" + }, + "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": [ + "2023-07-18T09:30:00.000Z" + ] + } + } + }, + "workLoadType": "AzureFileShare" + } + }, + "policyName": "newPolicyV2", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "swaggertestvault" + }, + "responses": { + "200": { + "body": { + "name": "newPolicyV2", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/newPolicyV2", + "properties": { + "backupManagementType": "AzureStorage", + "protectedItemsCount": 0, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": [ + "2023-07-18T09:30:00.000Z" + ] + }, + "timeZone": "UTC", + "vaultRetentionPolicy": { + "snapshotRetentionInDays": 5, + "vaultRetention": { + "dailySchedule": { + "retentionDuration": { + "count": 30, + "durationType": "Days" + }, + "retentionTimes": [ + "2023-07-18T09:30:00.000Z" + ] + }, + "monthlySchedule": { + "retentionDuration": { + "count": 60, + "durationType": "Months" + }, + "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": [ + "2023-07-18T09:30:00.000Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday" + ], + "retentionDuration": { + "count": 12, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2023-07-18T09:30:00.000Z" + ] + }, + "yearlySchedule": { + "monthsOfYear": [ + "January" + ], + "retentionDuration": { + "count": 10, + "durationType": "Years" + }, + "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": [ + "2023-07-18T09:30:00.000Z" + ] + } + } + } + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/newPolicyV2/operations/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/newPolicyV2/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", + "Retry-After": 60 + } + } + }, + "operationId": "ProtectionPolicies_CreateOrUpdate", + "title": "Create or Update Azure Storage Vault Standard Protection Policy" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionPolicies_CreateOrUpdate_Hourly.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionPolicies_CreateOrUpdate_Hourly.json new file mode 100644 index 000000000000..7e9851f608b7 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/ProtectionPolicies_CreateOrUpdate_Hourly.json @@ -0,0 +1,178 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "properties": { + "backupManagementType": "AzureStorage", + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 5, + "durationType": "Days" + }, + "retentionTimes": null + }, + "monthlySchedule": { + "retentionDuration": { + "count": 60, + "durationType": "Months" + }, + "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": null + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday" + ], + "retentionDuration": { + "count": 12, + "durationType": "Weeks" + }, + "retentionTimes": null + }, + "yearlySchedule": { + "monthsOfYear": [ + "January" + ], + "retentionDuration": { + "count": 10, + "durationType": "Years" + }, + "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": null + } + }, + "schedulePolicy": { + "hourlySchedule": { + "interval": 4, + "scheduleWindowDuration": 12, + "scheduleWindowStartTime": "2021-09-29T08:00:00.000Z" + }, + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Hourly" + }, + "timeZone": "UTC", + "workLoadType": "AzureFileShare" + } + }, + "policyName": "newPolicy2", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "swaggertestvault" + }, + "responses": { + "200": { + "body": { + "name": "newPolicy2", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/newPolicy2", + "properties": { + "backupManagementType": "AzureStorage", + "protectedItemsCount": 0, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 5, + "durationType": "Days" + }, + "retentionTimes": [ + "2021-09-29T20:00:00Z" + ] + }, + "monthlySchedule": { + "retentionDuration": { + "count": 60, + "durationType": "Months" + }, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": [ + "2021-09-29T20:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday" + ], + "retentionDuration": { + "count": 12, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2021-09-29T20:00:00Z" + ] + }, + "yearlySchedule": { + "monthsOfYear": [ + "January" + ], + "retentionDuration": { + "count": 10, + "durationType": "Years" + }, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "First" + ] + }, + "retentionTimes": [ + "2021-09-29T20:00:00Z" + ] + } + }, + "schedulePolicy": { + "hourlySchedule": { + "interval": 4, + "scheduleWindowDuration": 12, + "scheduleWindowStartTime": "2021-09-29T08:00:00Z" + }, + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Hourly", + "scheduleWeeklyFrequency": 0 + }, + "timeZone": "UTC" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/newPolicy2/operations/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/newPolicy2/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", + "Retry-After": 60 + } + } + }, + "operationId": "ProtectionPolicies_CreateOrUpdate", + "title": "Create or Update Hourly Azure Storage Protection Policy" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/SoftDeletedContainers_List.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/SoftDeletedContainers_List.json new file mode 100644 index 000000000000..c355efb0143d --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureStorage/SoftDeletedContainers_List.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "$filter": "backupManagementType eq 'AzureWorkload'", + "api-version": "2025-02-01", + "fabricName": "Azure", + "resourceGroupName": "testRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "StorageContainer;Storage;testrg;suchandrtestsa125", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers", + "id": "/subscriptions/172424a4-d65f-421e-a8de-197d98aabeba/resourcegroups/testrg/providers/microsoft.recoveryservices/vaults/suchandr-test-vault-wcus/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;testrg;suchandrtestsa125", + "properties": { + "backupManagementType": "AzureStorage", + "containerType": "StorageContainer", + "friendlyName": "suchandrtestsa125", + "healthStatus": "Healthy", + "protectedItemCount": 2, + "registrationStatus": "SoftDeleted", + "sourceResourceId": "/subscriptions/172424a4-d65f-421e-a8de-197d98aabeba/resourceGroups/testrg/providers/Microsoft.Storage/storageAccounts/suchandrtestsa125" + } + } + ] + } + } + }, + "operationId": "DeletedProtectionContainers_List", + "title": "List Backup Protection Containers" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/BackupPolicies_List.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/BackupPolicies_List.json new file mode 100644 index 000000000000..348fd6a76280 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/BackupPolicies_List.json @@ -0,0 +1,72 @@ +{ + "parameters": { + "$filter": "backupManagementType eq 'AzureWorkload'", + "api-version": "2025-02-01", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "HourlyLogBackup", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/HourlyLogBackup", + "properties": { + "backupManagementType": "AzureWorkload", + "protectedItemsCount": 0, + "settings": { + "issqlcompression": false, + "timeZone": "UTC" + }, + "subProtectionPolicy": [ + { + "policyType": "Full", + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 30, + "durationType": "Days" + }, + "retentionTimes": [ + "2017-12-05T19:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": [ + "2017-12-05T19:00:00Z" + ], + "scheduleWeeklyFrequency": 0 + } + }, + { + "policyType": "Log", + "retentionPolicy": { + "retentionDuration": { + "count": 30, + "durationType": "Days" + }, + "retentionPolicyType": "SimpleRetentionPolicy" + }, + "schedulePolicy": { + "scheduleFrequencyInMins": 60, + "schedulePolicyType": "LogSchedulePolicy" + } + } + ], + "workLoadType": "SQLDataBase" + } + } + ] + } + } + }, + "operationId": "BackupPolicies_List", + "title": "List protection policies with backupManagementType filter as AzureWorkload" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/BackupProtectionIntent_Delete.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/BackupProtectionIntent_Delete.json new file mode 100644 index 000000000000..78624a4c5985 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/BackupProtectionIntent_Delete.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "fabricName": "Azure", + "intentObjectName": "249D9B07-D2EF-4202-AA64-65F35418564E", + "parameters": {}, + "resourceGroupName": "myRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "myVault" + }, + "responses": { + "204": {} + }, + "operationId": "ProtectionIntent_Delete", + "title": "Delete Protection intent from item" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/BackupProtectionIntent_Get.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/BackupProtectionIntent_Get.json new file mode 100644 index 000000000000..b69d94994f9b --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/BackupProtectionIntent_Get.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "fabricName": "Azure", + "intentObjectName": "249D9B07-D2EF-4202-AA64-65F35418564E", + "parameters": {}, + "resourceGroupName": "myRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "myVault" + }, + "responses": { + "200": { + "body": { + "name": "249D9B07-D2EF-4202-AA64-65F35418564E", + "type": "Microsoft.RecoveryServices/vaults/backupProtectionIntent", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupFabrics/Azure/backupProtectionIntent/249D9B07-D2EF-4202-AA64-65F35418564E", + "properties": { + "backupManagementType": "AzureWorkload", + "itemId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupProtectionContainer/VMAppContainer;Compute;testVmName/backupProtectableItems/SQLInstance;MSSQLSERVER", + "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupPolicies/myPolicy", + "protectionIntentItemType": "AzureWorkloadContainerAutoProtectionIntent" + } + } + } + }, + "operationId": "ProtectionIntent_Get", + "title": "Get ProtectionIntent for an item" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/BackupProtectionIntent_List.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/BackupProtectionIntent_List.json new file mode 100644 index 000000000000..408284c5714e --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/BackupProtectionIntent_List.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": {}, + "resourceGroupName": "myRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "myVault" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "249D9B07-D2EF-4202-AA64-65F35418564E", + "type": "Microsoft.RecoveryServices/vaults/backupProtectionIntent", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupFabrics/Azure/backupProtectionIntent/249D9B07-D2EF-4202-AA64-65F35418564E", + "properties": { + "backupManagementType": "AzureWorkload", + "itemId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupProtectionContainer/VMAppContainer;Compute;testVmName/backupProtectableItems/SQLInstance;MSSQLSERVER", + "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupPolicies/myPolicy", + "protectionIntentItemType": "AzureWorkloadContainerAutoProtectionIntent" + } + } + ] + } + } + }, + "operationId": "BackupProtectionIntent_List", + "title": "List protection intent with backupManagementType filter" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/BackupWorkloadItems_List.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/BackupWorkloadItems_List.json new file mode 100644 index 000000000000..437611b2e9ca --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/BackupWorkloadItems_List.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "$filter": "backupManagementType eq 'AzureWorkload'", + "api-version": "2025-02-01", + "containerName": "VMAppContainer;Compute;bvtdtestag;sqlserver-1", + "fabricName": "Azure", + "resourceGroupName": "testRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "suchandr-seacan-rsv" + }, + "responses": { + "200": { + "body": { + "nextLink": null, + "value": [ + { + "name": "SQLInstance;MSSQLSERVER", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/items", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testRg/providers/Microsoft.RecoveryServices/vaults/suchandr-seacan-rsv/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;bvtdtestag;sqlserver-1/protectableItems/SQLInstance;MSSQLSERVER", + "properties": { + "backupManagementType": "AzureWorkload", + "dataDirectoryPaths": [ + { + "type": "Data", + "path": "F:\\DATA\\" + }, + { + "type": "Log", + "path": "F:\\LOG\\" + } + ], + "friendlyName": "MSSQLSERVER", + "isAutoProtectable": true, + "parentName": "MSSQLSERVER", + "protectionState": "NotProtected", + "serverName": "sqlserver-1.contoso.com", + "subWorkloadItemCount": 3, + "subinquireditemcount": 0, + "workloadItemType": "SQLInstance", + "workloadType": "SQL" + } + } + ] + } + } + }, + "operationId": "BackupWorkloadItems_List", + "title": "List Workload Items in Container" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/ProtectionContainers_Get.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/ProtectionContainers_Get.json new file mode 100644 index 000000000000..8a94811cb913 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/ProtectionContainers_Get.json @@ -0,0 +1,59 @@ +{ + "parameters": { + "$filter": "backupManagementType eq 'AzureWorkload'", + "api-version": "2025-02-01", + "containerName": "VMAppContainer;Compute;testRG;testSQL", + "fabricName": "Azure", + "resourceGroupName": "testRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "200": { + "body": { + "name": "VMAppContainer;Compute;testRG;testSQL", + "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;testRG;testSQL", + "properties": { + "backupManagementType": "AzureWorkload", + "containerType": "VMAppContainer", + "extendedInfo": { + "hostServerName": "testsql", + "inquiryInfo": { + "errorDetail": { + "code": "Success", + "message": "Not Available", + "recommendations": [ + "Not Available" + ] + }, + "inquiryDetails": [ + { + "type": "sql", + "inquiryValidation": { + "errorDetail": { + "code": "Success", + "message": "Not Available", + "recommendations": [ + "Not Available" + ] + }, + "status": "Success" + }, + "itemCount": 14 + } + ], + "status": "Success" + }, + "nodesList": [] + }, + "friendlyName": "testSQL", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testSQL", + "workloadType": null + } + } + } + }, + "operationId": "ProtectionContainers_Get", + "title": "Get Protection Container Details" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/ProtectionContainers_Unregister.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/ProtectionContainers_Unregister.json new file mode 100644 index 000000000000..7d087d52b74a --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/ProtectionContainers_Unregister.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "storagecontainer;Storage;test-rg;teststorage", + "fabricName": "Azure", + "resourceGroupName": "testRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/storagecontainer;Storage;test-rg;teststorage/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/storagecontainer;Storage;test-rg;teststorage/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Retry-After": 60 + } + }, + "204": {} + }, + "operationId": "ProtectionContainers_Unregister", + "title": "Unregister Protection Container" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/ProtectionPolicies_CreateOrUpdate_Complex.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/ProtectionPolicies_CreateOrUpdate_Complex.json new file mode 100644 index 000000000000..430712e9e3a6 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/AzureWorkload/ProtectionPolicies_CreateOrUpdate_Complex.json @@ -0,0 +1,262 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "properties": { + "backupManagementType": "AzureWorkload", + "settings": { + "issqlcompression": false, + "timeZone": "Pacific Standard Time" + }, + "subProtectionPolicy": [ + { + "policyType": "Full", + "retentionPolicy": { + "monthlySchedule": { + "retentionDuration": { + "count": 1, + "durationType": "Months" + }, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "Second" + ] + }, + "retentionTimes": [ + "2018-01-24T10:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday", + "Tuesday" + ], + "retentionDuration": { + "count": 2, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2018-01-24T10:00:00Z" + ] + }, + "yearlySchedule": { + "monthsOfYear": [ + "January", + "June", + "December" + ], + "retentionDuration": { + "count": 1, + "durationType": "Years" + }, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "Last" + ] + }, + "retentionTimes": [ + "2018-01-24T10:00:00Z" + ] + } + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunDays": [ + "Sunday", + "Tuesday" + ], + "scheduleRunFrequency": "Weekly", + "scheduleRunTimes": [ + "2018-01-24T10:00:00Z" + ] + } + }, + { + "policyType": "Differential", + "retentionPolicy": { + "retentionDuration": { + "count": 8, + "durationType": "Days" + }, + "retentionPolicyType": "SimpleRetentionPolicy" + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunDays": [ + "Friday" + ], + "scheduleRunFrequency": "Weekly", + "scheduleRunTimes": [ + "2018-01-24T10:00:00Z" + ] + } + }, + { + "policyType": "Log", + "retentionPolicy": { + "retentionDuration": { + "count": 7, + "durationType": "Days" + }, + "retentionPolicyType": "SimpleRetentionPolicy" + }, + "schedulePolicy": { + "scheduleFrequencyInMins": 60, + "schedulePolicyType": "LogSchedulePolicy" + } + } + ], + "workLoadType": "SQLDataBase" + } + }, + "policyName": "testPolicy1", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "testPolicy1", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", + "properties": { + "backupManagementType": "AzureWorkload", + "protectedItemsCount": 0, + "settings": { + "issqlcompression": false, + "timeZone": "Pacific Standard Time" + }, + "subProtectionPolicy": [ + { + "policyType": "Full", + "retentionPolicy": { + "monthlySchedule": { + "retentionDuration": { + "count": 1, + "durationType": "Months" + }, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "Second" + ] + }, + "retentionTimes": [ + "2018-01-24T10:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday", + "Tuesday" + ], + "retentionDuration": { + "count": 2, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2018-01-24T10:00:00Z" + ] + }, + "yearlySchedule": { + "monthsOfYear": [ + "January", + "June", + "December" + ], + "retentionDuration": { + "count": 1, + "durationType": "Years" + }, + "retentionScheduleFormatType": "Weekly", + "retentionScheduleWeekly": { + "daysOfTheWeek": [ + "Sunday" + ], + "weeksOfTheMonth": [ + "Last" + ] + }, + "retentionTimes": [ + "2018-01-24T10:00:00Z" + ] + } + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunDays": [ + "Sunday", + "Tuesday" + ], + "scheduleRunFrequency": "Weekly", + "scheduleRunTimes": [ + "2018-01-24T10:00:00Z" + ], + "scheduleWeeklyFrequency": 0 + } + }, + { + "policyType": "Differential", + "retentionPolicy": { + "retentionDuration": { + "count": 8, + "durationType": "Days" + }, + "retentionPolicyType": "SimpleRetentionPolicy" + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunDays": [ + "Friday" + ], + "scheduleRunFrequency": "Weekly", + "scheduleRunTimes": [ + "2018-01-24T10:00:00Z" + ], + "scheduleWeeklyFrequency": 0 + } + }, + { + "policyType": "Log", + "retentionPolicy": { + "retentionDuration": { + "count": 7, + "durationType": "Days" + }, + "retentionPolicyType": "SimpleRetentionPolicy" + }, + "schedulePolicy": { + "scheduleFrequencyInMins": 60, + "schedulePolicyType": "LogSchedulePolicy" + } + } + ], + "workLoadType": "SQLDataBase" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1/operations/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", + "Retry-After": 60 + } + } + }, + "operationId": "ProtectionPolicies_CreateOrUpdate", + "title": "Create or Update Full Azure Workload Protection Policy" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/BackupDataMove/BackupDataMoveOperationStatus_Get.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/BackupDataMove/BackupDataMoveOperationStatus_Get.json new file mode 100644 index 000000000000..1590fa63930d --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/BackupDataMove/BackupDataMoveOperationStatus_Get.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "operationId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", + "resourceGroupName": "sourceRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "source-rsv" + }, + "responses": { + "200": { + "body": { + "name": "0f48183b-0a44-4dca-aec1-bba5daab888a", + "endTime": "2020-02-27T11:59:47.5901592Z", + "id": "0f48183b-0a44-4dca-aec1-bba5daab888a", + "startTime": "2020-02-27T11:59:47.5901592Z", + "status": "Succeeded" + } + } + }, + "operationId": "GetOperationStatus", + "title": "Get OperationStatus" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/BackupDataMove/PrepareDataMoveOperationResult_Get.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/BackupDataMove/PrepareDataMoveOperationResult_Get.json new file mode 100644 index 000000000000..bc98a8eadf82 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/BackupDataMove/PrepareDataMoveOperationResult_Get.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "operationId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", + "resourceGroupName": "sourceRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "source-rsv" + }, + "responses": { + "200": { + "body": { + "objectType": "PrepareDataMoveResponse" + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sourceRG/providers/Microsoft.RecoveryServices/vaults/source-rsv/backupStorageConfig/vaultStorageConfig/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2020-07-01-preview", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sourceRG/providers/Microsoft.RecoveryServices/vaults/source-rsv/backupStorageConfig/vaultStorageConfig/operationResult/00000000-0000-0000-0000-000000000000?api-version=2020-07-01-preview", + "Retry-After": 60 + } + } + }, + "operationId": "BMSPrepareDataMoveOperationResult_Get", + "title": "Get operation result for PrepareDataMove" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/BackupDataMove/PrepareDataMove_Post.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/BackupDataMove/PrepareDataMove_Post.json new file mode 100644 index 000000000000..52334bfa2c1e --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/BackupDataMove/PrepareDataMove_Post.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "dataMoveLevel": "Vault", + "targetRegion": "USGov Virginia", + "targetResourceId": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/targetRG/providers/Microsoft.RecoveryServices/vaults/target-rsv" + }, + "resourceGroupName": "sourceRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "source-rsv" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sourceRG/providers/Microsoft.RecoveryServices/vaults/source-rsv/backupStorageConfig/vaultStorageConfig/backupDataMove/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2020-07-01-preview", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sourceRG/providers/Microsoft.RecoveryServices/vaults/source-rsv/backupStorageConfig/vaultStorageConfig/prepareDataMove/operationResult/00000000-0000-0000-0000-000000000000?api-version=2020-07-01-preview", + "Retry-After": 60 + } + } + }, + "operationId": "BMSPrepareDataMove", + "title": "Prepare Data Move" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/BackupDataMove/TriggerDataMove_Post.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/BackupDataMove/TriggerDataMove_Post.json new file mode 100644 index 000000000000..e7d93a476ee0 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/BackupDataMove/TriggerDataMove_Post.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "correlationId": "MTg2OTcyMzM4NzYyMjc1NDY3Nzs1YmUzYmVmNi04YjJiLTRhOTItOTllYi01NTM0MDllYjk2NjE=", + "dataMoveLevel": "Vault", + "sourceRegion": "USGov Iowa", + "sourceResourceId": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/sourceRG/providers/Microsoft.RecoveryServices/vaults/source-rsv" + }, + "resourceGroupName": "targetRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "target-rsv" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sourceRG/providers/Microsoft.RecoveryServices/vaults/source-rsv/backupStorageConfig/vaultStorageConfig/backupDataMove/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2020-07-01-preview", + "Retry-After": 60 + } + } + }, + "operationId": "BMSTriggerDataMove", + "title": "Trigger Data Move" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/BackupResourceEncryptionConfig_Get.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/BackupResourceEncryptionConfig_Get.json new file mode 100644 index 000000000000..2ea56830af2c --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/BackupResourceEncryptionConfig_Get.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "resourceGroupName": "rishgrp", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "rishTestVault" + }, + "responses": { + "200": { + "body": { + "name": "backupResourceEncryptionConfig", + "type": "Microsoft.RecoveryServices/vaults/backupEncryptionConfigs", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rishgrp/providers/Microsoft.RecoveryServicesBVTD2/vaults/rishTestVault/backupEncryptionConfigs/backupResourceEncryptionConfig", + "properties": { + "encryptionAtRestType": "CustomerManaged", + "infrastructureEncryptionState": "Disabled", + "keyUri": "https://gktestkv1.vault.azure.net/keys/Test1/ed2e8cdc7f86477ebf0c6462b504a9ed", + "lastUpdateStatus": "Succeeded", + "subscriptionId": "1a2311d9-66f5-47d3-a9fb-7a37da63934b", + "useSystemAssignedIdentity": false, + "userAssignedIdentity": "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi" + } + }, + "headers": {} + } + }, + "operationId": "BackupResourceEncryptionConfigs_Get", + "title": "Get Vault Encryption Configuration" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/BackupResourceEncryptionConfig_Put.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/BackupResourceEncryptionConfig_Put.json new file mode 100644 index 000000000000..d0e9a89f273d --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/BackupResourceEncryptionConfig_Put.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "properties": { + "encryptionAtRestType": "CustomerManaged", + "infrastructureEncryptionState": "true", + "keyUri": "https://gktestkv1.vault.azure.net/keys/Test1/ed2e8cdc7f86477ebf0c6462b504a9ed", + "subscriptionId": "1a2311d9-66f5-47d3-a9fb-7a37da63934b" + } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "source-rsv" + }, + "responses": { + "200": {} + }, + "operationId": "BackupResourceEncryptionConfigs_Update", + "title": "Update Vault Encryption Configuration" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupProtectedItem_UsageSummary_Get.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupProtectedItem_UsageSummary_Get.json new file mode 100644 index 000000000000..e3acf6ca965c --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupProtectedItem_UsageSummary_Get.json @@ -0,0 +1,64 @@ +{ + "parameters": { + "$filter": "type eq 'BackupProtectedItemCountSummary'", + "api-version": "2025-02-01", + "resourceGroupName": "testRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": { + "localizedValue": "Azure Virtual Machine", + "value": "AzureIaasVM" + }, + "currentValue": 7, + "limit": -1, + "unit": "Count" + }, + { + "name": { + "localizedValue": "Azure Backup Agent", + "value": "MAB" + }, + "currentValue": 3, + "limit": -1, + "unit": "Count" + }, + { + "name": { + "localizedValue": "Azure Backup Server", + "value": "AzureBackupServer" + }, + "currentValue": 1, + "limit": -1, + "unit": "Count" + }, + { + "name": { + "localizedValue": "Azure Storage (Azure Files)", + "value": "AzureStorage" + }, + "currentValue": 2, + "limit": -1, + "unit": "Count" + }, + { + "name": { + "localizedValue": "SQL in Azure VM", + "value": "AzureWorkload" + }, + "currentValue": 2, + "limit": -1, + "unit": "Count" + } + ] + } + } + }, + "operationId": "BackupUsageSummaries_List", + "title": "Get Protected Items Usages Summary" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupProtectionContainers_UsageSummary_Get.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupProtectionContainers_UsageSummary_Get.json new file mode 100644 index 000000000000..8bab69b8a3b2 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupProtectionContainers_UsageSummary_Get.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "$filter": "type eq 'BackupProtectionContainerCountSummary'", + "api-version": "2025-02-01", + "resourceGroupName": "testRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": { + "localizedValue": "Azure Backup Server", + "value": "AzureBackupServer" + }, + "currentValue": 2, + "limit": -1, + "unit": "Count" + }, + { + "name": { + "localizedValue": "Azure Backup Agent", + "value": "MAB" + }, + "currentValue": 3, + "limit": -1, + "unit": "Count" + }, + { + "name": { + "localizedValue": "SQL in Azure VM", + "value": "AzureWorkload" + }, + "currentValue": 1, + "limit": -1, + "unit": "Count" + } + ] + } + } + }, + "operationId": "BackupUsageSummaries_List", + "title": "Get Protected Containers Usages Summary" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupResourceVaultConfigs_Get.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupResourceVaultConfigs_Get.json new file mode 100644 index 000000000000..d778c5e98c09 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupResourceVaultConfigs_Get.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "SwaggerTest" + }, + "responses": { + "200": { + "body": { + "name": "vaultconfig", + "type": "Microsoft.RecoveryServices/vaults/backupconfig", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/SwaggerTest/backupconfig/vaultconfig", + "properties": { + "enhancedSecurityState": "Enabled" + } + } + } + }, + "operationId": "BackupResourceVaultConfigs_Get", + "title": "Get Vault Security Config" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupResourceVaultConfigs_Patch.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupResourceVaultConfigs_Patch.json new file mode 100644 index 000000000000..48873de46df2 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupResourceVaultConfigs_Patch.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "properties": { + "enhancedSecurityState": "Enabled" + } + }, + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "SwaggerTest" + }, + "responses": { + "200": { + "body": { + "name": "vaultconfig", + "type": "Microsoft.RecoveryServices/vaults/backupconfig", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/SwaggerTest/backupconfig/vaultconfig", + "properties": { + "enhancedSecurityState": "Enabled" + } + } + } + }, + "operationId": "BackupResourceVaultConfigs_Update", + "title": "Update Vault Security Config" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupResourceVaultConfigs_Put.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupResourceVaultConfigs_Put.json new file mode 100644 index 000000000000..54214df5ec56 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupResourceVaultConfigs_Put.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "properties": { + "enhancedSecurityState": "Enabled", + "softDeleteFeatureState": "Enabled" + } + }, + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "SwaggerTest" + }, + "responses": { + "200": { + "body": { + "name": "vaultconfig", + "type": "Microsoft.RecoveryServices/vaults/backupconfig", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/SwaggerTest/backupconfig/vaultconfig", + "properties": { + "enhancedSecurityState": "Enabled", + "softDeleteFeatureState": "Enabled" + } + } + } + }, + "operationId": "BackupResourceVaultConfigs_Put", + "title": "Update Vault Security Config" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupSecurityPin_Get.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupSecurityPin_Get.json new file mode 100644 index 000000000000..9af6ae2972e5 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupSecurityPin_Get.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "SwaggerTest" + }, + "responses": { + "200": { + "body": { + "expiryTimeInUtcTicks": 636495150137443100, + "securityPIN": "200432", + "token": "200432" + } + } + }, + "operationId": "SecurityPINs_Get", + "title": "Get Vault Security Pin" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupStorageConfig_Get.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupStorageConfig_Get.json new file mode 100644 index 000000000000..78a8b790b358 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupStorageConfig_Get.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "resourceGroupName": "PythonSDKBackupTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "vaultstorageconfig", + "type": "Microsoft.RecoveryServices/vaults/backupstorageconfig", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupstorageconfig/vaultstorageconfig", + "properties": { + "storageModelType": "GeoRedundant", + "storageType": "GeoRedundant", + "storageTypeState": "Locked" + } + }, + "headers": {} + } + }, + "operationId": "BackupResourceStorageConfigsNonCRR_Get", + "title": "Get Vault Storage Configuration" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupStorageConfig_Patch.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupStorageConfig_Patch.json new file mode 100644 index 000000000000..54b81a03c837 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupStorageConfig_Patch.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "properties": { + "storageType": "LocallyRedundant", + "storageTypeState": "Unlocked" + } + }, + "resourceGroupName": "PythonSDKBackupTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" + }, + "responses": { + "204": {} + }, + "operationId": "BackupResourceStorageConfigsNonCRR_Patch", + "title": "Update Vault Storage Configuration" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupStorageConfig_Put.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupStorageConfig_Put.json new file mode 100644 index 000000000000..df71c0fec289 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/BackupStorageConfig_Put.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "properties": { + "storageType": "LocallyRedundant", + "storageTypeState": "Unlocked" + } + }, + "resourceGroupName": "PythonSDKBackupTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "vaultstorageconfig", + "type": "Microsoft.RecoveryServices/vaults/backupstorageconfig", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupstorageconfig/vaultstorageconfig", + "properties": { + "storageModelType": "LocallyRedundant", + "storageType": "LocallyRedundant", + "storageTypeState": "Unlocked" + } + }, + "headers": {} + } + }, + "operationId": "BackupResourceStorageConfigsNonCRR_Update", + "title": "Update Vault Storage Configuration" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/CancelJobOperationResult.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/CancelJobOperationResult.json new file mode 100644 index 000000000000..b1c0e9898ec2 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/CancelJobOperationResult.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "operationId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", + "jobName": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Retry-After": 60 + } + }, + "204": {} + }, + "operationId": "JobOperationResults_Get", + "title": "Cancel Job Operation Result" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ExportJobsOperationResult.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ExportJobsOperationResult.json new file mode 100644 index 000000000000..3fe7e6faba39 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ExportJobsOperationResult.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "operationId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "headers": {}, + "operation": { + "blobSasKey": "?sv=2014-02-14&sr=b&sig=&st=2017-11-29T07%3A53%3A34Z&se=2017-11-29T08%3A03%3A34Z&sp=r", + "blobUrl": "https://azureblob.blob.core.windows.net/reportcontainer/exportjobsreportc00000000-0000-0000-0000-000000000000", + "objectType": "ExportJobsOperationResultInfo" + } + }, + "headers": {} + }, + "202": { + "body": { + "headers": { + "Location": [ + "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01" + ], + "Retry-After": [ + "60" + ] + }, + "operation": { + "objectType": "ExportJobsOperationResultInfo" + } + }, + "headers": { + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Retry-After": 60 + } + } + }, + "operationId": "ExportJobsOperationResults_Get", + "title": "Export Jobs Operation Results" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/GetJobDetails.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/GetJobDetails.json new file mode 100644 index 000000000000..e79dfef9c725 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/GetJobDetails.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "jobName": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "00000000-0000-0000-0000-000000000000", + "type": "Microsoft.RecoveryServices/vaults/backupJobs", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000", + "properties": { + "activityId": "00000000-0000-0000-0000-000000000000", + "backupManagementType": "AzureIaasVM", + "duration": "PT9.8782791S", + "entityFriendlyName": "testvm", + "extendedInfo": { + "propertyBag": { + "VM Name": "testvm" + }, + "tasksList": [ + { + "duration": "PT0S", + "status": "InProgress", + "taskId": "Take Snapshot" + }, + { + "duration": "PT0S", + "status": "NotStarted", + "taskId": "Transfer data to vault" + } + ] + }, + "jobType": "AzureIaaSVMJob", + "operation": "Backup", + "startTime": "2017-08-03T05:31:07.014604Z", + "status": "InProgress", + "virtualMachineVersion": "Compute" + } + } + } + }, + "operationId": "JobDetails_Get", + "title": "Get Job Details" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ListJobs.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ListJobs.json new file mode 100644 index 000000000000..1550c045dbd9 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ListJobs.json @@ -0,0 +1,51 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "00000000-0000-0000-0000-000000000000", + "type": "Microsoft.RecoveryServices/vaults/backupJobs", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000", + "properties": { + "activityId": "00000000-0000-0000-0000-000000000000", + "backupManagementType": "AzureIaasVM", + "duration": "PT12.4272909S", + "entityFriendlyName": "testvm", + "jobType": "AzureIaaSVMJob", + "operation": "Backup", + "startTime": "2017-08-03T05:31:07.014604Z", + "status": "InProgress", + "virtualMachineVersion": "Compute" + } + }, + { + "name": "00000000-0000-0000-0000-000000000000", + "type": "Microsoft.RecoveryServices/vaults/backupJobs", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000", + "properties": { + "activityId": "00000000-0000-0000-0000-000000000000", + "backupManagementType": "AzureIaasVM", + "duration": "PT31.3066291S", + "endTime": "2017-08-03T05:31:03.7553376Z", + "entityFriendlyName": "testvm", + "jobType": "AzureIaaSVMJob", + "operation": "ConfigureBackup", + "startTime": "2017-08-03T05:30:32.4487085Z", + "status": "Completed", + "virtualMachineVersion": "Compute" + } + } + ] + } + } + }, + "operationId": "BackupJobs_List", + "title": "List All Jobs" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ListJobsWithAllSupportedFilters.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ListJobsWithAllSupportedFilters.json new file mode 100644 index 000000000000..a3efe27e4acf --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ListJobsWithAllSupportedFilters.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "$filter": "startTime eq '2016-01-01 00:00:00 AM' and endTime eq '2017-11-29 00:00:00 AM' and operation eq 'Backup' and backupManagementType eq 'AzureIaasVM' and status eq 'InProgress'", + "api-version": "2025-02-01", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "00000000-0000-0000-0000-000000000000", + "type": "Microsoft.RecoveryServices/vaults/backupJobs", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000", + "properties": { + "activityId": "00000000-0000-0000-0000-000000000000", + "backupManagementType": "AzureIaasVM", + "duration": "PT12.4272909S", + "entityFriendlyName": "testvm", + "jobType": "AzureIaaSVMJob", + "operation": "Backup", + "startTime": "2017-08-03T05:31:07.014604Z", + "status": "InProgress", + "virtualMachineVersion": "Compute" + } + } + ] + } + } + }, + "operationId": "BackupJobs_List", + "title": "List Jobs With Filters" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ListJobsWithStartTimeAndEndTimeFilters.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ListJobsWithStartTimeAndEndTimeFilters.json new file mode 100644 index 000000000000..ffc44d1d8fe7 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ListJobsWithStartTimeAndEndTimeFilters.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "$filter": "startTime eq '2016-01-01 00:00:00 AM' and endTime eq '2017-11-29 00:00:00 AM'", + "api-version": "2025-02-01", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs?api-version=2017-07-01&%24filter=startTime+eq+%272016-01-01+00%3a00%3a00+AM%27+and+endTime+eq+%272017-11-29+00%3a00%3a00+AM%27&%24skiptoken=%3c%3fxml+version%3d%221.0%22+encoding%3d%22utf-16%22%3f%3e%0d%0a%3cContinuationToken%3e%0d%0a++%3cContinuationToken%3e%0d%0a++++%3cVersion%3e2.0%3c%2fVersion%3e%0d%0a++++%3cType%3eTable%3c%2fType%3e%0d%0a++++%3cNextPartitionKey%3e1!28!NzI5MTk0OTM1MDkwNjEwODQzMA--%3c%2fNextPartitionKey%3e%0d%0a++++%3cNextRowKey%3e1!108!am9ic3N0YXJ0dGltZWluZGV4XzBfMjUxODkxNDYzNTI2NjE5Nzg5OF8wXzYwOWZkM2JmLTU4MzctNDFkYi1iMjExLTY1MzliNDNlZjM1OA--%3c%2fNextRowKey%3e%0d%0a++++%3cTargetLocation%3ePrimary%3c%2fTargetLocation%3e%0d%0a++%3c%2fContinuationToken%3e%0d%0a%3c%2fContinuationToken%3e", + "value": [ + { + "name": "00000000-0000-0000-0000-000000000000", + "type": "Microsoft.RecoveryServices/vaults/backupJobs", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000", + "properties": { + "activityId": "00000000-0000-0000-0000-000000000000", + "backupManagementType": "AzureIaasVM", + "duration": "PT12.4272909S", + "entityFriendlyName": "testvm", + "jobType": "AzureIaaSVMJob", + "operation": "Backup", + "startTime": "2017-08-03T05:31:07.014604Z", + "status": "InProgress", + "virtualMachineVersion": "Compute" + } + }, + { + "name": "00000000-0000-0000-0000-000000000000", + "type": "Microsoft.RecoveryServices/vaults/backupJobs", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000", + "properties": { + "activityId": "00000000-0000-0000-0000-000000000000", + "backupManagementType": "AzureIaasVM", + "duration": "PT31.3066291S", + "endTime": "2017-08-03T05:31:03.7553376Z", + "entityFriendlyName": "testvm", + "jobType": "AzureIaaSVMJob", + "operation": "ConfigureBackup", + "startTime": "2017-08-03T05:30:32.4487085Z", + "status": "Completed", + "virtualMachineVersion": "Compute" + } + } + ] + } + } + }, + "operationId": "BackupJobs_List", + "title": "List Jobs With Time Filter" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ProtectedItem_Delete.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ProtectedItem_Delete.json new file mode 100644 index 000000000000..1f806b98da05 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ProtectedItem_Delete.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "iaasvmcontainer;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1", + "fabricName": "Azure", + "protectedItemName": "vm;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1", + "resourceGroupName": "PythonSDKBackupTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupOperations/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupOperationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Retry-After": 60 + } + }, + "204": {} + }, + "operationId": "ProtectedItems_Delete", + "title": "Delete Protection from Azure Virtual Machine" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ProtectedItem_Delete_OperationResult.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ProtectedItem_Delete_OperationResult.json new file mode 100644 index 000000000000..3331a9a1abb6 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ProtectedItem_Delete_OperationResult.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "operationId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", + "resourceGroupName": "PythonSDKBackupTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupOperations/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupOperationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Retry-After": 60 + } + }, + "204": {} + }, + "operationId": "BackupOperationResults_Get", + "title": "Get Result for Protected Item Delete Operation" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ProtectedItem_Delete_OperationStatus.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ProtectedItem_Delete_OperationStatus.json new file mode 100644 index 000000000000..8b112be578ea --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/ProtectedItem_Delete_OperationStatus.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "operationId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", + "resourceGroupName": "PythonSDKBackupTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" + }, + "responses": { + "200": { + "body": { + "name": "00000000-0000-0000-0000-000000000000", + "endTime": "0001-01-01T00:00:00.00000Z", + "id": "00000000-0000-0000-0000-000000000000", + "startTime": "2017-08-03T06:52:53.886027Z", + "status": "InProgress" + }, + "headers": {} + } + }, + "operationId": "BackupOperationStatuses_Get", + "title": "Get Protected Item Delete Operation Status" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/RefreshContainers.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/RefreshContainers.json new file mode 100644 index 000000000000..afade7ea2ac6 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/RefreshContainers.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "fabricName": "Azure", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "202": { + "headers": { + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Retry-After": 60 + } + } + }, + "operationId": "ProtectionContainers_Refresh", + "title": "Trigger Azure Vm Discovery" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/RefreshContainers_OperationResults.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/RefreshContainers_OperationResults.json new file mode 100644 index 000000000000..02940118da47 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/RefreshContainers_OperationResults.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "operationId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", + "fabricName": "Azure", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "202": { + "headers": { + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Retry-After": 60 + } + }, + "204": {} + }, + "operationId": "ProtectionContainerRefreshOperationResults_Get", + "title": "Azure Vm Discovery Operation Result" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/TriggerBackup_Post.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/TriggerBackup_Post.json new file mode 100644 index 000000000000..47a983e612ea --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/TriggerBackup_Post.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;testrg;v1win2012r", + "fabricName": "Azure", + "parameters": { + "properties": { + "objectType": "IaasVMBackupRequest" + } + }, + "protectedItemName": "VM;iaasvmcontainerv2;testrg;v1win2012r", + "resourceGroupName": "linuxRsVaultRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "linuxRsVault" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/linuxRsVaultRG/providers/Microsoft.RecoveryServices/vaults/linuxRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainer;testrg;v1win2012r/protectedItems/VM;iaasvmcontainer;testrg;v1win2012r/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/linuxRsVaultRG/providers/Microsoft.RecoveryServices/vaults/linuxRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainer;testrg;v1win2012r/protectedItems/VM;iaasvmcontainer;testrg;v1win2012r/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Retry-After": 60 + } + } + }, + "operationId": "Backups_Trigger", + "title": "Trigger Backup" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/TriggerCancelJob.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/TriggerCancelJob.json new file mode 100644 index 000000000000..ecb1cc6037d5 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/TriggerCancelJob.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "jobName": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Retry-After": 60 + } + } + }, + "operationId": "JobCancellations_Trigger", + "title": "Cancel Job" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/TriggerExportJobs.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/TriggerExportJobs.json new file mode 100644 index 000000000000..421ad5ba8d2b --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Common/TriggerExportJobs.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" + }, + "responses": { + "202": { + "headers": { + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Retry-After": 60 + } + } + }, + "operationId": "Jobs_Export", + "title": "Export Jobs" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Dpm/BackupEngines_Get.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Dpm/BackupEngines_Get.json new file mode 100644 index 000000000000..a3204403d6af --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Dpm/BackupEngines_Get.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "backupEngineName": "testServer", + "resourceGroupName": "testRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "200": { + "body": { + "name": "testServer", + "type": "Microsoft.RecoveryServices/vaults/backupEngines", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupEngines/testServer", + "properties": { + "azureBackupAgentVersion": "2.0.9532.0", + "backupEngineState": "Active", + "backupEngineType": "DpmBackupEngine", + "dpmVersion": "5.1.348.0", + "extendedInfo": { + "availableDiskSpace": 50, + "diskCount": 5, + "protectedItemsCount": 35, + "protectedServersCount": 21, + "usedDiskSpace": 20 + }, + "friendlyName": "testServer", + "isAzureBackupAgentUpgradeAvailable": false, + "isDpmUpgradeAvailable": false, + "registrationStatus": "Registered" + } + } + } + }, + "operationId": "BackupEngines_Get", + "title": "Get Dpm/AzureBackupServer/Lajolla Backup Engine Details" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Dpm/BackupEngines_List.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Dpm/BackupEngines_List.json new file mode 100644 index 000000000000..f7572ca255e9 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/Dpm/BackupEngines_List.json @@ -0,0 +1,62 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "resourceGroupName": "testRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "testServer1", + "type": "Microsoft.RecoveryServices/vaults/backupEngines", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupEngines/testServer1", + "properties": { + "azureBackupAgentVersion": "2.0.9532.0", + "backupEngineState": "Active", + "backupEngineType": "DpmBackupEngine", + "dpmVersion": "5.1.348.0", + "extendedInfo": { + "availableDiskSpace": 50, + "diskCount": 5, + "protectedItemsCount": 35, + "protectedServersCount": 21, + "usedDiskSpace": 20 + }, + "friendlyName": "testServer1", + "isAzureBackupAgentUpgradeAvailable": false, + "isDpmUpgradeAvailable": false, + "registrationStatus": "Registered" + } + }, + { + "name": "testServer5", + "type": "Microsoft.RecoveryServices/vaults/backupEngines", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupEngines/testServer5", + "properties": { + "azureBackupAgentVersion": "2.0.9530.0", + "backupEngineState": "Active", + "backupEngineType": "DpmBackupEngine", + "dpmVersion": "5.1.348.0", + "extendedInfo": { + "availableDiskSpace": 50, + "diskCount": 5, + "protectedItemsCount": 35, + "protectedServersCount": 21, + "usedDiskSpace": 20 + }, + "friendlyName": "testServer5", + "isAzureBackupAgentUpgradeAvailable": false, + "isDpmUpgradeAvailable": false, + "registrationStatus": "Registered" + } + } + ] + } + } + }, + "operationId": "BackupEngines_List", + "title": "List Dpm/AzureBackupServer/Lajolla Backup Engines" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/ListOperations.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/ListOperations.json new file mode 100644 index 000000000000..1f53be2b8522 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/ListOperations.json @@ -0,0 +1,465 @@ +{ + "parameters": { + "api-version": "2025-02-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "microsoft.recoveryservices/vaults/usages/read", + "display": { + "description": "Returns usage details for a Recovery Services Vault.", + "operation": "Recovery Services Vault usage details.", + "provider": "microsoft.recoveryservices", + "resource": "Vault Usage" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupUsageSummaries/read", + "display": { + "description": "Returns summaries for Protected Items and Protected Servers for a Recovery Services .", + "operation": "Recovery Services Protected Items and Protected Servers usage summaries details.", + "provider": "microsoft.recoveryservices", + "resource": "Backup Usages Summaries" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/storageConfig/read", + "display": { + "description": "Returns Storage Configuration for Recovery Services Vault.", + "operation": "Get Resource Storage Config", + "provider": "microsoft.recoveryservices", + "resource": "Vault Storage Config" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/storageConfig/write", + "display": { + "description": "Updates Storage Configuration for Recovery Services Vault.", + "operation": "Write Resource Storage Config", + "provider": "microsoft.recoveryservices", + "resource": "Vault Storage Config" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupconfig/vaultconfig/read", + "display": { + "description": "Returns Configuration for Recovery Services Vault.", + "operation": "Get Resource Config", + "provider": "microsoft.recoveryservices", + "resource": "Vault Config" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupconfig/vaultconfig/write", + "display": { + "description": "Updates Configuration for Recovery Services Vault.", + "operation": "Update Resource Config", + "provider": "microsoft.recoveryservices", + "resource": "Vault Config" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/tokenInfo/read", + "display": { + "description": "Returns token information for Recovery Services Vault.", + "operation": "Get Vault Token Info", + "provider": "microsoft.recoveryservices", + "resource": "Token Info" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupSecurityPIN/read", + "display": { + "description": "Returns Security PIN Information for Recovery Services Vault.", + "operation": "Get Security PIN Info", + "provider": "microsoft.recoveryservices", + "resource": "SecurityPINInfo" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupManagementMetaData/read", + "display": { + "description": "Returns Backup Management Metadata for Recovery Services Vault.", + "operation": "Get Backup Management Metadata", + "provider": "microsoft.recoveryservices", + "resource": "Backup Management Metadata" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupOperationResults/read", + "display": { + "description": "Returns Backup Operation Result for Recovery Services Vault.", + "operation": "Get Backup Operation Result", + "provider": "microsoft.recoveryservices", + "resource": "Backup Operation Results" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupOperations/read", + "display": { + "description": "Returns Backup Operation Status for Recovery Services Vault.", + "operation": "Get Backup Operation Status", + "provider": "microsoft.recoveryservices", + "resource": "Backup Operation Status" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupJobs/read", + "display": { + "description": "Returns all Job Objects", + "operation": "Get Jobs", + "provider": "microsoft.recoveryservices", + "resource": "Backup Jobs" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupJobs/cancel/action", + "display": { + "description": "Cancel the Job", + "operation": "Cancel Jobs", + "provider": "microsoft.recoveryservices", + "resource": "Backup Jobs" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupJobsExport/action", + "display": { + "description": "Export Jobs", + "operation": "Export Jobs", + "provider": "microsoft.recoveryservices", + "resource": "Export Backup Jobs" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupJobs/operationResults/read", + "display": { + "description": "Returns the Result of Job Operation.", + "operation": "Get Job Operation Result", + "provider": "microsoft.recoveryservices", + "resource": "Backup Jobs Operation Results" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupJobsExport/operationResults/read", + "display": { + "description": "Returns the Result of Export Job Operation.", + "operation": "Get Export Job Operation Result", + "provider": "microsoft.recoveryservices", + "resource": "Export Backup Jobs Operation Results" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/read", + "display": { + "description": "Get Recovery Points for Protected Items.", + "operation": "Get Recovery Points", + "provider": "microsoft.recoveryservices", + "resource": "Recovery Points" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/restore/action", + "display": { + "description": "Restore Recovery Points for Protected Items.", + "operation": "Restore Recovery Points", + "provider": "microsoft.recoveryservices", + "resource": "Recovery Points" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/provisionInstantItemRecovery/action", + "display": { + "description": "Provision Instant Item Recovery for Protected Item", + "operation": "Provision Instant Item Recovery for Protected Item", + "provider": "microsoft.recoveryservices", + "resource": "Recovery Points" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/revokeInstantItemRecovery/action", + "display": { + "description": "Revoke Instant Item Recovery for Protected Item", + "operation": "Revoke Instant Item Recovery for Protected Item", + "provider": "microsoft.recoveryservices", + "resource": "Recovery Points" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupPolicies/read", + "display": { + "description": "Returns all Protection Policies", + "operation": "Get Protection Policy", + "provider": "microsoft.recoveryservices", + "resource": "Backup Policies" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupPolicies/write", + "display": { + "description": "Creates Protection Policy", + "operation": "Create Protection Policy", + "provider": "microsoft.recoveryservices", + "resource": "Backup Policies" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupPolicies/delete", + "display": { + "description": "Delete a Protection Policy", + "operation": "Delete Protection Policy", + "provider": "microsoft.recoveryservices", + "resource": "Backup Policies" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupPolicies/operationResults/read", + "display": { + "description": "Get Results of Policy Operation.", + "operation": "Get Policy Operation Results", + "provider": "microsoft.recoveryservices", + "resource": "Backup Policy Operation Results" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupPolicies/operationsStatus/read", + "display": { + "description": "Get Status of Policy Operation.", + "operation": "Get Policy Operation Status", + "provider": "microsoft.recoveryservices", + "resource": "Backup Policy Operation Status" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/read", + "display": { + "description": "Returns object details of the Protected Item", + "operation": "Get Protected Item Details", + "provider": "microsoft.recoveryservices", + "resource": "Protected Items" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupProtectedItems/read", + "display": { + "description": "Returns the list of all Protected Items.", + "operation": "Get All Protected Items", + "provider": "microsoft.recoveryservices", + "resource": "Protected Items" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/write", + "display": { + "description": "Create a backup Protected Item", + "operation": "Create Backup Protected Item", + "provider": "microsoft.recoveryservices", + "resource": "Protected Items" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/delete", + "display": { + "description": "Deletes Protected Item", + "operation": "Delete Protected Items", + "provider": "microsoft.recoveryservices", + "resource": "Protected Items" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/operationResults/read", + "display": { + "description": "Gets Result of Operation Performed on Protected Items.", + "operation": "Get Protected Items Operation Results", + "provider": "microsoft.recoveryservices", + "resource": "Protected Item Operation Results" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/operationsStatus/read", + "display": { + "description": "Returns the status of Operation performed on Protected Items.", + "operation": "Get Protected Items operation status", + "provider": "microsoft.recoveryservices", + "resource": "Protected Item Operation Status" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/backup/action", + "display": { + "description": "Performs Backup for Protected Item.", + "operation": "Backup Protected Item", + "provider": "microsoft.recoveryservices", + "resource": "Protected Items" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupProtectableItems/read", + "display": { + "description": "Returns list of all Protectable Items.", + "operation": "Get Protectable Items", + "provider": "microsoft.recoveryservices", + "resource": "Backup Protectable Items" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/refreshContainers/read", + "display": { + "description": "Refreshes the container list", + "operation": "Refresh container", + "provider": "microsoft.recoveryservices", + "resource": "Refresh Containers" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/operationResults/read", + "display": { + "description": "Returns status of the operation", + "operation": "Get Operation Results", + "provider": "microsoft.recoveryservices", + "resource": "Refresh Containers Operation Results" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupProtectionContainers/read", + "display": { + "description": "Returns all containers belonging to the subscription", + "operation": "Get Containers In Subscription", + "provider": "microsoft.recoveryservices", + "resource": "Backup Protection Containers" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/read", + "display": { + "description": "Returns all registered containers", + "operation": "Get Registered Container", + "provider": "microsoft.recoveryservices", + "resource": "Protection Containers" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/operationResults/read", + "display": { + "description": "Gets result of Operation performed on Protection Container.", + "operation": "Get Container Operation Results", + "provider": "microsoft.recoveryservices", + "resource": "Protection Containers Operation Results" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupEngines", + "display": { + "description": "Returns all the backup management servers registered with vault.", + "operation": "List of backup management servers.", + "provider": "microsoft.recoveryservices", + "resource": "Backup Engines" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupStatus", + "display": { + "description": "Check Backup Status for Recovery Services Vaults", + "operation": "Check Backup Status for Vault", + "provider": "microsoft.recoveryservices", + "resource": "Backup Status" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupPreValidateProtection", + "display": { + "description": "", + "operation": "Pre Validate Enable Protection", + "provider": "microsoft.recoveryservices", + "resource": "PreValidate Protection" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupValidateFeatures", + "display": { + "description": "Validate Features", + "operation": "Validate Features", + "provider": "microsoft.recoveryservices", + "resource": "Validate Features" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/backupProtectionIntent/write", + "display": { + "description": "Create a backup Protection Intent", + "operation": "Create backup Protection Intent", + "provider": "microsoft.recoveryservices", + "resource": "Protection Intent" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/{fabricName}/protectionContainers/{containerName}/items/read", + "display": { + "description": "Get all items in a container", + "operation": "Get all items in a container", + "provider": "microsoft.recoveryservices", + "resource": "Workload Items" + }, + "origin": "user" + }, + { + "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/inquire/action", + "display": { + "description": "Get all items in a container", + "operation": "Get all items in a container", + "provider": "microsoft.recoveryservices", + "resource": "Protection Containers Inquire" + }, + "origin": "user" + } + ] + } + } + }, + "operationId": "Operations_List", + "title": "ListOperations" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/PrivateEndpointConnection/DeletePrivateEndpointConnection.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/PrivateEndpointConnection/DeletePrivateEndpointConnection.json new file mode 100644 index 000000000000..20518800ae63 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/PrivateEndpointConnection/DeletePrivateEndpointConnection.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "privateEndpointConnectionName": "gaallatestpe2.5704c932-249a-490b-a142-1396838cd3b", + "resourceGroupName": "gaallaRG", + "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", + "vaultName": "gaallavaultbvtd2msi" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6c48fa17-39c7-45f1-90ac-47a587128ace/resourceGroups/backupadminrg/providers/Microsoft.RecoveryServices/Vaults/demo-pevault-2/privateEndpointConnections/autoapprovalpeecy4.3679789459502941542.backup.5ede856d-d9f0-461e-a15b-370c84525817/operationsStatus/2908a25d-8036-48d2-bdcc-fdce26b9771f?api-versi", + "Retry-After": "60" + } + }, + "204": {} + }, + "operationId": "PrivateEndpointConnection_Delete", + "title": "Delete PrivateEndpointConnection" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/PrivateEndpointConnection/GetPrivateEndpointConnection.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/PrivateEndpointConnection/GetPrivateEndpointConnection.json new file mode 100644 index 000000000000..8b0e81f7b22a --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/PrivateEndpointConnection/GetPrivateEndpointConnection.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "privateEndpointConnectionName": "gaallatestpe2.5704c932-249a-490b-a142-1396838cd3b", + "resourceGroupName": "gaallaRG", + "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", + "vaultName": "gaallavaultbvtd2msi" + }, + "responses": { + "200": { + "body": { + "name": "gaallatestpe1.3592346090307038890.backup.5704c932-249a-490b-a142-1396838cd3b", + "type": "Microsoft.RecoveryServices/vaults/privateEndpointConnections", + "id": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/gaallaRG/providers/Microsoft.RecoveryServicesBVTD2/vaults/gaallavaultbvtd2msi/privateEndpointConnections/gaallatestpe3.3592346090307038890.backup.5704c932-249a-490b-a142-1396838cd3b", + "properties": { + "groupIds": [ + "AzureBackup_secondary" + ], + "privateEndpoint": { + "id": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/gaallaRG/providers/Microsoft.Network/privateEndpoints/gaallatestpe3" + }, + "privateLinkServiceConnectionState": { + "description": "Approved by johndoe@company.com", + "status": "Approved" + }, + "provisioningState": "Pending" + } + } + } + }, + "operationId": "PrivateEndpointConnection_Get", + "title": "Get PrivateEndpointConnection" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/PrivateEndpointConnection/GetPrivateEndpointConnectionOperationStatus.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/PrivateEndpointConnection/GetPrivateEndpointConnectionOperationStatus.json new file mode 100644 index 000000000000..cc55e5967574 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/PrivateEndpointConnection/GetPrivateEndpointConnectionOperationStatus.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "operationId": "0f48183b-0a44-4dca-aec1-bba5daab888a", + "api-version": "2025-02-01", + "privateEndpointConnectionName": "gaallatestpe2.5704c932-249a-490b-a142-1396838cd3b", + "resourceGroupName": "gaallaRG", + "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", + "vaultName": "gaallavaultbvtd2msi" + }, + "responses": { + "200": { + "body": { + "name": "0f48183b-0a44-4dca-aec1-bba5daab888a", + "endTime": "2020-02-27T11:59:47.5901592Z", + "id": "0f48183b-0a44-4dca-aec1-bba5daab888a", + "startTime": "2020-02-27T11:59:47.5901592Z", + "status": "Succeeded" + } + } + }, + "operationId": "PrivateEndpoint_GetOperationStatus", + "title": "Get OperationStatus" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/PrivateEndpointConnection/PutPrivateEndpointConnection.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/PrivateEndpointConnection/PutPrivateEndpointConnection.json new file mode 100644 index 000000000000..fcf948014e48 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/PrivateEndpointConnection/PutPrivateEndpointConnection.json @@ -0,0 +1,72 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "properties": { + "groupIds": [ + "AzureBackup_secondary" + ], + "privateEndpoint": { + "id": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/gaallaRG/providers/Microsoft.Network/privateEndpoints/gaallatestpe3" + }, + "privateLinkServiceConnectionState": { + "description": "Approved by johndoe@company.com", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + }, + "privateEndpointConnectionName": "gaallatestpe2.5704c932-249a-490b-a142-1396838cd3b", + "resourceGroupName": "gaallaRG", + "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", + "vaultName": "gaallavaultbvtd2msi" + }, + "responses": { + "200": { + "body": { + "name": "gaallatestpe1.3592346090307038890.backup.5704c932-249a-490b-a142-1396838cd3b", + "type": "Microsoft.RecoveryServices/vaults/privateEndpointConnections", + "id": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/gaallaRG/providers/Microsoft.RecoveryServicesBVTD2/vaults/gaallavaultbvtd2msi/privateEndpointConnections/gaallatestpe3.3592346090307038890.backup.5704c932-249a-490b-a142-1396838cd3b", + "properties": { + "groupIds": [ + "AzureBackup_secondary" + ], + "privateEndpoint": { + "id": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/gaallaRG/providers/Microsoft.Network/privateEndpoints/gaallatestpe3" + }, + "privateLinkServiceConnectionState": { + "description": "Approved by johndoe@company.com", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + }, + "201": { + "body": { + "name": "gaallatestpe1.3592346090307038890.backup.5704c932-249a-490b-a142-1396838cd3b", + "type": "Microsoft.RecoveryServices/vaults/privateEndpointConnections", + "id": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/gaallaRG/providers/Microsoft.RecoveryServicesBVTD2/vaults/gaallavaultbvtd2msi/privateEndpointConnections/gaallatestpe3.3592346090307038890.backup.5704c932-249a-490b-a142-1396838cd3b", + "properties": { + "groupIds": [ + "AzureBackup_secondary" + ], + "privateEndpoint": { + "id": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/gaallaRG/providers/Microsoft.Network/privateEndpoints/gaallatestpe3" + }, + "privateLinkServiceConnectionState": { + "description": "Approved by johndoe@company.com", + "status": "Approved" + }, + "provisioningState": "Pending" + } + }, + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6c48fa17-39c7-45f1-90ac-47a587128ace/resourceGroups/backupadminrg/providers/Microsoft.RecoveryServices/Vaults/demo-pevault-2/privateEndpointConnections/autoapprovalpeecy4.3679789459502941542.backup.5ede856d-d9f0-461e-a15b-370c84525817/operationsStatus/2908a25d-8036-48d2-bdcc-fdce26b9771f?api-versi", + "Retry-After": "60" + } + } + }, + "operationId": "PrivateEndpointConnection_Put", + "title": "Update PrivateEndpointConnection" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/ResourceGuardProxyCRUD/DeleteResourceGuardProxy.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/ResourceGuardProxyCRUD/DeleteResourceGuardProxy.json new file mode 100644 index 000000000000..7f8bf91d3028 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/ResourceGuardProxyCRUD/DeleteResourceGuardProxy.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "resourceGroupName": "SampleResourceGroup", + "resourceGuardProxyName": "swaggerExample", + "subscriptionId": "0b352192-dcac-4cc7-992e-a96190ccc68c", + "vaultName": "sampleVault" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "ResourceGuardProxy_Delete", + "title": "Delete ResourceGuardProxy" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/ResourceGuardProxyCRUD/GetResourceGuardProxy.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/ResourceGuardProxyCRUD/GetResourceGuardProxy.json new file mode 100644 index 000000000000..7f0c2e1fe699 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/ResourceGuardProxyCRUD/GetResourceGuardProxy.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "resourceGroupName": "SampleResourceGroup", + "resourceGuardProxyName": "swaggerExample", + "subscriptionId": "0b352192-dcac-4cc7-992e-a96190ccc68c", + "vaultName": "sampleVault" + }, + "responses": { + "200": { + "body": { + "name": "swaggerExample", + "type": "Microsoft.RecoveryServices/vaults/backupResourceGuardProxies", + "id": "/backupmanagement/resources/sampleVault/backupResourceGuardProxies/swaggerExample", + "properties": { + "description": "Please take JIT access before performing any of the critical operation", + "lastUpdatedTime": "2021-02-11T12:20:47.8210031Z", + "resourceGuardOperationDetails": [ + { + "defaultResourceRequest": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/deleteResourceGuardProxyRequests/default", + "vaultCriticalOperation": "Microsoft.DataProtection/resourceGuards/deleteResourceGuardProxyRequests" + }, + { + "defaultResourceRequest": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/resourceguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/disableSoftDeleteRequests/default", + "vaultCriticalOperation": "Microsoft.DataProtection/resourceGuards/disableSoftDeleteRequests" + } + ], + "resourceGuardResourceId": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew" + } + } + } + }, + "operationId": "ResourceGuardProxy_Get", + "title": "Get ResourceGuardProxy" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/ResourceGuardProxyCRUD/ListResourceGuardProxy.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/ResourceGuardProxyCRUD/ListResourceGuardProxy.json new file mode 100644 index 000000000000..aee2e865e06f --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/ResourceGuardProxyCRUD/ListResourceGuardProxy.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "resourceGroupName": "SampleResourceGroup", + "subscriptionId": "0b352192-dcac-4cc7-992e-a96190ccc68c", + "vaultName": "sampleVault" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "swaggerExample", + "type": "Microsoft.RecoveryServices/vaults/backupResourceGuardProxies", + "id": "/backupmanagement/resources/sampleVault/backupResourceGuardProxies/swaggerExample", + "properties": { + "description": "Please take JIT access before performing any of the critical operation", + "lastUpdatedTime": "2021-02-11T12:20:47.8210031Z", + "resourceGuardOperationDetails": [ + { + "defaultResourceRequest": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/deleteResourceGuardProxyRequests/default", + "vaultCriticalOperation": "Microsoft.DataProtection/resourceGuards/deleteResourceGuardProxyRequests" + }, + { + "defaultResourceRequest": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/disableSoftDeleteRequests/default", + "vaultCriticalOperation": "Microsoft.DataProtection/resourceGuards/disableSoftDeleteRequests" + } + ], + "resourceGuardResourceId": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew" + } + } + ] + } + } + }, + "operationId": "ResourceGuardProxies_Get", + "title": "Get VaultGuardProxies" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/ResourceGuardProxyCRUD/PutResourceGuardProxy.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/ResourceGuardProxyCRUD/PutResourceGuardProxy.json new file mode 100644 index 000000000000..d3778a335420 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/ResourceGuardProxyCRUD/PutResourceGuardProxy.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "properties": { + "resourceGuardResourceId": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew" + } + }, + "resourceGroupName": "SampleResourceGroup", + "resourceGuardProxyName": "swaggerExample", + "subscriptionId": "0b352192-dcac-4cc7-992e-a96190ccc68c", + "vaultName": "sampleVault" + }, + "responses": { + "200": { + "body": { + "name": "swaggerExample", + "type": "Microsoft.RecoveryServices/vaults/backupResourceGuardProxies", + "id": "/backupmanagement/resources/sampleVault/backupResourceGuardProxies/swaggerExample", + "properties": { + "description": "Please take JIT access before performing any of the critical operation", + "lastUpdatedTime": "2021-02-11T12:20:47.8210031Z", + "resourceGuardOperationDetails": [ + { + "defaultResourceRequest": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/deleteResourceGuardProxyRequests/default", + "vaultCriticalOperation": "Microsoft.DataProtection/resourceGuards/deleteResourceGuardProxyRequests" + }, + { + "defaultResourceRequest": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/disableSoftDeleteRequests/default", + "vaultCriticalOperation": "Microsoft.DataProtection/resourceGuards/disableSoftDeleteRequests" + } + ], + "resourceGuardResourceId": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew" + } + } + } + }, + "operationId": "ResourceGuardProxy_Put", + "title": "Create ResourceGuardProxy" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/ResourceGuardProxyCRUD/UnlockDeleteResourceGuardProxy.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/ResourceGuardProxyCRUD/UnlockDeleteResourceGuardProxy.json new file mode 100644 index 000000000000..9a1d71096bdf --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/ResourceGuardProxyCRUD/UnlockDeleteResourceGuardProxy.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "resourceGuardOperationRequests": [ + "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/deleteProtectedItemRequests/default" + ], + "resourceToBeDeleted": "/subscriptions/62b829ee-7936-40c9-a1c9-47a93f9f3965/resourceGroups/gaallarg/providers/Microsoft.RecoveryServices/vaults/MercuryCrrVault/backupFabrics/Azure/protectionContainers/VMAppContainer;compute;crrtestrg;crrtestvm/protectedItems/SQLDataBase;mssqlserver;testdb" + }, + "resourceGroupName": "SampleResourceGroup", + "resourceGuardProxyName": "swaggerExample", + "subscriptionId": "0b352192-dcac-4cc7-992e-a96190ccc68c", + "vaultName": "sampleVault" + }, + "responses": { + "200": { + "body": { + "unlockDeleteExpiryTime": "2021-02-11T13:12:27.7870742Z" + } + } + }, + "operationId": "ResourceGuardProxy_UnlockDelete", + "title": "UnlockDelete ResourceGuardProxy" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TieringCost/FetchTieringCostForPolicy.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TieringCost/FetchTieringCostForPolicy.json new file mode 100644 index 000000000000..c58167f48afb --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TieringCost/FetchTieringCostForPolicy.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "objectType": "FetchTieringCostSavingsInfoForPolicyRequest", + "policyName": "monthly", + "sourceTierType": "HardenedRP", + "targetTierType": "ArchivedRP" + }, + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "200": { + "body": { + "objectType": "TieringCostSavingInfo", + "retailSourceTierCostPerGBPerMonth": 0.02, + "retailTargetTierCostPerGBPerMonth": 0.003, + "sourceTierSizeReductionInBytes": 1204000, + "targetTierSizeIncreaseInBytes": 1892 + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", + "Retry-After": 60 + } + } + }, + "operationId": "FetchTieringCost_Post", + "title": "Get the tiering savings cost info for policy" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TieringCost/FetchTieringCostForProtectedItem.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TieringCost/FetchTieringCostForProtectedItem.json new file mode 100644 index 000000000000..94927d2bb1ac --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TieringCost/FetchTieringCostForProtectedItem.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "objectType": "FetchTieringCostSavingsInfoForProtectedItemRequest", + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "sourceTierType": "HardenedRP", + "targetTierType": "ArchivedRP" + }, + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "200": { + "body": { + "objectType": "TieringCostSavingInfo", + "retailSourceTierCostPerGBPerMonth": 0.02, + "retailTargetTierCostPerGBPerMonth": 0.003, + "sourceTierSizeReductionInBytes": 1204000, + "targetTierSizeIncreaseInBytes": 1892 + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", + "Retry-After": 60 + } + } + }, + "operationId": "FetchTieringCost_Post", + "title": "Get the tiering savings cost info for protected item" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TieringCost/FetchTieringCostForRehydrate.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TieringCost/FetchTieringCostForRehydrate.json new file mode 100644 index 000000000000..d3fc32d1f5f9 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TieringCost/FetchTieringCostForRehydrate.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "objectType": "FetchTieringCostInfoForRehydrationRequest", + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "recoveryPointId": "1222343434", + "rehydrationPriority": "High", + "sourceTierType": "ArchivedRP", + "targetTierType": "HardenedRP" + }, + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "200": { + "body": { + "objectType": "TieringCostRehydrationInfo", + "rehydrationSizeInBytes": 1204000, + "retailRehydrationCostPerGBPerMonth": 0.02 + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", + "Retry-After": 60 + } + } + }, + "operationId": "FetchTieringCost_Post", + "title": "Get the rehydration cost for recovery point" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TieringCost/FetchTieringCostForVault.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TieringCost/FetchTieringCostForVault.json new file mode 100644 index 000000000000..fcd1d3ed1d67 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TieringCost/FetchTieringCostForVault.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "parameters": { + "objectType": "FetchTieringCostSavingsInfoForVaultRequest", + "sourceTierType": "HardenedRP", + "targetTierType": "ArchivedRP" + }, + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "200": { + "body": { + "objectType": "TieringCostSavingInfo", + "retailSourceTierCostPerGBPerMonth": 0.02, + "retailTargetTierCostPerGBPerMonth": 0.003, + "sourceTierSizeReductionInBytes": 1204000, + "targetTierSizeIncreaseInBytes": 1892 + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", + "Retry-After": 60 + } + } + }, + "operationId": "FetchTieringCost_Post", + "title": "Get the tiering savings cost info for vault" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TieringCost/GetTieringCostOperationResult.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TieringCost/GetTieringCostOperationResult.json new file mode 100644 index 000000000000..754693c31c10 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TieringCost/GetTieringCostOperationResult.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "operationId": "0f48183b-0a44-4dca-aec1-bba5daab888a", + "api-version": "2025-02-01", + "resourceGroupName": "gaallaRG", + "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", + "vaultName": "gaallavaultbvtd2msi" + }, + "responses": { + "200": { + "body": { + "objectType": "TieringCostSavingInfo", + "retailSourceTierCostPerGBPerMonth": 0.02, + "retailTargetTierCostPerGBPerMonth": 0.003, + "sourceTierSizeReductionInBytes": 1204000, + "targetTierSizeIncreaseInBytes": 1892 + } + } + }, + "operationId": "GetTieringCostOperationResult_Get", + "title": "Fetch Tiering Cost Operation Result" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TieringCost/GetTieringCostOperationStatus.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TieringCost/GetTieringCostOperationStatus.json new file mode 100644 index 000000000000..68379e87a74e --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TieringCost/GetTieringCostOperationStatus.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "operationId": "0f48183b-0a44-4dca-aec1-bba5daab888a", + "api-version": "2025-02-01", + "privateEndpointConnectionName": "gaallatestpe2.5704c932-249a-490b-a142-1396838cd3b", + "resourceGroupName": "gaallaRG", + "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", + "vaultName": "gaallavaultbvtd2msi" + }, + "responses": { + "200": { + "body": { + "name": "0f48183b-0a44-4dca-aec1-bba5daab888a", + "endTime": "2020-02-27T11:59:47.5901592Z", + "id": "0f48183b-0a44-4dca-aec1-bba5daab888a", + "startTime": "2020-02-27T11:59:47.5901592Z", + "status": "Succeeded" + } + } + }, + "operationId": "TieringCostOperationStatus_Get", + "title": "Fetch Tiering Cost Operation Status" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TriggerRecoveryPointMove_Post.json b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TriggerRecoveryPointMove_Post.json new file mode 100644 index 000000000000..f5c0cb3108f2 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/examples/2025-02-01/TriggerRecoveryPointMove_Post.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", + "parameters": { + "objectType": "MoveRPAcrossTiersRequest", + "sourceTierType": "HardenedRP", + "targetTierType": "ArchivedRP" + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "recoveryPointId": "348916168024334", + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", + "Retry-After": 60 + } + } + }, + "operationId": "MoveRecoveryPoint", + "title": "Trigger RP Move Operation" +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/main.tsp b/specification/recoveryservicesbackup/RecoveryServices.Management/main.tsp new file mode 100644 index 000000000000..01c5cb835973 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/main.tsp @@ -0,0 +1,56 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Parameters used: + * isFullCompatible: true + * guessResourceKey: false + * Version: 0.11.2 + * Date: 2025-07-02T07:51:19.697Z + */ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./models.tsp"; +import "./back-compatible.tsp"; +import "./BackupResourceConfigResource.tsp"; +import "./ProtectionIntentResource.tsp"; +import "./BackupResourceVaultConfigResource.tsp"; +import "./BackupResourceEncryptionConfigExtendedResource.tsp"; +import "./PrivateEndpointConnectionResource.tsp"; +import "./ProtectedItemResource.tsp"; +import "./RecoveryPointResource.tsp"; +import "./ProtectionPolicyResource.tsp"; +import "./JobResource.tsp"; +import "./BackupEngineBaseResource.tsp"; +import "./ProtectionContainerResource.tsp"; +import "./ResourceGuardProxyBaseResource.tsp"; +import "./VirtualResource.tsp"; +import "./routes.tsp"; + +using Azure.ResourceManager; +using TypeSpec.Versioning; +/** + * Open API 2.0 Specs for Azure RecoveryServices Backup service + */ +@armProviderNamespace +@service(#{ title: "Recovery Services Backup Client" }) +@versioned(Versions) +// FIXME: Common type version v1 is not supported for now. Set to v3. +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) +namespace Microsoft.RecoveryServices; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 2025-02-01 API version. + */ + @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @useDependency(Azure.Core.Versions.v1_0_Preview_1) + v2025_02_01: "2025-02-01", +} + +interface Operations + extends Azure.ResourceManager.Legacy.Operations> {} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/models.tsp b/specification/recoveryservicesbackup/RecoveryServices.Management/models.tsp new file mode 100644 index 000000000000..436dbc56bb01 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/models.tsp @@ -0,0 +1,8311 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using Azure.ResourceManager.Foundations; + +namespace Microsoft.RecoveryServices; + +/** + * Storage type + */ +union StorageType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + GeoRedundant: "GeoRedundant", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + LocallyRedundant: "LocallyRedundant", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ZoneRedundant: "ZoneRedundant", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ReadAccessGeoZoneRedundant: "ReadAccessGeoZoneRedundant", +} + +/** + * Locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked. + */ +union StorageTypeState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Locked: "Locked", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Unlocked: "Unlocked", +} + +/** + * Vault Dedup state + */ +union DedupState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +/** + * Vault x-cool state + */ +union XcoolState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +/** + * Type of workload this item represents. + */ +union DataSourceType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + VM: "VM", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + FileFolder: "FileFolder", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureSqlDb: "AzureSqlDb", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SQLDB: "SQLDB", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Exchange: "Exchange", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Sharepoint: "Sharepoint", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + VMwareVM: "VMwareVM", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SystemState: "SystemState", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Client: "Client", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + GenericDataSource: "GenericDataSource", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SQLDataBase: "SQLDataBase", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureFileShare: "AzureFileShare", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SAPHanaDatabase: "SAPHanaDatabase", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SAPAseDatabase: "SAPAseDatabase", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SAPHanaDBInstance: "SAPHanaDBInstance", +} + +/** + * Validation Status + */ +union ValidationStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Succeeded: "Succeeded", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Failed: "Failed", +} + +/** + * Specifies whether the container is registered or not + */ +union ProtectionStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + NotProtected: "NotProtected", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Protecting: "Protecting", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Protected: "Protected", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ProtectionFailed: "ProtectionFailed", +} + +/** + * Specifies the fabric name - Azure or AD + */ +union FabricName { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Azure: "Azure", +} + +/** + * Whether storage account lock is to be acquired for this container or not. + */ +union AcquireStorageAccountLock { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Acquire: "Acquire", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + NotAcquire: "NotAcquire", +} + +/** + * Support status of feature + */ +union SupportStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Supported: "Supported", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + DefaultOFF: "DefaultOFF", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + DefaultON: "DefaultON", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + NotSupported: "NotSupported", +} + +/** + * backup protectionIntent type. + */ +union ProtectionIntentItemType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureResourceItem: "AzureResourceItem", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + RecoveryServiceVaultItem: "RecoveryServiceVaultItem", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureWorkloadContainerAutoProtectionIntent: "AzureWorkloadContainerAutoProtectionIntent", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureWorkloadAutoProtectionIntent: "AzureWorkloadAutoProtectionIntent", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureWorkloadSQLAutoProtectionIntent: "AzureWorkloadSQLAutoProtectionIntent", +} + +/** + * Backup management type to execute the current job. + */ +union BackupManagementType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureIaasVM: "AzureIaasVM", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + MAB: "MAB", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + DPM: "DPM", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureBackupServer: "AzureBackupServer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureSql: "AzureSql", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureStorage: "AzureStorage", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureWorkload: "AzureWorkload", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + DefaultBackup: "DefaultBackup", +} + +/** + * Unit of the usage. + */ +union UsagesUnit { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Count: "Count", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Bytes: "Bytes", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Seconds: "Seconds", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Percent: "Percent", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + CountPerSecond: "CountPerSecond", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + BytesPerSecond: "BytesPerSecond", +} + +/** + * Enabled or Disabled. + */ +union EnhancedSecurityState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +/** + * Soft Delete feature state + */ +union SoftDeleteFeatureState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AlwaysON: "AlwaysON", +} + +/** + * Encryption At Rest Type + */ +union EncryptionAtRestType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + MicrosoftManaged: "MicrosoftManaged", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + CustomerManaged: "CustomerManaged", +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union LastUpdateStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + NotEnabled: "NotEnabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + PartiallySucceeded: "PartiallySucceeded", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + PartiallyFailed: "PartiallyFailed", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Failed: "Failed", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Succeeded: "Succeeded", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Initialized: "Initialized", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + FirstInitialization: "FirstInitialization", +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union InfrastructureEncryptionState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", +} + +/** + * Gets or sets provisioning state of the private endpoint connection + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union ProvisioningState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Succeeded: "Succeeded", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Deleting: "Deleting", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Failed: "Failed", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Pending: "Pending", +} + +/** + * GroupId for the PrivateEndpointConnection - AzureBackup, AzureBackup_secondary or AzureSiteRecovery + */ +union VaultSubResourceType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureBackup: "AzureBackup", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureBackup_secondary: "AzureBackup_secondary", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureSiteRecovery: "AzureSiteRecovery", +} + +/** + * Gets or sets the status + */ +union PrivateEndpointConnectionStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Pending: "Pending", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Approved: "Approved", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Rejected: "Rejected", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disconnected: "Disconnected", +} + +/** + * Operation status. + */ +union OperationStatusValues { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + InProgress: "InProgress", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Succeeded: "Succeeded", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Failed: "Failed", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Canceled: "Canceled", +} + +/** + * DataMove Level + */ +union DataMoveLevel { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Vault: "Vault", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Container: "Container", +} + +/** + * Create mode to indicate recovery of existing soft deleted data source or creation of new data source. + */ +union CreateMode { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Default: "Default", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Recover: "Recover", +} + +/** + * Type of the backup engine. + */ +union BackupEngineType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + DpmBackupEngine: "DpmBackupEngine", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureBackupServerEngine: "AzureBackupServerEngine", +} + +/** + * Backup state of this backup item. + */ +union ProtectionState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + IRPending: "IRPending", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Protected: "Protected", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ProtectionError: "ProtectionError", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ProtectionStopped: "ProtectionStopped", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ProtectionPaused: "ProtectionPaused", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + BackupsSuspended: "BackupsSuspended", +} + +/** + * Resource Health Status + */ +union ResourceHealthStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Healthy: "Healthy", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + TransientDegraded: "TransientDegraded", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + PersistentDegraded: "PersistentDegraded", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + TransientUnhealthy: "TransientUnhealthy", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + PersistentUnhealthy: "PersistentUnhealthy", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", +} + +/** + * Type of this recovery. + */ +union RecoveryType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + OriginalLocation: "OriginalLocation", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AlternateLocation: "AlternateLocation", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + RestoreDisks: "RestoreDisks", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Offline: "Offline", +} + +/** + * Options to resolve copy conflicts. + */ +union CopyOptions { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + CreateCopy: "CreateCopy", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Skip: "Skip", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Overwrite: "Overwrite", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + FailOnConflict: "FailOnConflict", +} + +/** + * Restore Type (FullShareRestore or ItemLevelRestore) + */ +union RestoreRequestType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + FullShareRestore: "FullShareRestore", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ItemLevelRestore: "ItemLevelRestore", +} + +/** + * Type of workload for the backup management + */ +union WorkloadType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + VM: "VM", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + FileFolder: "FileFolder", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureSqlDb: "AzureSqlDb", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SQLDB: "SQLDB", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Exchange: "Exchange", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Sharepoint: "Sharepoint", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + VMwareVM: "VMwareVM", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SystemState: "SystemState", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Client: "Client", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + GenericDataSource: "GenericDataSource", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SQLDataBase: "SQLDataBase", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureFileShare: "AzureFileShare", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SAPHanaDatabase: "SAPHanaDatabase", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SAPAseDatabase: "SAPAseDatabase", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SAPHanaDBInstance: "SAPHanaDBInstance", +} + +/** + * Type of backup policy type + */ +union PolicyType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Full: "Full", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Differential: "Differential", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Log: "Log", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + CopyOnlyFull: "CopyOnlyFull", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Incremental: "Incremental", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SnapshotFull: "SnapshotFull", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SnapshotCopyOnlyFull: "SnapshotCopyOnlyFull", +} + +/** + * Tiering Mode to control automatic tiering of recovery points. Supported values are: + * 1. TierRecommended: Tier all recovery points recommended to be tiered + * 2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below. + * 3. DoNotTier: Do not tier any recovery points + */ +union TieringMode { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + TierRecommended: "TierRecommended", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + TierAfter: "TierAfter", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + DoNotTier: "DoNotTier", +} + +/** + * Retention duration type of retention policy. + */ +union RetentionDurationType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Days: "Days", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Weeks: "Weeks", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Months: "Months", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Years: "Years", +} + +/** + * Health status of protected item. + */ +union HealthStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Passed: "Passed", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ActionRequired: "ActionRequired", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ActionSuggested: "ActionSuggested", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union IAASVMPolicyType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + V1: "V1", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + V2: "V2", +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +union IaasVMSnapshotConsistencyType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + OnlyCrashConsistent: "OnlyCrashConsistent", +} + +/** + * Backup state of the backed up item. + */ +union ProtectedItemState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + IRPending: "IRPending", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Protected: "Protected", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ProtectionError: "ProtectionError", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ProtectionStopped: "ProtectionStopped", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ProtectionPaused: "ProtectionPaused", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + BackupsSuspended: "BackupsSuspended", +} + +/** + * Last backup operation status. Possible values: Healthy, Unhealthy. + */ +union LastBackupStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Healthy: "Healthy", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Unhealthy: "Unhealthy", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + IRPending: "IRPending", +} + +/** + * Health status of the backup item, evaluated based on last heartbeat received + */ +union ProtectedItemHealthStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Healthy: "Healthy", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Unhealthy: "Unhealthy", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + NotReachable: "NotReachable", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + IRPending: "IRPending", +} + +/** + * Type of restore point + */ +union RestorePointType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Full: "Full", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Log: "Log", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Differential: "Differential", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Incremental: "Incremental", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SnapshotFull: "SnapshotFull", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SnapshotCopyOnlyFull: "SnapshotCopyOnlyFull", +} + +/** + * Can Overwrite if Target DataBase already exists + */ +union OverwriteOptions { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + FailOnConflict: "FailOnConflict", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Overwrite: "Overwrite", +} + +/** + * Defines whether the current recovery mode is file restore or database restore + */ +union RecoveryMode { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + FileRecovery: "FileRecovery", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + WorkloadRecovery: "WorkloadRecovery", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SnapshotAttach: "SnapshotAttach", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + RecoveryUsingSnapshot: "RecoveryUsingSnapshot", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SnapshotAttachAndRecover: "SnapshotAttachAndRecover", +} + +/** + * Type of data directory mapping + */ +union SQLDataDirectoryType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Data: "Data", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Log: "Log", +} + +/** + * RestorePoint type + */ +union RestorePointQueryType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Full: "Full", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Log: "Log", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Differential: "Differential", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + FullAndDifferential: "FullAndDifferential", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + All: "All", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Incremental: "Incremental", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SnapshotFull: "SnapshotFull", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SnapshotCopyOnlyFull: "SnapshotCopyOnlyFull", +} + +/** + * Status of the job. + */ +union JobStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + InProgress: "InProgress", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Completed: "Completed", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Failed: "Failed", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + CompletedWithWarnings: "CompletedWithWarnings", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Cancelled: "Cancelled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Cancelling: "Cancelling", +} + +/** + * Type of operation. + */ +union JobOperationType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Register: "Register", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + UnRegister: "UnRegister", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ConfigureBackup: "ConfigureBackup", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Backup: "Backup", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Restore: "Restore", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + DisableBackup: "DisableBackup", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + DeleteBackupData: "DeleteBackupData", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + CrossRegionRestore: "CrossRegionRestore", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Undelete: "Undelete", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + UpdateCustomerManagedKey: "UpdateCustomerManagedKey", +} + +/** + * Retention schedule format type for monthly retention policy. + */ +union RetentionScheduleFormat { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Daily: "Daily", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Weekly: "Weekly", +} + +/** + * Server type of MAB container. + */ +union MabServerType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Unknown: "Unknown", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + IaasVMContainer: "IaasVMContainer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + IaasVMServiceContainer: "IaasVMServiceContainer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + DPMContainer: "DPMContainer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureBackupServerContainer: "AzureBackupServerContainer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + MABContainer: "MABContainer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Cluster: "Cluster", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureSqlContainer: "AzureSqlContainer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Windows: "Windows", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + VCenter: "VCenter", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + VMAppContainer: "VMAppContainer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SQLAGWorkLoadContainer: "SQLAGWorkLoadContainer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + StorageContainer: "StorageContainer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + GenericContainer: "GenericContainer", +} + +/** + * Health State for the backed up item. + */ +union HealthState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Passed: "Passed", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ActionRequired: "ActionRequired", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ActionSuggested: "ActionSuggested", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", +} + +/** + * Frequency of the schedule operation of this policy. + */ +union ScheduleRunType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Daily: "Daily", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Weekly: "Weekly", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Hourly: "Hourly", +} + +/** + * File Share type XSync or XSMB. + */ +union AzureFileShareType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + XSMB: "XSMB", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + XSync: "XSync", +} + +/** + * Re-Do Operation + */ +union OperationType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Register: "Register", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Reregister: "Reregister", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Rehydrate: "Rehydrate", +} + +/** + * Status of protectable item, i.e. InProgress,Succeeded,Failed + */ +union InquiryStatus { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Success: "Success", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Failed: "Failed", +} + +/** + * Type of backup, viz. Full, Differential, Log or CopyOnlyFull + */ +union BackupType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Full: "Full", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Differential: "Differential", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Log: "Log", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + CopyOnlyFull: "CopyOnlyFull", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Incremental: "Incremental", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SnapshotFull: "SnapshotFull", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SnapshotCopyOnlyFull: "SnapshotCopyOnlyFull", +} + +/** + * Workload item type of the item for which intent is to be set + */ +union WorkloadItemType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SQLInstance: "SQLInstance", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SQLDataBase: "SQLDataBase", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SAPHanaSystem: "SAPHanaSystem", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SAPHanaDatabase: "SAPHanaDatabase", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SAPAseSystem: "SAPAseSystem", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SAPAseDatabase: "SAPAseDatabase", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SAPHanaDBInstance: "SAPHanaDBInstance", +} + +/** + * Backup management type for this container. + */ +union Type { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + BackupProtectedItemCountSummary: "BackupProtectedItemCountSummary", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + BackupProtectionContainerCountSummary: "BackupProtectionContainerCountSummary", +} + +/** + * Type of workload this item represents + */ +union IntentItemType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SQLInstance: "SQLInstance", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SQLAvailabilityGroupContainer: "SQLAvailabilityGroupContainer", +} + +/** + * Type of container for filter + */ +union ContainerType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Unknown: "Unknown", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + IaasVMContainer: "IaasVMContainer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + IaasVMServiceContainer: "IaasVMServiceContainer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + DPMContainer: "DPMContainer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureBackupServerContainer: "AzureBackupServerContainer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + MABContainer: "MABContainer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Cluster: "Cluster", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureSqlContainer: "AzureSqlContainer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Windows: "Windows", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + VCenter: "VCenter", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + VMAppContainer: "VMAppContainer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SQLAGWorkLoadContainer: "SQLAGWorkLoadContainer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + StorageContainer: "StorageContainer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + GenericContainer: "GenericContainer", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + HanaHSRContainer: "HanaHSRContainer", +} + +/** + * Type of backup items associated with this container. + */ +union BackupItemType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Invalid: "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + VM: "VM", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + FileFolder: "FileFolder", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureSqlDb: "AzureSqlDb", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SQLDB: "SQLDB", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Exchange: "Exchange", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Sharepoint: "Sharepoint", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + VMwareVM: "VMwareVM", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SystemState: "SystemState", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Client: "Client", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + GenericDataSource: "GenericDataSource", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SQLDataBase: "SQLDataBase", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + AzureFileShare: "AzureFileShare", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SAPHanaDatabase: "SAPHanaDatabase", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SAPAseDatabase: "SAPAseDatabase", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SAPHanaDBInstance: "SAPHanaDBInstance", +} + +/** + * Rehydration Priority + */ +union RehydrationPriority { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Standard: "Standard", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + High: "High", +} + +/** + * HTTP Status Code of the operation. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum HttpStatusCode { + Continue, + SwitchingProtocols, + OK, + Created, + Accepted, + NonAuthoritativeInformation, + NoContent, + ResetContent, + PartialContent, + MultipleChoices, + Ambiguous, + MovedPermanently, + Moved, + Found, + Redirect, + SeeOther, + RedirectMethod, + NotModified, + UseProxy, + Unused, + TemporaryRedirect, + RedirectKeepVerb, + BadRequest, + Unauthorized, + PaymentRequired, + Forbidden, + NotFound, + MethodNotAllowed, + NotAcceptable, + ProxyAuthenticationRequired, + RequestTimeout, + Conflict, + Gone, + LengthRequired, + PreconditionFailed, + RequestEntityTooLarge, + RequestUriTooLong, + UnsupportedMediaType, + RequestedRangeNotSatisfiable, + ExpectationFailed, + UpgradeRequired, + InternalServerError, + NotImplemented, + BadGateway, + ServiceUnavailable, + GatewayTimeout, + HttpVersionNotSupported, +} + +/** + * Type of the container. The value of this property for + * 1. Compute Azure VM is Microsoft.Compute/virtualMachines + * 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum ProtectableContainerType { + Invalid, + Unknown, + IaasVMContainer, + IaasVMServiceContainer, + DPMContainer, + AzureBackupServerContainer, + MABContainer, + Cluster, + AzureSqlContainer, + Windows, + VCenter, + VMAppContainer, + SQLAGWorkLoadContainer, + StorageContainer, + GenericContainer, + `Microsoft.ClassicCompute/virtualMachines`, + `Microsoft.Compute/virtualMachines`, + AzureWorkloadContainer, +} + +/** + * Recovery point tier type. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum RecoveryPointTierType { + Invalid, + InstantRP, + HardenedRP, + ArchivedRP, +} + +/** + * Recovery point tier status. + */ +union RecoveryPointTierStatus { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + "Invalid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + "Valid", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + "Disabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + "Deleted", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + "Rehydrated", + string, +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum JobSupportedAction { + Invalid, + Cancellable, + Retriable, +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum DayOfWeek { + Sunday, + Monday, + Tuesday, + Wednesday, + Thursday, + Friday, + Saturday, +} + +/** + * Network access settings to be used for restored disks + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum TargetDiskNetworkAccessOption { + SameAsOnSourceDisks, + EnablePrivateAccessForAllDisks, + EnablePublicAccessForAllDisks, +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum WeekOfMonth { + First, + Second, + Third, + Fourth, + Last, + Invalid, +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +enum MonthOfYear { + Invalid, + January, + February, + March, + April, + May, + June, + July, + August, + September, + October, + November, + December, +} + +/** + * The resource storage details. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BackupResourceConfig { + /** + * Storage type + */ + storageModelType?: StorageType; + + /** + * Storage type. + */ + storageType?: StorageType; + + /** + * Locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked. + */ + storageTypeState?: StorageTypeState; + + /** + * Opt in details of Cross Region Restore feature. + */ + crossRegionRestoreFlag?: boolean; + + /** + * Vault Dedup state + */ + dedupState?: DedupState; + + /** + * Vault x-cool state + */ + xcoolState?: XcoolState; +} + +/** + * Contract to validate if backup can be enabled on the given resource in a given vault and given configuration. + * It will validate followings + * 1. Vault capacity + * 2. VM is already protected + * 3. Any VM related configuration passed in properties. + */ +model PreValidateEnableBackupRequest { + /** + * ProtectedItem Type- VM, SqlDataBase, AzureFileShare etc + */ + resourceType?: DataSourceType; + + /** + * ARM Virtual Machine Id + */ + resourceId?: string; + + /** + * ARM id of the Recovery Services Vault + */ + vaultId?: string; + + /** + * Configuration of VM if any needs to be validated like OS type etc + */ + properties?: string; +} + +/** + * Response contract for enable backup validation request + */ +model PreValidateEnableBackupResponse { + /** + * Validation Status + */ + status?: ValidationStatus; + + /** + * Response error code + */ + errorCode?: string; + + /** + * Response error message + */ + errorMessage?: string; + + /** + * Recommended action for user + */ + recommendation?: string; + + /** + * Specifies the product specific container name. E.g. iaasvmcontainer;iaasvmcontainer;rgname;vmname. This is required + * for portal + */ + containerName?: string; + + /** + * Specifies the product specific ds name. E.g. vm;iaasvmcontainer;rgname;vmname. This is required for portal + */ + protectedItemName?: string; +} + +/** + * BackupStatus request. + */ +model BackupStatusRequest { + /** + * Container Type - VM, SQLPaaS, DPM, AzureFileShare... + */ + resourceType?: DataSourceType; + + /** + * Entire ARM resource id of the resource + */ + resourceId?: string; + + /** + * Protectable Item Logical Name + */ + poLogicalName?: string; +} + +/** + * BackupStatus response. + */ +model BackupStatusResponse { + /** + * Specifies whether the container is registered or not + */ + protectionStatus?: ProtectionStatus; + + /** + * Specifies the arm resource id of the vault + */ + vaultId?: string; + + /** + * Specifies the fabric name - Azure or AD + */ + fabricName?: FabricName; + + /** + * Specifies the product specific container name. E.g. iaasvmcontainer;iaasvmcontainer;csname;vmname. + */ + containerName?: string; + + /** + * Specifies the product specific ds name. E.g. vm;iaasvmcontainer;csname;vmname. + */ + protectedItemName?: string; + + /** + * ErrorCode in case of intent failed + */ + errorCode?: string; + + /** + * ErrorMessage in case of intent failed. + */ + errorMessage?: string; + + /** + * Specifies the policy name which is used for protection + */ + policyName?: string; + + /** + * Container registration status + */ + registrationStatus?: string; + + /** + * Number of protected items + */ + protectedItemsCount?: int32; + + /** + * Specifies whether the storage account lock has been acquired or not + */ + acquireStorageAccountLock?: AcquireStorageAccountLock; +} + +/** + * Base class for feature request + */ +@discriminator("featureType") +model FeatureSupportRequest { + /** + * backup support feature type. + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + featureType: string; +} + +/** + * Response for feature support requests for Azure IaasVm + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVMResourceFeatureSupportResponse { + /** + * Support status of feature + */ + supportStatus?: SupportStatus; +} + +/** + * Base class for backup ProtectionIntent. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@discriminator("protectionIntentItemType") +model ProtectionIntent { + /** + * backup protectionIntent type. + */ + protectionIntentItemType: ProtectionIntentItemType; + + /** + * Type of backup management for the backed up item. + */ + backupManagementType?: BackupManagementType; + + /** + * ARM ID of the resource to be backed up. + */ + sourceResourceId?: string; + + /** + * ID of the item which is getting protected, In case of Azure Vm , it is ProtectedItemId + */ + itemId?: string; + + /** + * ID of the backup policy with which this item is backed up. + */ + policyId?: string; + + /** + * Backup state of this backup item. + */ + protectionState?: ProtectionStatus; +} + +/** + * List of ProtectionIntent resources + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ProtectionIntentResourceList extends ResourceList { + /** + * List of resources. + */ + @pageItems + value?: ProtectionIntentResource[]; +} + +/** + * Base for all lists of resources. + */ +model ResourceList { + /** + * The URI to fetch the next page of resources, with each API call returning up to 200 resources per page. Use ListNext() to fetch the next page if the total number of resources exceeds 200. + */ + @nextLink + nextLink?: string; +} + +/** + * Backup management usage for vault. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BackupManagementUsageList extends ResourceList { + /** + * The list of backup management usages for the given vault. + */ + @pageItems + @OpenAPI.extension("x-ms-identifiers", #[]) + value?: BackupManagementUsage[]; +} + +/** + * Backup management usages of a vault. + */ +model BackupManagementUsage { + /** + * Unit of the usage. + */ + unit?: UsagesUnit; + + /** + * Quota period of usage. + */ + quotaPeriod?: string; + + /** + * Next reset time of usage. + */ + nextResetTime?: utcDateTime; + + /** + * Current value of usage. + */ + currentValue?: int64; + + /** + * Limit of usage. + */ + limit?: int64; + + /** + * Name of usage. + */ + name?: NameInfo; +} + +/** + * The name of usage. + */ +model NameInfo { + /** + * Value of usage. + */ + value?: string; + + /** + * Localized value of usage. + */ + localizedValue?: string; +} + +/** + * Available operation details. + */ +model ClientDiscoveryValueForSingleApi { + /** + * Name of the Operation. + */ + name?: string; + + /** + * Contains the localized display information for this particular operation + */ + display?: ClientDiscoveryDisplay; + + /** + * The intended executor of the operation;governs the display of the operation in the RBAC UX and the audit logs UX + */ + origin?: string; + + /** + * ShoeBox properties for the given operation. + */ + properties?: ClientDiscoveryForProperties; +} + +/** + * Localized display information of an operation. + */ +model ClientDiscoveryDisplay { + /** + * Name of the provider for display purposes + */ + provider?: string; + + /** + * ResourceType for which this Operation can be performed. + */ + resource?: string; + + /** + * Operations Name itself. + */ + operation?: string; + + /** + * Description of the operation having details of what operation is about. + */ + description?: string; +} + +/** + * Class to represent shoebox properties in json client discovery. + */ +model ClientDiscoveryForProperties { + /** + * Operation properties. + */ + serviceSpecification?: ClientDiscoveryForServiceSpecification; +} + +/** + * Class to represent shoebox service specification in json client discovery. + */ +model ClientDiscoveryForServiceSpecification { + /** + * List of log specifications of this operation. + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + logSpecifications?: ClientDiscoveryForLogSpecification[]; +} + +/** + * Class to represent shoebox log specification in json client discovery. + */ +model ClientDiscoveryForLogSpecification { + /** + * Name for shoebox log specification. + */ + name?: string; + + /** + * Localized display name + */ + displayName?: string; + + /** + * blob duration of shoebox log specification + */ + blobDuration?: string; +} + +/** + * Backup resource vault config details. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BackupResourceVaultConfig { + /** + * Storage type. + */ + storageModelType?: StorageType; + + /** + * Storage type. + */ + storageType?: StorageType; + + /** + * Locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked. + */ + storageTypeState?: StorageTypeState; + + /** + * Enabled or Disabled. + */ + enhancedSecurityState?: EnhancedSecurityState; + + /** + * Soft Delete feature state + */ + softDeleteFeatureState?: SoftDeleteFeatureState; + + /** + * Soft delete retention period in days + */ + softDeleteRetentionPeriodInDays?: int32; + + /** + * ResourceGuard Operation Requests + */ + resourceGuardOperationRequests?: string[]; + + /** + * This flag is no longer in use. Please use 'softDeleteFeatureState' to set the soft delete state for the vault + */ + isSoftDeleteFeatureStateEditable?: boolean; +} + +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BackupResourceEncryptionConfigExtended + extends BackupResourceEncryptionConfig { + /** + * User Assigned Identity Id + */ + userAssignedIdentity?: string; + + /** + * bool to indicate whether to use system Assigned Identity or not + */ + useSystemAssignedIdentity?: boolean; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BackupResourceEncryptionConfig { + /** + * Encryption At Rest Type + */ + encryptionAtRestType?: EncryptionAtRestType; + + /** + * Key Vault Key URI + */ + keyUri?: string; + + /** + * Key Vault Subscription Id + */ + subscriptionId?: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + lastUpdateStatus?: LastUpdateStatus; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + infrastructureEncryptionState?: InfrastructureEncryptionState; +} + +/** + * Private Endpoint Connection Response Properties + */ +model PrivateEndpointConnection { + /** + * Gets or sets provisioning state of the private endpoint connection + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + provisioningState?: ProvisioningState; + + /** + * Gets or sets private endpoint associated with the private endpoint connection + */ + privateEndpoint?: PrivateEndpoint; + + /** + * Group Ids for the Private Endpoint + */ + groupIds?: VaultSubResourceType[]; + + /** + * Gets or sets private link service connection state + */ + privateLinkServiceConnectionState?: PrivateLinkServiceConnectionState; +} + +/** + * The Private Endpoint network resource that is linked to the Private Endpoint connection + */ +model PrivateEndpoint { + /** + * Gets or sets id + */ + id?: string; +} + +/** + * Private Link Service Connection State + */ +model PrivateLinkServiceConnectionState { + /** + * Gets or sets the status + */ + status?: PrivateEndpointConnectionStatus; + + /** + * Gets or sets description + */ + description?: string; + + /** + * Gets or sets actions required + */ + actionsRequired?: string; +} + +/** + * An error response from the Container Instance service. + */ +@error +model CloudError { + /** + * The error object. + */ + error?: CloudErrorBody; +} + +/** + * An error response from the Container Instance service. + */ +model CloudErrorBody { + /** + * An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + */ + @visibility(Lifecycle.Read) + code?: string; + + /** + * A message describing the error, intended to be suitable for display in a user interface. + */ + @visibility(Lifecycle.Read) + message?: string; + + /** + * The target of the particular error. For example, the name of the property in error. + */ + @visibility(Lifecycle.Read) + target?: string; + + /** + * A list of additional details about the error. + */ + @visibility(Lifecycle.Read) + @OpenAPI.extension("x-ms-identifiers", #["code"]) + details?: CloudErrorBody[]; + + /** + * The error additional info. + */ + @visibility(Lifecycle.Read) + @OpenAPI.extension("x-ms-identifiers", #[]) + additionalInfo?: ErrorAdditionalInfo[]; +} + +/** + * Operation status. + */ +model OperationStatus { + /** + * ID of the operation. + */ + id?: string; + + /** + * Name of the operation. + */ + name?: string; + + /** + * Operation status. + */ + status?: OperationStatusValues; + + /** + * Operation start time. Format: ISO-8601. + */ + startTime?: utcDateTime; + + /** + * Operation end time. Format: ISO-8601. + */ + endTime?: utcDateTime; + + /** + * Error information related to this operation. + */ + error?: OperationStatusError; + + /** + * Additional information associated with this operation. + */ + properties?: OperationStatusExtendedInfo; +} + +/** + * Error information associated with operation status call. + */ +model OperationStatusError { + /** + * Error code of the operation failure. + */ + code?: string; + + /** + * Error message displayed if the operation failure. + */ + message?: string; +} + +/** + * Base class for additional information of operation status. + */ +@discriminator("objectType") +model OperationStatusExtendedInfo { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + objectType: string; +} + +/** + * Prepare DataMove Request + */ +model PrepareDataMoveRequest { + /** + * ARM Id of target vault + */ + targetResourceId: string; + + /** + * Target Region + */ + targetRegion: string; + + /** + * DataMove Level + */ + dataMoveLevel: DataMoveLevel; + + /** + * Source Container ArmIds + * This needs to be populated only if DataMoveLevel is set to container + */ + sourceContainerArmIds?: string[]; + + /** + * Ignore the artifacts which are already moved. + */ + ignoreMoved?: boolean; +} + +/** + * Operation result response for Vault Storage Config + */ +@discriminator("objectType") +model VaultStorageConfigOperationResultResponse { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + objectType: string; +} + +/** + * Trigger DataMove Request + */ +model TriggerDataMoveRequest { + /** + * ARM Id of source vault + */ + sourceResourceId: string; + + /** + * Source Region + */ + sourceRegion: string; + + /** + * DataMove Level + */ + dataMoveLevel: DataMoveLevel; + + /** + * Correlation Id + */ + correlationId: string; + + /** + * Source Container ArmIds + */ + sourceContainerArmIds?: string[]; + + /** + * Pause GC + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + pauseGC?: boolean; +} + +/** + * Base class for backup items. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@discriminator("protectedItemType") +model ProtectedItem { + /** + * backup item type. + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + protectedItemType: string; + + /** + * Type of backup management for the backed up item. + */ + @visibility(Lifecycle.Read) + backupManagementType?: BackupManagementType; + + /** + * Type of workload this item represents. + */ + @visibility(Lifecycle.Read) + workloadType?: DataSourceType; + + /** + * Unique name of container + */ + containerName?: string; + + /** + * ARM ID of the resource to be backed up. + */ + sourceResourceId?: string; + + /** + * ID of the backup policy with which this item is backed up. + */ + policyId?: string; + + /** + * Timestamp when the last (latest) backup copy was created for this backup item. + */ + lastRecoveryPoint?: utcDateTime; + + /** + * Name of the backup set the backup item belongs to + */ + backupSetName?: string; + + /** + * Create mode to indicate recovery of existing soft deleted data source or creation of new data source. + */ + createMode?: CreateMode; + + /** + * Time for deferred deletion in UTC + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + deferredDeleteTimeInUTC?: utcDateTime; + + /** + * Flag to identify whether the DS is scheduled for deferred delete + */ + isScheduledForDeferredDelete?: boolean; + + /** + * Time remaining before the DS marked for deferred delete is permanently deleted + */ + deferredDeleteTimeRemaining?: string; + + /** + * Flag to identify whether the deferred deleted DS is to be purged soon + */ + isDeferredDeleteScheduleUpcoming?: boolean; + + /** + * Flag to identify that deferred deleted DS is to be moved into Pause state + */ + isRehydrate?: boolean; + + /** + * ResourceGuardOperationRequests on which LAC check will be performed + */ + resourceGuardOperationRequests?: string[]; + + /** + * Flag to identify whether datasource is protected in archive + */ + isArchiveEnabled?: boolean; + + /** + * Name of the policy used for protection + */ + policyName?: string; + + /** + * Soft delete retention period in days + */ + softDeleteRetentionPeriodInDays?: int32; + + /** + * ID of the vault which protects this item + */ + @visibility(Lifecycle.Read) + vaultId?: string; +} + +/** + * List of RecoveryPoint resources + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model RecoveryPointResourceList extends ResourceList { + /** + * List of resources. + */ + @pageItems + value?: RecoveryPointResource[]; +} + +/** + * Base class for backup copies. Workload-specific backup copies are derived from this class. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@discriminator("objectType") +model RecoveryPoint { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + objectType: string; +} + +alias ResourceProperties = { + /** + * Resource location. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + location?: string; + + /** + * Resource tags. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record; + + /** + * Optional ETag. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + eTag?: string; +}; + +/** + * Base class for restore request. Workload-specific restore requests are derived from this class. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model RestoreRequestResource extends Resource { + ...ResourceProperties; + + /** + * RestoreRequestResource properties + */ + properties?: RestoreRequest; +} + +/** + * Base class for restore request. Workload-specific restore requests are derived from this class. + */ +@discriminator("objectType") +model RestoreRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + objectType: string; + + /** + * ResourceGuardOperationRequests on which LAC check will be performed + */ + resourceGuardOperationRequests?: string[]; +} + +/** + * List of ProtectionPolicy resources + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ProtectionPolicyResourceList extends ResourceList { + /** + * List of resources. + */ + @pageItems + value?: ProtectionPolicyResource[]; +} + +/** + * Base class for backup policy. Workload-specific backup policies are derived from this class. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@discriminator("backupManagementType") +model ProtectionPolicy { + /** + * Number of items associated with this policy. + */ + protectedItemsCount?: int32; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + backupManagementType: string; + + /** + * ResourceGuard Operation Requests + */ + resourceGuardOperationRequests?: string[]; +} + +/** + * List of Job resources + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model JobResourceList extends ResourceList { + /** + * List of resources. + */ + @pageItems + value?: JobResource[]; +} + +/** + * Defines workload agnostic properties for a job. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@discriminator("jobType") +model Job { + /** + * Friendly name of the entity on which the current job is executing. + */ + entityFriendlyName?: string; + + /** + * Backup management type to execute the current job. + */ + backupManagementType?: BackupManagementType; + + /** + * The operation name. + */ + operation?: string; + + /** + * Job status. + */ + status?: string; + + /** + * The start time. + */ + startTime?: utcDateTime; + + /** + * The end time. + */ + endTime?: utcDateTime; + + /** + * ActivityId of job. + */ + activityId?: string; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + jobType: string; +} + +/** + * Base class for operation result info. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model OperationResultInfoBaseResource extends OperationWorkerResponse { + /** + * OperationResultInfoBaseResource operation + */ + operation?: OperationResultInfoBase; +} + +/** + * Base class for operation result info. + */ +@discriminator("objectType") +model OperationResultInfoBase { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + objectType: string; +} + +/** + * This is the base class for operation result responses. + */ +model OperationWorkerResponse { + /** + * HTTP Status Code of the operation. + */ + statusCode?: HttpStatusCode; + + /** + * HTTP headers associated with this operation. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + headers?: Record; +} + +/** + * List of ProtectedItem resources + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ProtectedItemResourceList extends ResourceList { + /** + * List of resources. + */ + @pageItems + value?: ProtectedItemResource[]; +} + +/** + * Base class for validate operation request. + */ +model ValidateOperationRequestResource { + /** + * Recovery point ID. + */ + id: string; + + /** + * ValidateOperationRequestResource properties + */ + properties: ValidateOperationRequest; +} + +/** + * Base class for validate operation request. + */ +@discriminator("objectType") +model ValidateOperationRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + objectType: string; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ValidateOperationsResponse { + /** + * Base class for validate operation response. + */ + validateOperationResponse?: ValidateOperationResponse; +} + +/** + * Base class for validate operation response. + */ +model ValidateOperationResponse { + /** + * Gets the validation result + */ + @OpenAPI.extension("x-ms-identifiers", #["code"]) + validationResults?: ErrorDetail[]; +} + +/** + * Error Detail class which encapsulates Code, Message and Recommendations. + */ +model ErrorDetail { + /** + * Error code. + */ + @visibility(Lifecycle.Read) + code?: string; + + /** + * Error Message related to the Code. + */ + @visibility(Lifecycle.Read) + message?: string; + + /** + * List of recommendation strings. + */ + @visibility(Lifecycle.Read) + recommendations?: string[]; +} + +/** + * List of BackupEngineBase resources + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BackupEngineBaseResourceList extends ResourceList { + /** + * List of resources. + */ + @pageItems + value?: BackupEngineBaseResource[]; +} + +/** + * The base backup engine class. All workload specific backup engines derive from this class. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@discriminator("backupEngineType") +model BackupEngineBase { + /** + * Friendly name of the backup engine. + */ + friendlyName?: string; + + /** + * Type of backup management for the backup engine. + */ + backupManagementType?: BackupManagementType; + + /** + * Registration status of the backup engine with the Recovery Services Vault. + */ + registrationStatus?: string; + + /** + * Status of the backup engine with the Recovery Services Vault. = {Active/Deleting/DeleteFailed} + */ + backupEngineState?: string; + + /** + * Backup status of the backup engine. + */ + healthStatus?: string; + + /** + * Type of the backup engine. + */ + backupEngineType: BackupEngineType; + + /** + * Flag indicating if the backup engine be registered, once already registered. + */ + canReRegister?: boolean; + + /** + * ID of the backup engine. + */ + backupEngineId?: string; + + /** + * Backup engine version + */ + dpmVersion?: string; + + /** + * Backup agent version + */ + azureBackupAgentVersion?: string; + + /** + * To check if backup agent upgrade available + */ + isAzureBackupAgentUpgradeAvailable?: boolean; + + /** + * To check if backup engine upgrade available + */ + isDpmUpgradeAvailable?: boolean; + + /** + * Extended info of the backupengine + */ + extendedInfo?: BackupEngineExtendedInfo; +} + +/** + * Additional information on backup engine. + */ +model BackupEngineExtendedInfo { + /** + * Database name of backup engine. + */ + databaseName?: string; + + /** + * Number of protected items in the backup engine. + */ + protectedItemsCount?: int32; + + /** + * Number of protected servers in the backup engine. + */ + protectedServersCount?: int32; + + /** + * Number of disks in the backup engine. + */ + diskCount?: int32; + + /** + * Disk space used in the backup engine. + */ + usedDiskSpace?: float64; + + /** + * Disk space currently available in the backup engine. + */ + availableDiskSpace?: float64; + + /** + * Last refresh time in the backup engine. + */ + refreshedAt?: utcDateTime; + + /** + * Protected instances in the backup engine. + */ + azureProtectedInstances?: int32; +} + +/** + * List of ProtectableContainer resources + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ProtectableContainerResourceList extends ResourceList { + /** + * List of resources. + */ + @pageItems + value?: ProtectableContainerResource[]; +} + +/** + * Protectable Container Class. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ProtectableContainerResource extends Resource { + ...ResourceProperties; + + /** + * ProtectableContainerResource properties + */ + properties?: ProtectableContainer; +} + +/** + * Protectable Container Class. + */ +@discriminator("protectableContainerType") +model ProtectableContainer { + /** + * Friendly name of the container. + */ + friendlyName?: string; + + /** + * Type of backup management for the container. + */ + backupManagementType?: BackupManagementType; + + /** + * Type of the container. The value of this property for + * 1. Compute Azure VM is Microsoft.Compute/virtualMachines + * 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + protectableContainerType: ProtectableContainerType; + + /** + * Status of health of the container. + */ + healthStatus?: string; + + /** + * Fabric Id of the container such as ARM Id. + */ + containerId?: string; +} + +/** + * Base class for container with backup items. Containers with specific workloads are derived from this class. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@discriminator("containerType") +model ProtectionContainer { + /** + * Friendly name of the container. + */ + friendlyName?: string; + + /** + * Type of backup management for the container. + */ + backupManagementType?: BackupManagementType; + + /** + * Status of registration of the container with the Recovery Services Vault. + */ + registrationStatus?: string; + + /** + * Status of health of the container. + */ + healthStatus?: string; + + /** + * Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. + * Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is + * Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload + * Backup is VMAppContainer + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + containerType: ProtectableContainerType; + + /** + * Type of the protectable object associated with this container + */ + protectableObjectType?: string; +} + +/** + * List of WorkloadItem resources + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model WorkloadItemResourceList extends ResourceList { + /** + * List of resources. + */ + @pageItems + value?: WorkloadItemResource[]; +} + +/** + * Base class for backup item. Workload-specific backup items are derived from this class. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model WorkloadItemResource extends Resource { + ...ResourceProperties; + + /** + * WorkloadItemResource properties + */ + properties?: WorkloadItem; +} + +/** + * Base class for backup item. Workload-specific backup items are derived from this class. + */ +@discriminator("workloadItemType") +model WorkloadItem { + /** + * Type of backup management to backup an item. + */ + backupManagementType?: string; + + /** + * Type of workload for the backup management + */ + workloadType?: string; + + /** + * Type of the backup item. + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + workloadItemType: string; + + /** + * Friendly name of the backup item. + */ + friendlyName?: string; + + /** + * State of the back up item. + */ + protectionState?: ProtectionStatus; +} + +/** + * Base class for backup request. Workload-specific backup requests are derived from this class. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BackupRequestResource extends Resource { + ...ResourceProperties; + + /** + * BackupRequestResource properties + */ + properties?: BackupRequest; +} + +/** + * Base class for backup request. Workload-specific backup requests are derived from this class. + */ +@discriminator("objectType") +model BackupRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + objectType: string; +} + +/** + * Parameters to Provision ILR API. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ILRRequestResource extends Resource { + ...ResourceProperties; + + /** + * ILRRequestResource properties + */ + properties?: ILRRequest; +} + +/** + * Parameters to Provision ILR API. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@discriminator("objectType") +model ILRRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + objectType: string; +} + +/** + * List of WorkloadProtectableItem resources + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model WorkloadProtectableItemResourceList extends ResourceList { + /** + * List of resources. + */ + @pageItems + value?: WorkloadProtectableItemResource[]; +} + +/** + * Base class for backup item. Workload-specific backup items are derived from this class. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model WorkloadProtectableItemResource extends Resource { + ...ResourceProperties; + + /** + * WorkloadProtectableItemResource properties + */ + properties?: WorkloadProtectableItem; +} + +/** + * Base class for backup item. Workload-specific backup items are derived from this class. + */ +@discriminator("protectableItemType") +model WorkloadProtectableItem { + /** + * Type of backup management to backup an item. + */ + backupManagementType?: string; + + /** + * Type of workload for the backup management + */ + workloadType?: string; + + /** + * Type of the backup item. + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + protectableItemType: string; + + /** + * Friendly name of the backup item. + */ + friendlyName?: string; + + /** + * State of the back up item. + */ + protectionState?: ProtectionStatus; +} + +/** + * List of ProtectionContainer resources + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ProtectionContainerResourceList extends ResourceList { + /** + * List of resources. + */ + @pageItems + value?: ProtectionContainerResource[]; +} + +/** + * Base class for get security pin request body + */ +model SecurityPinBase { + /** + * ResourceGuard Operation Requests + */ + resourceGuardOperationRequests?: string[]; +} + +/** + * The token information details. + */ +model TokenInformation { + /** + * Token value. + */ + token?: string; + + /** + * Expiry time of token. + */ + expiryTimeInUtcTicks?: int64; + + /** + * Security PIN + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + securityPIN?: string; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model MoveRPAcrossTiersRequest { + /** + * Gets the class type. + */ + objectType?: string; + + /** + * Source tier from where RP needs to be moved + */ + sourceTierType?: RecoveryPointTierType; + + /** + * Target tier where RP needs to be moved + */ + targetTierType?: RecoveryPointTierType; +} + +/** + * ListRecoveryPointsRecommendedForMoveRequest Request + */ +model ListRecoveryPointsRecommendedForMoveRequest { + /** + * Gets the class type. + */ + objectType?: string; + + /** + * List of Recovery Points excluded from Move + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + excludedRPList?: string[]; +} + +/** + * List of ResourceGuardProxyBase resources + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ResourceGuardProxyBaseResourceList extends ResourceList { + /** + * List of resources. + */ + @pageItems + value?: ResourceGuardProxyBaseResource[]; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ResourceGuardProxyBase { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + resourceGuardResourceId: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.extension("x-ms-identifiers", #[]) + resourceGuardOperationDetails?: ResourceGuardOperationDetail[]; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + lastUpdatedTime?: string; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + description?: string; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ResourceGuardOperationDetail { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + vaultCriticalOperation?: string; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + defaultResourceRequest?: string; +} + +/** + * Request body of unlock delete API. + */ +model UnlockDeleteRequest { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + resourceGuardOperationRequests?: string[]; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + resourceToBeDeleted?: string; +} + +/** + * Response of Unlock Delete API. + */ +model UnlockDeleteResponse { + /** + * This is the time when unlock delete privileges will get expired. + */ + unlockDeleteExpiryTime?: string; +} + +/** + * Base class for tiering cost request. + * Specific cost request types are derived from this class. + */ +@discriminator("objectType") +model FetchTieringCostInfoRequest { + /** + * Source tier for the request + */ + sourceTierType: RecoveryPointTierType; + + /** + * target tier for the request + */ + targetTierType: RecoveryPointTierType; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + objectType: string; +} + +/** + * Base class for tiering cost response + */ +@discriminator("objectType") +model TieringCostInfo { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + objectType: string; +} + +/** + * Azure File Share workload-specific backup item. + */ +model AzureFileshareProtectedItem extends ProtectedItem { + /** + * Friendly name of the fileshare represented by this backup item. + */ + friendlyName?: string; + + /** + * Backup status of this backup item. + */ + protectionStatus?: string; + + /** + * Backup state of this backup item. + */ + protectionState?: ProtectionState; + + /** + * Last backup operation status. Possible values: Healthy, Unhealthy. + */ + lastBackupStatus?: string; + + /** + * Timestamp of the last backup operation on this backup item. + */ + lastBackupTime?: utcDateTime; + + /** + * Health details of different KPIs + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + kpisHealths?: Record; + + /** + * Additional information with this backup item. + */ + extendedInfo?: AzureFileshareProtectedItemExtendedInfo; + + /** + * backup item type. + */ + protectedItemType: "AzureFileShareProtectedItem"; +} + +/** + * KPI Resource Health Details + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model KPIResourceHealthDetails { + /** + * Resource Health Status + */ + resourceHealthStatus?: ResourceHealthStatus; + + /** + * Resource Health Status + */ + @OpenAPI.extension("x-ms-identifiers", #["code"]) + resourceHealthDetails?: ResourceHealthDetails[]; +} + +/** + * Health Details for backup items. + */ +model ResourceHealthDetails { + /** + * Health Code + */ + @visibility(Lifecycle.Read) + code?: int32; + + /** + * Health Title + */ + @visibility(Lifecycle.Read) + title?: string; + + /** + * Health Message + */ + @visibility(Lifecycle.Read) + message?: string; + + /** + * Health Recommended Actions + */ + @visibility(Lifecycle.Read) + recommendations?: string[]; +} + +/** + * Additional information about Azure File Share backup item. + */ +model AzureFileshareProtectedItemExtendedInfo { + /** + * The oldest backup copy available for this item in the service. + */ + oldestRecoveryPoint?: utcDateTime; + + /** + * Number of available backup copies associated with this backup item. + */ + recoveryPointCount?: int32; + + /** + * Indicates consistency of policy object and policy applied to this backup item. + */ + policyState?: string; + + /** + * Indicates the state of this resource. Possible values are from enum ResourceState {Invalid, Active, SoftDeleted, Deleted} + */ + @visibility(Lifecycle.Read) + resourceState?: string; + + /** + * The resource state sync time for this backup item. + */ + @visibility(Lifecycle.Read) + resourceStateSyncTime?: utcDateTime; +} + +/** + * Azure File Share workload specific backup copy. + */ +model AzureFileShareRecoveryPoint extends RecoveryPoint { + /** + * Type of the backup copy. Specifies whether it is a crash consistent backup or app consistent. + */ + recoveryPointType?: string; + + /** + * Time at which this backup copy was created. + */ + recoveryPointTime?: utcDateTime; + + /** + * Contains Url to the snapshot of fileshare, if applicable + */ + fileShareSnapshotUri?: string; + + /** + * Contains recovery point size + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + recoveryPointSizeInGB?: int32; + + /** + * Properties of Recovery Point + */ + recoveryPointProperties?: RecoveryPointProperties; + + /** + * Recovery point tier information. + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + recoveryPointTierDetails?: RecoveryPointTierInformation[]; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureFileShareRecoveryPoint"; +} + +/** + * Properties of Recovery Point + */ +model RecoveryPointProperties { + /** + * Expiry time of Recovery Point in UTC. + */ + expiryTime?: string; + + /** + * Rule name tagged on Recovery Point that governs life cycle + */ + ruleName?: string; + + /** + * Bool to indicate whether RP is in soft delete state or not + */ + isSoftDeleted?: boolean; +} + +/** + * Recovery point tier information. + */ +model RecoveryPointTierInformation { + /** + * Recovery point tier type. + */ + type?: RecoveryPointTierType; + + /** + * Recovery point tier status. + */ + status?: RecoveryPointTierStatus; + + /** + * Recovery point tier status. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + extendedInfo?: Record; +} + +/** + * AzureFileShare Restore Request + */ +model AzureFileShareRestoreRequest extends RestoreRequest { + /** + * Type of this recovery. + */ + recoveryType?: RecoveryType; + + /** + * Source storage account ARM Id + */ + sourceResourceId?: string; + + /** + * Options to resolve copy conflicts. + */ + copyOptions?: CopyOptions; + + /** + * Restore Type (FullShareRestore or ItemLevelRestore) + */ + restoreRequestType?: RestoreRequestType; + + /** + * List of Source Files/Folders(which need to recover) and TargetFolderPath details + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + restoreFileSpecs?: RestoreFileSpecs[]; + + /** + * Target File Share Details + */ + targetDetails?: TargetAFSRestoreInfo; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureFileShareRestoreRequest"; +} + +/** + * Restore file specs like file path, type and target folder path info. + */ +model RestoreFileSpecs { + /** + * Source File/Folder path + */ + path?: string; + + /** + * Indicates what the Path variable stands for + */ + fileSpecType?: string; + + /** + * Destination folder path in target FileShare + */ + targetFolderPath?: string; +} + +/** + * Target Azure File Share Info. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model TargetAFSRestoreInfo { + /** + * File share name + */ + name?: string; + + /** + * Target file share resource ARM ID + */ + targetResourceId?: string; +} + +/** + * Azure VM (Mercury) workload-specific backup policy. + */ +model AzureVmWorkloadProtectionPolicy extends ProtectionPolicy { + /** + * Type of workload for the backup management + */ + workLoadType?: WorkloadType; + + /** + * Common settings for the backup management + */ + settings?: Settings; + + /** + * List of sub-protection policies which includes schedule and retention + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + subProtectionPolicy?: SubProtectionPolicy[]; + + /** + * Fix the policy inconsistency + */ + makePolicyConsistent?: boolean; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + backupManagementType: "AzureWorkload"; +} + +/** + * Common settings field for backup management + */ +model Settings { + /** + * TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". + */ + timeZone?: string; + + /** + * SQL compression flag + */ + issqlcompression?: boolean; + + /** + * Workload compression flag. This has been added so that 'isSqlCompression' + * will be deprecated once clients upgrade to consider this flag. + */ + isCompression?: boolean; +} + +/** + * Sub-protection policy which includes schedule and retention + */ +model SubProtectionPolicy { + /** + * Type of backup policy type + */ + policyType?: PolicyType; + + /** + * Backup schedule specified as part of backup policy. + */ + schedulePolicy?: SchedulePolicy; + + /** + * Retention policy with the details on backup copy retention ranges. + */ + retentionPolicy?: RetentionPolicy; + + /** + * Tiering policy to automatically move RPs to another tier. + * Key is Target Tier, defined in RecoveryPointTierType enum. + * Tiering policy specifies the criteria to move RP to the target tier. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tieringPolicy?: Record; + + /** + * Snapshot Backup related fields for WorkloadType SaPHanaSystem + */ + snapshotBackupAdditionalDetails?: SnapshotBackupAdditionalDetails; +} + +/** + * Base class for backup schedule. + */ +@discriminator("schedulePolicyType") +model SchedulePolicy { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + schedulePolicyType: string; +} + +/** + * Base class for retention policy. + */ +@discriminator("retentionPolicyType") +model RetentionPolicy { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + retentionPolicyType: string; +} + +/** + * Tiering Policy for a target tier. + * If the policy is not specified for a given target tier, service retains the existing configured tiering policy for that tier + */ +model TieringPolicy { + /** + * Tiering Mode to control automatic tiering of recovery points. Supported values are: + * 1. TierRecommended: Tier all recovery points recommended to be tiered + * 2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below. + * 3. DoNotTier: Do not tier any recovery points + */ + tieringMode?: TieringMode; + + /** + * Number of days/weeks/months/years to retain backups in current tier before tiering. + * Used only if TieringMode is set to TierAfter + */ + duration?: int32; + + /** + * Retention duration type: days/weeks/months/years + * Used only if TieringMode is set to TierAfter + */ + durationType?: RetentionDurationType; +} + +/** + * Snapshot Backup related fields for WorkloadType SaPHanaSystem + */ +model SnapshotBackupAdditionalDetails { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + instantRpRetentionRangeInDays?: int32; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + instantRPDetails?: string; + + /** + * User assigned managed identity details + */ + userAssignedManagedIdentityDetails?: UserAssignedManagedIdentityDetails; +} + +/** + * User assigned managed identity details + */ +model UserAssignedManagedIdentityDetails { + /** + * The ARM id of the assigned identity. + */ + identityArmId?: string; + + /** + * The name of the assigned identity. + */ + identityName?: string; + + /** + * User assigned managed identity properties + */ + userAssignedIdentityProperties?: UserAssignedIdentityProperties; +} + +/** + * User assigned managed identity properties + */ +model UserAssignedIdentityProperties { + /** + * The client ID of the assigned identity. + */ + clientId?: string; + + /** + * The principal ID of the assigned identity. + */ + principalId?: string; +} + +/** + * AzureStorage backup policy. + */ +model AzureFileShareProtectionPolicy extends ProtectionPolicy { + /** + * Type of workload for the backup management + */ + workLoadType?: WorkloadType; + + /** + * Backup schedule specified as part of backup policy. + */ + schedulePolicy?: SchedulePolicy; + + /** + * Retention policy with the details on backup copy retention ranges. + */ + retentionPolicy?: RetentionPolicy; + + /** + * Retention policy with the details on hardened backup copy retention ranges. + */ + vaultRetentionPolicy?: VaultRetentionPolicy; + + /** + * TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". + */ + timeZone?: string; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + backupManagementType: "AzureStorage"; +} + +/** + * Vault retention policy for AzureFileShare + */ +model VaultRetentionPolicy { + /** + * Base class for retention policy. + */ + vaultRetention: RetentionPolicy; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + snapshotRetentionInDays: int32; +} + +/** + * IaaS VM workload-specific backup item representing the Classic Compute VM. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureIaaSClassicComputeVMProtectedItem extends ProtectedItem { + /** + * backup item type. + */ + protectedItemType: "Microsoft.ClassicCompute/virtualMachines"; + + ...AzureIaaSVMProtectedItemProperties; +} + +alias AzureIaaSVMProtectedItemProperties = { + /** + * Friendly name of the VM represented by this backup item. + */ + @visibility(Lifecycle.Read) + friendlyName?: string; + + /** + * Fully qualified ARM ID of the virtual machine represented by this item. + */ + @visibility(Lifecycle.Read) + virtualMachineId?: string; + + /** + * Backup status of this backup item. + */ + protectionStatus?: string; + + /** + * Backup state of this backup item. + */ + protectionState?: ProtectionState; + + /** + * Health status of protected item. + */ + @visibility(Lifecycle.Read) + healthStatus?: HealthStatus; + + /** + * Health details on this backup item. + */ + @OpenAPI.extension("x-ms-identifiers", #["code"]) + healthDetails?: AzureIaaSVMHealthDetails[]; + + /** + * Health details of different KPIs + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + kpisHealths?: Record; + + /** + * Last backup operation status. + */ + lastBackupStatus?: string; + + /** + * Timestamp of the last backup operation on this backup item. + */ + @visibility(Lifecycle.Read) + lastBackupTime?: utcDateTime; + + /** + * Data ID of the protected item. + */ + @visibility(Lifecycle.Read) + protectedItemDataId?: string; + + /** + * Additional information for this backup item. + */ + extendedInfo?: AzureIaaSVMProtectedItemExtendedInfo; + + /** + * Extended Properties for Azure IaasVM Backup. + */ + extendedProperties?: ExtendedProperties; + + /** + * Type of the policy used for protection + */ + @visibility(Lifecycle.Read) + policyType?: string; +}; + +/** + * IaaS VM workload-specific backup item. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureIaaSVMProtectedItem extends ProtectedItem { + /** + * backup item type. + */ + protectedItemType: "AzureIaaSVMProtectedItem"; + + ...AzureIaaSVMProtectedItemProperties; +} + +/** + * Azure IaaS VM workload-specific Health Details. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-resource-manager/no-empty-model" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureIaaSVMHealthDetails extends ResourceHealthDetails {} + +/** + * Additional information on Azure IaaS VM specific backup item. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureIaaSVMProtectedItemExtendedInfo { + /** + * The oldest backup copy available for this backup item across all tiers. + */ + oldestRecoveryPoint?: utcDateTime; + + /** + * The oldest backup copy available for this backup item in vault tier + */ + oldestRecoveryPointInVault?: utcDateTime; + + /** + * The oldest backup copy available for this backup item in archive tier + */ + oldestRecoveryPointInArchive?: utcDateTime; + + /** + * The latest backup copy available for this backup item in archive tier + */ + newestRecoveryPointInArchive?: utcDateTime; + + /** + * Number of backup copies available for this backup item. + */ + recoveryPointCount?: int32; + + /** + * Specifies if backup policy associated with the backup item is inconsistent. + */ + policyInconsistent?: boolean; +} + +/** + * Extended Properties for Azure IaasVM Backup. + */ +model ExtendedProperties { + /** + * Extended Properties for Disk Exclusion. + */ + diskExclusionProperties?: DiskExclusionProperties; + + /** + * Linux VM name + */ + linuxVmApplicationName?: string; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model DiskExclusionProperties { + /** + * List of Disks' Logical Unit Numbers (LUN) to be used for VM Protection. + */ + diskLunList?: int32[]; + + /** + * Flag to indicate whether DiskLunList is to be included/ excluded from backup. + */ + isInclusionList?: boolean; +} + +/** + * IaaS VM workload-specific backup item representing the Azure Resource Manager VM. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureIaaSComputeVMProtectedItem extends ProtectedItem { + /** + * backup item type. + */ + protectedItemType: "Microsoft.Compute/virtualMachines"; + + ...AzureIaaSVMProtectedItemProperties; +} + +/** + * Azure IaaS VM workload-specific error information. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureIaaSVMErrorInfo { + /** + * Error code. + */ + @visibility(Lifecycle.Read) + errorCode?: int32; + + /** + * Title: Typically, the entity that the error pertains to. + */ + @visibility(Lifecycle.Read) + errorTitle?: string; + + /** + * Localized error string. + */ + @visibility(Lifecycle.Read) + errorString?: string; + + /** + * List of localized recommendations for above error code. + */ + @visibility(Lifecycle.Read) + recommendations?: string[]; +} + +/** + * Azure IaaS VM workload-specific job object. + */ +model AzureIaaSVMJob extends Job { + /** + * Time elapsed during the execution of this job. + */ + duration?: duration; + + /** + * Gets or sets the state/actions applicable on this job like cancel/retry. + */ + actionsInfo?: JobSupportedAction[]; + + /** + * Error details on execution of this job. + */ + @OpenAPI.extension("x-ms-identifiers", #["errorCode"]) + errorDetails?: AzureIaaSVMErrorInfo[]; + + /** + * Specifies whether the backup item is a Classic or an Azure Resource Manager VM. + */ + virtualMachineVersion?: string; + + /** + * Additional information for this job. + */ + extendedInfo?: AzureIaaSVMJobExtendedInfo; + + /** + * Container name of the entity on which the current job is executing. + */ + containerName?: string; + + /** + * Indicated that whether the job is adhoc(true) or scheduled(false) + */ + isUserTriggered?: boolean; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + jobType: "AzureIaaSVMJob"; +} + +/** + * Azure IaaS VM workload-specific additional information for job. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureIaaSVMJobExtendedInfo { + /** + * List of tasks associated with this job. + */ + @OpenAPI.extension("x-ms-identifiers", #["taskId"]) + tasksList?: AzureIaaSVMJobTaskDetails[]; + + /** + * Job properties. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + propertyBag?: Record; + + /** + * Job internal properties. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + internalPropertyBag?: Record; + + /** + * Indicates progress of the job. Null if it has not started or completed. + */ + progressPercentage?: float64; + + /** + * Time remaining for execution of this job. + */ + estimatedRemainingDuration?: string; + + /** + * Non localized error message on job execution. + */ + dynamicErrorMessage?: string; +} + +/** + * Azure IaaS VM workload-specific job task details. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureIaaSVMJobTaskDetails { + /** + * The task display name. + */ + taskId?: string; + + /** + * The start time. + */ + startTime?: utcDateTime; + + /** + * The end time. + */ + endTime?: utcDateTime; + + /** + * The instanceId. + */ + instanceId?: string; + + /** + * Time elapsed for task. + */ + duration?: duration; + + /** + * The status. + */ + status?: string; + + /** + * Progress of the task. + */ + progressPercentage?: float64; + + /** + * Details about execution of the task. + * eg: number of bytes transferred etc + */ + taskExecutionDetails?: string; +} + +/** + * Azure IaaS VM workload-specific job object. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureIaaSVMJobV2 extends Job { + /** + * Gets or sets the state/actions applicable on this job like cancel/retry. + */ + actionsInfo?: JobSupportedAction[]; + + /** + * Container name of the entity on which the current job is executing. + */ + containerName?: string; + + /** + * Time elapsed during the execution of this job. + */ + duration?: duration; + + /** + * Error details on execution of this job. + */ + @OpenAPI.extension("x-ms-identifiers", #["errorCode"]) + errorDetails?: AzureIaaSVMErrorInfo[]; + + /** + * Specifies whether the backup item is a Classic or an Azure Resource Manager VM. + */ + virtualMachineVersion?: string; + + /** + * Additional information for this job. + */ + extendedInfo?: AzureIaaSVMJobExtendedInfo; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + jobType: "AzureIaaSVMJobV2"; +} + +/** + * IaaS VM workload-specific backup policy. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureIaaSVMProtectionPolicy extends ProtectionPolicy { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + instantRPDetails?: InstantRPAdditionalDetails; + + /** + * Backup schedule specified as part of backup policy. + */ + schedulePolicy?: SchedulePolicy; + + /** + * Retention policy with the details on backup copy retention ranges. + */ + retentionPolicy?: RetentionPolicy; + + /** + * Tiering policy to automatically move RPs to another tier + * Key is Target Tier, defined in RecoveryPointTierType enum. + * Tiering policy specifies the criteria to move RP to the target tier. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tieringPolicy?: Record; + + /** + * Instant RP retention policy range in days + */ + instantRpRetentionRangeInDays?: int32; + + /** + * TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". + */ + timeZone?: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + policyType?: IAASVMPolicyType; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + snapshotConsistencyType?: IaasVMSnapshotConsistencyType; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + backupManagementType: "AzureIaasVM"; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model InstantRPAdditionalDetails { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + azureBackupRGNamePrefix?: string; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + azureBackupRGNameSuffix?: string; +} + +/** + * Azure SQL workload-specific backup item. + */ +model AzureSqlProtectedItem extends ProtectedItem { + /** + * Internal ID of a backup item. Used by Azure SQL Backup engine to contact Recovery Services. + */ + protectedItemDataId?: string; + + /** + * Backup state of the backed up item. + */ + protectionState?: ProtectedItemState; + + /** + * Additional information for this backup item. + */ + extendedInfo?: AzureSqlProtectedItemExtendedInfo; + + /** + * backup item type. + */ + protectedItemType: "Microsoft.Sql/servers/databases"; +} + +/** + * Additional information on Azure Sql specific protected item. + */ +model AzureSqlProtectedItemExtendedInfo { + /** + * The oldest backup copy available for this item in the service. + */ + oldestRecoveryPoint?: utcDateTime; + + /** + * Number of available backup copies associated with this backup item. + */ + recoveryPointCount?: int32; + + /** + * State of the backup policy associated with this backup item. + */ + policyState?: string; +} + +/** + * Azure storage specific error information + */ +model AzureStorageErrorInfo { + /** + * Error code. + */ + errorCode?: int32; + + /** + * Localized error string. + */ + errorString?: string; + + /** + * List of localized recommendations for above error code. + */ + recommendations?: string[]; +} + +/** + * Azure SQL workload-specific backup policy. + */ +model AzureSqlProtectionPolicy extends ProtectionPolicy { + /** + * Retention policy details. + */ + retentionPolicy?: RetentionPolicy; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + backupManagementType: "AzureSql"; +} + +/** + * Azure storage specific job. + */ +model AzureStorageJob extends Job { + /** + * Time elapsed during the execution of this job. + */ + duration?: duration; + + /** + * Gets or sets the state/actions applicable on this job like cancel/retry. + */ + actionsInfo?: JobSupportedAction[]; + + /** + * Error details on execution of this job. + */ + @OpenAPI.extension("x-ms-identifiers", #["errorCode"]) + errorDetails?: AzureStorageErrorInfo[]; + + /** + * Specifies friendly name of the storage account. + */ + storageAccountName?: string; + + /** + * Specifies whether the Storage account is a Classic or an Azure Resource Manager Storage account. + */ + storageAccountVersion?: string; + + /** + * Additional information about the job. + */ + extendedInfo?: AzureStorageJobExtendedInfo; + + /** + * Indicated that whether the job is adhoc(true) or scheduled(false) + */ + isUserTriggered?: boolean; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + jobType: "AzureStorageJob"; +} + +/** + * Azure Storage workload-specific additional information for job. + */ +model AzureStorageJobExtendedInfo { + /** + * List of tasks for this job + */ + @OpenAPI.extension("x-ms-identifiers", #["taskId"]) + tasksList?: AzureStorageJobTaskDetails[]; + + /** + * Job properties. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + propertyBag?: Record; + + /** + * Non localized error message on job execution. + */ + dynamicErrorMessage?: string; +} + +/** + * Azure storage workload specific job task details. + */ +model AzureStorageJobTaskDetails { + /** + * The task display name. + */ + taskId?: string; + + /** + * The status. + */ + status?: string; +} + +alias AzureVmWorkloadProtectedItemProperties = { + /** + * Friendly name of the DB represented by this backup item. + */ + @visibility(Lifecycle.Read) + friendlyName?: string; + + /** + * Host/Cluster Name for instance or AG + */ + serverName?: string; + + /** + * Parent name of the DB such as Instance or Availability Group. + */ + parentName?: string; + + /** + * Parent type of protected item, example: for a DB, standalone server or distributed + */ + parentType?: string; + + /** + * Backup status of this backup item. + */ + @visibility(Lifecycle.Read) + protectionStatus?: string; + + /** + * Backup state of this backup item. + */ + protectionState?: ProtectionState; + + /** + * Last backup operation status. Possible values: Healthy, Unhealthy. + */ + lastBackupStatus?: LastBackupStatus; + + /** + * Timestamp of the last backup operation on this backup item. + */ + lastBackupTime?: utcDateTime; + + /** + * Error details in last backup + */ + lastBackupErrorDetail?: ErrorDetail; + + /** + * Data ID of the protected item. + */ + protectedItemDataSourceId?: string; + + /** + * Health status of the backup item, evaluated based on last heartbeat received + */ + protectedItemHealthStatus?: ProtectedItemHealthStatus; + + /** + * Additional information for this backup item. + */ + extendedInfo?: AzureVmWorkloadProtectedItemExtendedInfo; + + /** + * Health details of different KPIs + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + kpisHealths?: Record; + + /** + * List of the nodes in case of distributed container. + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + nodesList?: DistributedNodesInfo[]; +}; +/** + * Azure VM workload-specific protected item. + */ +model AzureVmWorkloadProtectedItem extends ProtectedItem { + /** + * backup item type. + */ + protectedItemType: "AzureVmWorkloadProtectedItem"; + + ...AzureVmWorkloadProtectedItemProperties; +} + +/** + * Additional information on Azure Workload for SQL specific backup item. + */ +model AzureVmWorkloadProtectedItemExtendedInfo { + /** + * The oldest backup copy available for this backup item across all tiers. + */ + oldestRecoveryPoint?: utcDateTime; + + /** + * The oldest backup copy available for this backup item in vault tier + */ + oldestRecoveryPointInVault?: utcDateTime; + + /** + * The oldest backup copy available for this backup item in archive tier + */ + oldestRecoveryPointInArchive?: utcDateTime; + + /** + * The latest backup copy available for this backup item in archive tier + */ + newestRecoveryPointInArchive?: utcDateTime; + + /** + * Number of backup copies available for this backup item. + */ + recoveryPointCount?: int32; + + /** + * Indicates consistency of policy object and policy applied to this backup item. + */ + policyState?: string; + + /** + * Indicates consistency of policy object and policy applied to this backup item. + */ + recoveryModel?: string; +} + +/** + * This is used to represent the various nodes of the distributed container. + */ +model DistributedNodesInfo { + /** + * Name of the node under a distributed container. + */ + nodeName?: string; + + /** + * Status of this Node. + * Failed | Succeeded + */ + status?: string; + + /** + * Error Details if the Status is non-success. + */ + errorDetail?: ErrorDetail; + + /** + * ARM resource id of the node + */ + sourceResourceId?: string; +} + +/** + * Azure VM workload-specific protected item representing SAP ASE Database. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVmWorkloadSAPAseDatabaseProtectedItem extends ProtectedItem { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + protectedItemType: "AzureVmWorkloadSAPAseDatabase"; + + ...AzureVmWorkloadProtectedItemProperties; +} + +/** + * Azure VM workload-specific protected item representing SAP HANA Database. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVmWorkloadSAPHanaDatabaseProtectedItem extends ProtectedItem { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + protectedItemType: "AzureVmWorkloadSAPHanaDatabase"; + + ...AzureVmWorkloadProtectedItemProperties; +} + +/** + * Azure VM workload-specific protected item representing SAP HANA DBInstance. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVmWorkloadSAPHanaDBInstanceProtectedItem extends ProtectedItem { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + protectedItemType: "AzureVmWorkloadSAPHanaDBInstance"; + + ...AzureVmWorkloadProtectedItemProperties; +} + +/** + * Azure VM workload-specific protected item representing SQL Database. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVmWorkloadSQLDatabaseProtectedItem extends ProtectedItem { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + protectedItemType: "AzureVmWorkloadSQLDatabase"; + + ...AzureVmWorkloadProtectedItemProperties; +} + +/** + * Azure storage specific error information + */ +model AzureWorkloadErrorInfo { + /** + * Error code. + */ + errorCode?: int32; + + /** + * Localized error string. + */ + errorString?: string; + + /** + * Title: Typically, the entity that the error pertains to. + */ + errorTitle?: string; + + /** + * List of localized recommendations for above error code. + */ + recommendations?: string[]; + + /** + * Additional details for above error code. + */ + additionalDetails?: string; +} + +/** + * Azure storage specific job. + */ +model AzureWorkloadJob extends Job { + /** + * Workload type of the job + */ + workloadType?: string; + + /** + * Time elapsed during the execution of this job. + */ + duration?: duration; + + /** + * Gets or sets the state/actions applicable on this job like cancel/retry. + */ + actionsInfo?: JobSupportedAction[]; + + /** + * Error details on execution of this job. + */ + @OpenAPI.extension("x-ms-identifiers", #["errorCode"]) + errorDetails?: AzureWorkloadErrorInfo[]; + + /** + * Additional information about the job. + */ + extendedInfo?: AzureWorkloadJobExtendedInfo; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + jobType: "AzureWorkloadJob"; +} + +/** + * Azure VM workload-specific additional information for job. + */ +model AzureWorkloadJobExtendedInfo { + /** + * List of tasks for this job + */ + @OpenAPI.extension("x-ms-identifiers", #["taskId"]) + tasksList?: AzureWorkloadJobTaskDetails[]; + + /** + * Job properties. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + propertyBag?: Record; + + /** + * Non localized error message on job execution. + */ + dynamicErrorMessage?: string; +} + +/** + * Azure VM workload specific job task details. + */ +model AzureWorkloadJobTaskDetails { + /** + * The task display name. + */ + taskId?: string; + + /** + + * The status. + */ + status?: string; +} + +alias AzureWorkloadPointInTimeRecoveryPointProperties = { + /** + * List of log ranges + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + timeRanges?: PointInTimeRange[]; +}; + +/** + * Recovery point specific to PointInTime + */ +model AzureWorkloadPointInTimeRecoveryPoint extends RecoveryPoint { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadPointInTimeRecoveryPoint"; + + ...AzureWorkloadRecoveryPointProperties; + ...AzureWorkloadPointInTimeRecoveryPointProperties; +} + +/** + * Provides details for log ranges + */ +model PointInTimeRange { + /** + * Start time of the time range for log recovery. + */ + startTime?: utcDateTime; + + /** + * End time of the time range for log recovery. + */ + endTime?: utcDateTime; +} + +alias AzureWorkloadRecoveryPointProperties = { + /** + * UTC time at which recovery point was created + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + recoveryPointTimeInUTC?: utcDateTime; + + /** + * Type of restore point + */ + type?: RestorePointType; + + /** + * Recovery point tier information. + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + recoveryPointTierDetails?: RecoveryPointTierInformationV2[]; + + /** + * Eligibility of RP to be moved to another tier + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + recoveryPointMoveReadinessInfo?: Record; + + /** + * Properties of Recovery Point + */ + recoveryPointProperties?: RecoveryPointProperties; +}; + +/** + * Workload specific recovery point, specifically encapsulates full/diff recovery point + */ +model AzureWorkloadRecoveryPoint extends RecoveryPoint { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadRecoveryPoint"; + + ...AzureWorkloadRecoveryPointProperties; +} + +/** + * RecoveryPoint Tier Information V2 + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model RecoveryPointTierInformationV2 extends RecoveryPointTierInformation { + /** + * Recovery point tier type. + */ + type?: RecoveryPointTierType; + + /** + * Recovery point tier status. + */ + status?: RecoveryPointTierStatus; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model RecoveryPointMoveReadinessInfo { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + isReadyForMove?: boolean; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + additionalInfo?: string; +} + +/** + * AzureWorkload SAP Hana -specific restore. Specifically for PointInTime/Log restore + */ +model AzureWorkloadPointInTimeRestoreRequest extends RestoreRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadPointInTimeRestoreRequest"; + + /** + * PointInTime value + */ + pointInTime?: utcDateTime; + + ...AzureWorkloadRestoreRequestProperties; +} + +alias AzureWorkloadRestoreRequestProperties = { + /** + * Type of this recovery. + */ + recoveryType?: RecoveryType; + + /** + * Fully qualified ARM ID of the VM on which workload that was running is being recovered. + */ + sourceResourceId?: string; + + /** + * Workload specific property bag. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + propertyBag?: Record; + + /** + * Details of target database + */ + targetInfo?: TargetRestoreInfo; + + /** + * Defines whether the current recovery mode is file restore or database restore + */ + recoveryMode?: RecoveryMode; + + /** + * Defines the Resource group of the Target VM + */ + targetResourceGroupName?: string; + + /** + * User Assigned managed identity details + * Currently used for snapshot. + */ + userAssignedManagedIdentityDetails?: UserAssignedManagedIdentityDetails; + + /** + * Additional details for snapshot recovery + * Currently used for snapshot for SAP Hana. + */ + snapshotRestoreParameters?: SnapshotRestoreParameters; + + /** + * This is the complete ARM Id of the target VM + * For e.g. /subscriptions/{subId}/resourcegroups/{rg}/provider/Microsoft.Compute/virtualmachines/{vm} + */ + targetVirtualMachineId?: string; +}; + +/** + * AzureWorkload-specific restore. + */ +model AzureWorkloadRestoreRequest extends RestoreRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadRestoreRequest"; + + ...AzureWorkloadRestoreRequestProperties; +} + +/** + * Details about target workload during restore operation. + */ +model TargetRestoreInfo { + /** + * Can Overwrite if Target DataBase already exists + */ + overwriteOption?: OverwriteOptions; + + /** + * Resource Id name of the container in which Target DataBase resides + */ + containerId?: string; + + /** + * Database name InstanceName/DataBaseName for SQL or System/DbName for SAP Hana + */ + databaseName?: string; + + /** + * Target directory location for restore as files. + */ + targetDirectoryForFileRestore?: string; +} + +/** + * Encapsulates information regarding snapshot recovery for SAP Hana + */ +model SnapshotRestoreParameters { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + skipAttachAndMount?: boolean; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + logPointInTimeForDBRecovery?: string; +} + +/** + * Recovery point specific to PointInTime in SAPHana + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureWorkloadSAPHanaPointInTimeRecoveryPoint extends RecoveryPoint { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadSAPHanaPointInTimeRecoveryPoint"; + + ...AzureWorkloadRecoveryPointProperties; + ...AzureWorkloadPointInTimeRecoveryPointProperties; +} + +alias AzureWorkloadSAPHanaPointInTimeRestoreRequestProperties = { + /** + * PointInTime value + */ + pointInTime?: utcDateTime; +}; + +/** + * AzureWorkload SAP Hana -specific restore. Specifically for PointInTime/Log restore + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureWorkloadSAPHanaPointInTimeRestoreRequest extends RestoreRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadSAPHanaPointInTimeRestoreRequest"; + + ...AzureWorkloadSAPHanaPointInTimeRestoreRequestProperties; + ...AzureWorkloadRestoreRequestProperties; +} + +/** + * AzureWorkload SAP Hana-specific restore. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureWorkloadSAPHanaRestoreRequest extends RestoreRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadSAPHanaRestoreRequest"; + + ...AzureWorkloadRestoreRequestProperties; +} + +/** + * SAPHana specific recoverypoint, specifically encapsulates full/diff recoverypoints + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureWorkloadSAPHanaRecoveryPoint extends RecoveryPoint { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadSAPHanaRecoveryPoint"; + + ...AzureWorkloadRecoveryPointProperties; +} + +/** + * Recovery point specific to PointInTime in SAPAse + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureWorkloadSAPAsePointInTimeRecoveryPoint extends RecoveryPoint { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadSAPAsePointInTimeRecoveryPoint"; + + ...AzureWorkloadRecoveryPointProperties; + ...AzureWorkloadPointInTimeRecoveryPointProperties; +} + +/** + * AzureWorkload SAP Ase-specific restore. Specifically for PointInTime/Log restore + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureWorkloadSAPAsePointInTimeRestoreRequest extends RestoreRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadSAPAsePointInTimeRestoreRequest"; + + /** + * PointInTime value + */ + pointInTime?: utcDateTime; + + ...AzureWorkloadRestoreRequestProperties; +} + +/** + * AzureWorkload SAP Ase-specific restore. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureWorkloadSAPAseRestoreRequest extends RestoreRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadSAPAseRestoreRequest"; + + ...AzureWorkloadRestoreRequestProperties; +} + +/** + * SAPAse specific recoverypoint, specifically encapsulates full/diff recoverypoints + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureWorkloadSAPAseRecoveryPoint extends RecoveryPoint { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadSAPAseRecoveryPoint"; + + ...AzureWorkloadRecoveryPointProperties; +} + +/** + * Recovery point specific to PointInTime + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureWorkloadSQLPointInTimeRecoveryPoint extends RecoveryPoint { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadSQLPointInTimeRecoveryPoint"; + + /** + * List of log ranges + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + timeRanges?: PointInTimeRange[]; + + ...AzureWorkloadSQLRecoveryPointProperties; + ...AzureWorkloadRecoveryPointProperties; +} + +alias AzureWorkloadSQLRecoveryPointProperties = { + /** + * Extended Info that provides data directory details. Will be populated in two cases: + * When a specific recovery point is accessed using GetRecoveryPoint + * Or when ListRecoveryPoints is called for Log RP only with ExtendedInfo query filter + */ + extendedInfo?: AzureWorkloadSQLRecoveryPointExtendedInfo; +}; + +/** + * SQL specific recoverypoint, specifically encapsulates full/diff recoverypoint along with extended info + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureWorkloadSQLRecoveryPoint extends RecoveryPoint { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadSQLRecoveryPoint"; + + ...AzureWorkloadSQLRecoveryPointProperties; + ...AzureWorkloadRecoveryPointProperties; +} + +/** + * Extended info class details + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureWorkloadSQLRecoveryPointExtendedInfo { + /** + * UTC time at which data directory info was captured + */ + dataDirectoryTimeInUTC?: utcDateTime; + + /** + * List of data directory paths during restore operation. + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + dataDirectoryPaths?: SQLDataDirectory[]; +} + +/** + * SQLDataDirectory info + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model SQLDataDirectory { + /** + * Type of data directory mapping + */ + type?: SQLDataDirectoryType; + + /** + * File path + */ + path?: string; + + /** + * Logical name of the file + */ + logicalName?: string; +} + +alias AzureWorkloadSQLPointInTimeRestoreRequestProperties = { + /** + * PointInTime value + */ + pointInTime?: utcDateTime; +}; + +/** + * AzureWorkload SQL -specific restore. Specifically for PointInTime/Log restore + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureWorkloadSQLPointInTimeRestoreRequest extends RestoreRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadSQLPointInTimeRestoreRequest"; + + ...AzureWorkloadSQLPointInTimeRestoreRequestProperties; + ...AzureWorkloadSQLRestoreRequestProperties; + ...AzureWorkloadRestoreRequestProperties; +} + +alias AzureWorkloadSQLRestoreRequestProperties = { + /** + * Default option set to true. If this is set to false, alternate data directory must be provided + */ + shouldUseAlternateTargetLocation?: boolean; + + /** + * SQL specific property where user can chose to set no-recovery when restore operation is tried + */ + isNonRecoverable?: boolean; + + /** + * Data directory details + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + alternateDirectoryPaths?: SQLDataDirectoryMapping[]; +}; + +/** + * AzureWorkload SQL -specific restore. Specifically for full/diff restore + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureWorkloadSQLRestoreRequest extends RestoreRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadSQLRestoreRequest"; + + ...AzureWorkloadSQLRestoreRequestProperties; + ...AzureWorkloadRestoreRequestProperties; +} + +/** + * Encapsulates information regarding data directory + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model SQLDataDirectoryMapping { + /** + * Type of data directory mapping + */ + mappingType?: SQLDataDirectoryType; + + /** + * Restore source logical name path + */ + sourceLogicalName?: string; + + /** + * Restore source path + */ + sourcePath?: string; + + /** + * Target path + */ + targetPath?: string; +} + +/** + * BEK is bitlocker encryption key. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BEKDetails { + /** + * Secret is BEK. + */ + secretUrl?: string; + + /** + * ID of the Key Vault where this Secret is stored. + */ + secretVaultId?: string; + + /** + * BEK data. + */ + secretData?: string; +} + +/** + * Filters to list backup copies. + */ +model BmsrpQueryObject { + /** + * Backup copies created after this time. + */ + startDate?: utcDateTime; + + /** + * Backup copies created before this time. + */ + endDate?: utcDateTime; + + /** + * RestorePoint type + */ + restorePointQueryType?: RestorePointQueryType; + + /** + * In Get Recovery Point, it tells whether extended information about recovery point is asked. + */ + extendedInfo?: boolean; + + /** + * Whether the RP can be moved to another tier + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + moveReadyRPOnly?: boolean; + + /** + * Flag to indicate whether Soft Deleted RPs should be included/excluded from result. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + includeSoftDeletedRP?: boolean; +} + +/** + * Disk information + */ +model DiskInformation { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + lun?: int32; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + name?: string; +} + +/** + * Daily retention format. + */ +model DailyRetentionFormat { + /** + * List of days of the month. + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + daysOfTheMonth?: Day[]; +} + +/** + * Day of the week. + */ +model Day { + /** + * Date of the month + */ + date?: int32; + + /** + * Whether Date is last date of month + */ + isLast?: boolean; +} + +/** + * Daily retention schedule. + */ +model DailyRetentionSchedule { + /** + * Retention times of retention policy. + */ + retentionTimes?: utcDateTime[]; + + /** + * Retention duration of retention Policy. + */ + retentionDuration?: RetentionDuration; +} + +/** + * Retention duration. + */ +model RetentionDuration { + /** + * Count of duration types. Retention duration is obtained by the counting the duration type Count times. + * For example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks. + */ + count?: int32; + + /** + * Retention duration type of retention policy. + */ + durationType?: RetentionDurationType; +} + +/** + * DPM workload-specific error information. + */ +model DpmErrorInfo { + /** + * Localized error string. + */ + errorString?: string; + + /** + * List of localized recommendations for above error code. + */ + recommendations?: string[]; +} + +/** + * DPM workload-specific job object. + */ +model DpmJob extends Job { + /** + * Time elapsed for job. + */ + duration?: duration; + + /** + * DPM server name managing the backup item or backup job. + */ + dpmServerName?: string; + + /** + * Name of cluster/server protecting current backup item, if any. + */ + containerName?: string; + + /** + * Type of container. + */ + containerType?: string; + + /** + * Type of backup item. + */ + workloadType?: string; + + /** + * The state/actions applicable on this job like cancel/retry. + */ + actionsInfo?: JobSupportedAction[]; + + /** + * The errors. + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + errorDetails?: DpmErrorInfo[]; + + /** + * Additional information for this job. + */ + extendedInfo?: DpmJobExtendedInfo; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + jobType: "DpmJob"; +} + +/** + * Additional information on the DPM workload-specific job. + */ +model DpmJobExtendedInfo { + /** + * List of tasks associated with this job. + */ + @OpenAPI.extension("x-ms-identifiers", #["taskId"]) + tasksList?: DpmJobTaskDetails[]; + + /** + * The job properties. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + propertyBag?: Record; + + /** + * Non localized error message on job execution. + */ + dynamicErrorMessage?: string; +} + +/** + * DPM workload-specific job task details. + */ +model DpmJobTaskDetails { + /** + * The task display name. + */ + taskId?: string; + + /** + * The start time. + */ + startTime?: utcDateTime; + + /** + * The end time. + */ + endTime?: utcDateTime; + + /** + * Time elapsed for task. + */ + duration?: duration; + + /** + * The status. + */ + status?: string; +} + +/** + * Additional information on Backup engine specific backup item. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model DPMProtectedItem extends ProtectedItem { + /** + * Friendly name of the managed item + */ + friendlyName?: string; + + /** + * Backup Management server protecting this backup item + */ + backupEngineName?: string; + + /** + * Protection state of the backup engine + */ + protectionState?: ProtectedItemState; + + /** + * Extended info of the backup item. + */ + extendedInfo?: DPMProtectedItemExtendedInfo; + + /** + * backup item type. + */ + protectedItemType: "DPMProtectedItem"; +} + +/** + * Additional information of DPM Protected item. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model DPMProtectedItemExtendedInfo { + /** + * Attribute to provide information on various DBs. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + protectableObjectLoadPath?: Record; + + /** + * To check if backup item is disk protected. + */ + protected?: boolean; + + /** + * To check if backup item is cloud protected. + */ + isPresentOnCloud?: boolean; + + /** + * Last backup status information on backup item. + */ + lastBackupStatus?: string; + + /** + * Last refresh time on backup item. + */ + lastRefreshedAt?: utcDateTime; + + /** + * Oldest cloud recovery point time. + */ + oldestRecoveryPoint?: utcDateTime; + + /** + * cloud recovery point count. + */ + recoveryPointCount?: int32; + + /** + * Oldest disk recovery point time. + */ + onPremiseOldestRecoveryPoint?: utcDateTime; + + /** + * latest disk recovery point time. + */ + onPremiseLatestRecoveryPoint?: utcDateTime; + + /** + * disk recovery point count. + */ + onPremiseRecoveryPointCount?: int32; + + /** + * To check if backup item is collocated. + */ + isCollocated?: boolean; + + /** + * Protection group name of the backup item. + */ + protectionGroupName?: string; + + /** + * Used Disk storage in bytes. + */ + diskStorageUsedInBytes?: string; + + /** + * total Disk storage in bytes. + */ + totalDiskStorageSizeInBytes?: string; +} + +/** + * Details needed if the VM was encrypted at the time of backup. + */ +model EncryptionDetails { + /** + * Identifies whether this backup copy represents an encrypted VM at the time of backup. + */ + encryptionEnabled?: boolean; + + /** + * Key Url. + */ + kekUrl?: string; + + /** + * Secret Url. + */ + secretKeyUrl?: string; + + /** + * ID of Key Vault where KEK is stored. + */ + kekVaultId?: string; + + /** + * ID of Key Vault where Secret is stored. + */ + secretKeyVaultId?: string; +} + +/** + * This class is used to send blob details after exporting jobs. + */ +model ExportJobsOperationResultInfo extends OperationResultInfoBase { + /** + * URL of the blob into which the serialized string of list of jobs is exported. + */ + blobUrl?: string; + + /** + * SAS key to access the blob. It expires in 15 mins. + */ + blobSasKey?: string; + + /** + * URL of the blob into which the ExcelFile is uploaded. + */ + excelFileBlobUrl?: string; + + /** + * SAS key to access the blob. It expires in 15 mins. + */ + excelFileBlobSasKey?: string; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "ExportJobsOperationResultInfo"; +} + +/** + * Azure VM (Mercury) workload-specific backup policy. + */ +model GenericProtectionPolicy extends ProtectionPolicy { + /** + * List of sub-protection policies which includes schedule and retention + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + subProtectionPolicy?: SubProtectionPolicy[]; + + /** + * TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". + */ + timeZone?: string; + + /** + * Name of this policy's fabric. + */ + fabricName?: string; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + backupManagementType: "GenericProtectionPolicy"; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model HourlySchedule { + /** + * Interval at which backup needs to be triggered. For hourly the value + * can be 4/6/8/12 + */ + interval?: int32; + + /** + * To specify start time of the backup window + */ + scheduleWindowStartTime?: utcDateTime; + + /** + * To specify duration of the backup window + */ + scheduleWindowDuration?: int32; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model DailySchedule { + /** + * List of times of day this schedule has to be run. + */ + scheduleRunTimes?: utcDateTime[]; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model WeeklySchedule { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + scheduleRunDays?: DayOfWeek[]; + + /** + * List of times of day this schedule has to be run. + */ + scheduleRunTimes?: utcDateTime[]; +} + +/** + * IaaS VM workload specific restore details for restores using managed identity + */ +model IdentityBasedRestoreDetails { + /** + * Gets the class type. + */ + objectType?: string; + + /** + * Fully qualified ARM ID of the target storage account. + */ + targetStorageAccountId?: string; +} + +/** + * Encapsulates Managed Identity related information + */ +model IdentityInfo { + /** + * To differentiate if the managed identity is system assigned or user assigned + */ + isSystemAssignedIdentity?: boolean; + + /** + * Managed Identity Resource Id + * Optional: Might not be required in the case of system assigned managed identity + */ + managedIdentityResourceId?: string; +} + +/** + * Base class for backup items. + */ +model GenericProtectedItem extends ProtectedItem { + /** + * Friendly name of the container. + */ + friendlyName?: string; + + /** + * Indicates consistency of policy object and policy applied to this backup item. + */ + policyState?: string; + + /** + * Backup state of this backup item. + */ + protectionState?: ProtectionState; + + /** + * Data Plane Service ID of the protected item. + */ + protectedItemId?: int64; + + /** + * Loosely coupled (type, value) associations (example - parent of a protected item) + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + sourceAssociations?: Record; + + /** + * Name of this backup item's fabric. + */ + fabricName?: string; + + /** + * backup item type. + */ + protectedItemType: "GenericProtectedItem"; +} + +/** + * Generic backup copy. + */ +model GenericRecoveryPoint extends RecoveryPoint { + /** + * Friendly name of the backup copy. + */ + friendlyName?: string; + + /** + * Type of the backup copy. + */ + recoveryPointType?: string; + + /** + * Time at which this backup copy was created. + */ + recoveryPointTime?: utcDateTime; + + /** + * Additional information associated with this backup copy. + */ + recoveryPointAdditionalInfo?: string; + + /** + * Properties of Recovery Point + */ + recoveryPointProperties?: RecoveryPointProperties; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "GenericRecoveryPoint"; +} + +/** + * Filters to list backup items. + */ +model GetProtectedItemQueryObject { + /** + * Specifies if the additional information should be provided for this item. + */ + expand?: string; +} + +/** + * IaaS VM workload specific backup copy. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model IaasVMRecoveryPoint extends RecoveryPoint { + /** + * Type of the backup copy. + */ + recoveryPointType?: string; + + /** + * Time at which this backup copy was created. + */ + recoveryPointTime?: utcDateTime; + + /** + * Additional information associated with this backup copy. + */ + recoveryPointAdditionalInfo?: string; + + /** + * Storage type of the VM whose backup copy is created. + */ + sourceVMStorageType?: string; + + /** + * Identifies whether the VM was encrypted when the backup copy is created. + */ + isSourceVMEncrypted?: boolean; + + /** + * Required details for recovering an encrypted VM. Applicable only when IsSourceVMEncrypted is true. + */ + keyAndSecret?: KeyAndSecretDetails; + + /** + * Is the session to recover items from this backup copy still active. + */ + isInstantIlrSessionActive?: boolean; + + /** + * Recovery point tier information. + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + recoveryPointTierDetails?: RecoveryPointTierInformationV2[]; + + /** + * Whether VM is with Managed Disks + */ + isManagedVirtualMachine?: boolean; + + /** + * Virtual Machine Size + */ + virtualMachineSize?: string; + + /** + * Original Storage Account Option + */ + originalStorageAccountOption?: boolean; + + /** + * OS type + */ + osType?: string; + + /** + * Disk configuration + */ + recoveryPointDiskConfiguration?: RecoveryPointDiskConfiguration; + + /** + * Identifies the zone of the VM at the time of backup. Applicable only for zone-pinned Vms + */ + zones?: string[]; + + /** + * Eligibility of RP to be moved to another tier + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + recoveryPointMoveReadinessInfo?: Record; + + /** + * Security Type of the Disk + */ + securityType?: string; + + /** + * Properties of Recovery Point + */ + recoveryPointProperties?: RecoveryPointProperties; + + /** + * This flag denotes if any of the disks in the VM are using Private access network setting + */ + isPrivateAccessEnabledOnAnyDisk?: boolean; + + /** + * Extended location of the VM recovery point, + * should be null if VM is in public cloud + */ + extendedLocation?: ExtendedLocation; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "IaasVMRecoveryPoint"; +} + +/** + * BEK is bitlocker key. + * KEK is encryption key for BEK + * If the VM was encrypted then we will store following details : + * 1. Secret(BEK) - Url + Backup Data + vaultId. + * 2. Key(KEK) - Url + Backup Data + vaultId. + * 3. EncryptionMechanism + * BEK and KEK can potentially have different vault ids. + */ +model KeyAndSecretDetails { + /** + * KEK is encryption key for BEK. + */ + kekDetails?: KEKDetails; + + /** + * BEK is bitlocker encryption key. + */ + bekDetails?: BEKDetails; + + /** + * Encryption mechanism: None/ SinglePass/ DoublePass + */ + encryptionMechanism?: string; +} + +/** + * KEK is encryption key for BEK. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model KEKDetails { + /** + * Key is KEK. + */ + keyUrl?: string; + + /** + * Key Vault ID where this Key is stored. + */ + keyVaultId?: string; + + /** + * KEK data. + */ + keyBackupData?: string; +} + +/** + * Disk configuration + */ +model RecoveryPointDiskConfiguration { + /** + * Number of disks included in backup + */ + numberOfDisksIncludedInBackup?: int32; + + /** + * Number of disks attached to the VM + */ + numberOfDisksAttachedToVm?: int32; + + /** + * Information of disks included in backup + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + includedDiskList?: DiskInformation[]; + + /** + * Information of disks excluded from backup + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + excludedDiskList?: DiskInformation[]; +} + +/** + * The extended location of Recovery point where VM was present. + */ +model ExtendedLocation { + /** + * Name of the extended location. + */ + name?: string; + + /** + * Type of the extended location. Possible values include: 'EdgeZone' + */ + type?: string; +} + +/** + * Restore request parameters for Secured VMs + */ +model SecuredVMDetails { + /** + * Gets or Sets Disk Encryption Set Id for Secured VM OS Disk + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + securedVMOsDiskEncryptionSetId?: string; +} + +/** + * Specifies target network access settings for disks of VM to be restored. + */ +model TargetDiskNetworkAccessSettings { + /** + * Network access settings to be used for restored disks + */ + targetDiskNetworkAccessOption?: TargetDiskNetworkAccessOption; + + /** + * Gets or sets the ARM resource ID of the target disk access to be used when TargetDiskNetworkAccessOption is set to TargetDiskNetworkAccessOption.UseNew + */ + targetDiskAccessId?: string; +} + +alias IaasVMRestoreRequestProperties = { + /** + * ID of the backup copy to be recovered. + */ + recoveryPointId?: string; + + /** + * Type of this recovery. + */ + recoveryType?: RecoveryType; + + /** + * Fully qualified ARM ID of the VM which is being recovered. + */ + sourceResourceId?: string; + + /** + * This is the complete ARM Id of the VM that will be created. + * For e.g. /subscriptions/{subId}/resourcegroups/{rg}/provider/Microsoft.Compute/virtualmachines/{vm} + */ + targetVirtualMachineId?: string; + + /** + * This is the ARM Id of the resource group that you want to create for this Virtual machine and other artifacts. + * For e.g. /subscriptions/{subId}/resourcegroups/{rg} + */ + targetResourceGroupId?: string; + + /** + * Fully qualified ARM ID of the storage account to which the VM has to be restored. + */ + storageAccountId?: string; + + /** + * This is the virtual network Id of the vnet that will be attached to the virtual machine. + * User will be validated for join action permissions in the linked access. + */ + virtualNetworkId?: string; + + /** + * Subnet ID, is the subnet ID associated with the to be restored VM. For Classic VMs it would be + * {VnetID}/Subnet/{SubnetName} and, for the Azure Resource Manager VMs it would be ARM resource ID used to represent + * the subnet. + */ + subnetId?: string; + + /** + * Fully qualified ARM ID of the domain name to be associated to the VM being restored. This applies only to Classic + * Virtual Machines. + */ + targetDomainNameId?: string; + + /** + * Region in which the virtual machine is restored. + */ + region?: string; + + /** + * Affinity group associated to VM to be restored. Used only for Classic Compute Virtual Machines. + */ + affinityGroup?: string; + + /** + * Should a new cloud service be created while restoring the VM. If this is false, VM will be restored to the same + * cloud service as it was at the time of backup. + */ + createNewCloudService?: boolean; + + /** + * Original Storage Account Option + */ + originalStorageAccountOption?: boolean; + + /** + * Details needed if the VM was encrypted at the time of backup. + */ + encryptionDetails?: EncryptionDetails; + + /** + * List of Disk LUNs for partial restore + */ + restoreDiskLunList?: int32[]; + + /** + * Flag to denote of an Unmanaged disk VM should be restored with Managed disks. + */ + restoreWithManagedDisks?: boolean; + + /** + * DiskEncryptionSet's ID - needed if the VM needs to be encrypted at rest during restore with customer managed key. + */ + diskEncryptionSetId?: string; + + /** + * Target zone where the VM and its disks should be restored. + */ + zones?: string[]; + + /** + * Managed Identity information required to access customer storage account. + */ + identityInfo?: IdentityInfo; + + /** + * IaaS VM workload specific restore details for restores using managed identity. + */ + identityBasedRestoreDetails?: IdentityBasedRestoreDetails; + + /** + * Target extended location where the VM should be restored, + * should be null if restore is to be done in public cloud + */ + extendedLocation?: ExtendedLocation; + + /** + * Stores Secured VM Details + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + securedVMDetails?: SecuredVMDetails; + + /** + * Specifies target network access settings for disks of VM to be restored, + */ + targetDiskNetworkAccessSettings?: TargetDiskNetworkAccessSettings; +}; + +/** + * IaaS VM workload-specific restore. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model IaasVMRestoreRequest extends RestoreRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "IaasVMRestoreRequest"; + + ...IaasVMRestoreRequestProperties; +} + +/** + * Filters to list the jobs. + */ +model JobQueryObject { + /** + * Status of the job. + */ + status?: JobStatus; + + /** + * Type of backup management for the job. + */ + backupManagementType?: BackupManagementType; + + /** + * Type of operation. + */ + operation?: JobOperationType; + + /** + * JobID represents the job uniquely. + */ + jobId?: string; + + /** + * Job has started at this time. Value is in UTC. + */ + startTime?: utcDateTime; + + /** + * Job has ended at this time. Value is in UTC. + */ + endTime?: utcDateTime; +} + +/** + * Log policy schedule. + */ +model LogSchedulePolicy extends SchedulePolicy { + /** + * Frequency of the log schedule operation of this policy in minutes. + */ + scheduleFrequencyInMins?: int32; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + schedulePolicyType: "LogSchedulePolicy"; +} + +/** + * Long term retention policy. + */ +model LongTermRetentionPolicy extends RetentionPolicy { + /** + * Daily retention schedule of the protection policy. + */ + dailySchedule?: DailyRetentionSchedule; + + /** + * Weekly retention schedule of the protection policy. + */ + weeklySchedule?: WeeklyRetentionSchedule; + + /** + * Monthly retention schedule of the protection policy. + */ + monthlySchedule?: MonthlyRetentionSchedule; + + /** + * Yearly retention schedule of the protection policy. + */ + yearlySchedule?: YearlyRetentionSchedule; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + retentionPolicyType: "LongTermRetentionPolicy"; +} + +/** + * Weekly retention schedule. + */ +model WeeklyRetentionSchedule { + /** + * List of days of week for weekly retention policy. + */ + daysOfTheWeek?: DayOfWeek[]; + + /** + * Retention times of retention policy. + */ + retentionTimes?: utcDateTime[]; + + /** + * Retention duration of retention Policy. + */ + retentionDuration?: RetentionDuration; +} + +/** + * Monthly retention schedule. + */ +model MonthlyRetentionSchedule { + /** + * Retention schedule format type for monthly retention policy. + */ + retentionScheduleFormatType?: RetentionScheduleFormat; + + /** + * Daily retention format for monthly retention policy. + */ + retentionScheduleDaily?: DailyRetentionFormat; + + /** + * Weekly retention format for monthly retention policy. + */ + retentionScheduleWeekly?: WeeklyRetentionFormat; + + /** + * Retention times of retention policy. + */ + retentionTimes?: utcDateTime[]; + + /** + * Retention duration of retention Policy. + */ + retentionDuration?: RetentionDuration; +} + +/** + * Weekly retention format. + */ +model WeeklyRetentionFormat { + /** + * List of days of the week. + */ + daysOfTheWeek?: DayOfWeek[]; + + /** + * List of weeks of month. + */ + weeksOfTheMonth?: WeekOfMonth[]; +} + +/** + * Yearly retention schedule. + */ +model YearlyRetentionSchedule { + /** + * Retention schedule format for yearly retention policy. + */ + retentionScheduleFormatType?: RetentionScheduleFormat; + + /** + * List of months of year of yearly retention policy. + */ + monthsOfYear?: MonthOfYear[]; + + /** + * Daily retention format for yearly retention policy. + */ + retentionScheduleDaily?: DailyRetentionFormat; + + /** + * Weekly retention format for yearly retention policy. + */ + retentionScheduleWeekly?: WeeklyRetentionFormat; + + /** + * Retention times of retention policy. + */ + retentionTimes?: utcDateTime[]; + + /** + * Retention duration of retention Policy. + */ + retentionDuration?: RetentionDuration; +} + +/** + * Long term policy schedule. + */ +model LongTermSchedulePolicy extends SchedulePolicy { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + schedulePolicyType: "LongTermSchedulePolicy"; +} + +/** + * MAB workload-specific error information. + */ +model MabErrorInfo { + /** + * Localized error string. + */ + @visibility(Lifecycle.Read) + errorString?: string; + + /** + * List of localized recommendations. + */ + @visibility(Lifecycle.Read) + recommendations?: string[]; +} + +/** + * MAB workload-specific backup item. + */ +model MabFileFolderProtectedItem extends ProtectedItem { + /** + * Friendly name of this backup item. + */ + friendlyName?: string; + + /** + * Name of the computer associated with this backup item. + */ + computerName?: string; + + /** + * Status of last backup operation. + */ + lastBackupStatus?: string; + + /** + * Timestamp of the last backup operation on this backup item. + */ + lastBackupTime?: utcDateTime; + + /** + * Protected, ProtectionStopped, IRPending or ProtectionError + */ + protectionState?: string; + + /** + * Sync time for deferred deletion in UTC + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + deferredDeleteSyncTimeInUTC?: int64; + + /** + * Additional information with this backup item. + */ + extendedInfo?: MabFileFolderProtectedItemExtendedInfo; + + /** + * backup item type. + */ + protectedItemType: "MabFileFolderProtectedItem"; +} + +/** + * Additional information on the backed up item. + */ +model MabFileFolderProtectedItemExtendedInfo { + /** + * Last time when the agent data synced to service. + */ + lastRefreshedAt?: utcDateTime; + + /** + * The oldest backup copy available. + */ + oldestRecoveryPoint?: utcDateTime; + + /** + * Number of backup copies associated with the backup item. + */ + recoveryPointCount?: int32; +} + +/** + * MAB workload-specific job. + */ +model MabJob extends Job { + /** + * Time taken by job to run. + */ + duration?: duration; + + /** + * The state/actions applicable on jobs like cancel/retry. + */ + actionsInfo?: JobSupportedAction[]; + + /** + * Name of server protecting the DS. + */ + mabServerName?: string; + + /** + * Server type of MAB container. + */ + mabServerType?: MabServerType; + + /** + * Workload type of backup item. + */ + workloadType?: WorkloadType; + + /** + * The errors. + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + errorDetails?: MabErrorInfo[]; + + /** + * Additional information on the job. + */ + extendedInfo?: MabJobExtendedInfo; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + jobType: "MabJob"; +} + +/** + * Additional information for the MAB workload-specific job. + */ +model MabJobExtendedInfo { + /** + * List of tasks for this job. + */ + @OpenAPI.extension("x-ms-identifiers", #["taskId"]) + tasksList?: MabJobTaskDetails[]; + + /** + * The job properties. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + propertyBag?: Record; + + /** + * Non localized error message specific to this job. + */ + dynamicErrorMessage?: string; +} + +/** + * MAB workload-specific job task details. + */ +model MabJobTaskDetails { + /** + * The task display name. + */ + taskId?: string; + + /** + * The start time. + */ + startTime?: utcDateTime; + + /** + * The end time. + */ + endTime?: utcDateTime; + + /** + * Time elapsed for task. + */ + duration?: duration; + + /** + * The status. + */ + status?: string; +} + +/** + * Mab container-specific backup policy. + */ +model MabProtectionPolicy extends ProtectionPolicy { + /** + * Backup schedule of backup policy. + */ + schedulePolicy?: SchedulePolicy; + + /** + * Retention policy details. + */ + retentionPolicy?: RetentionPolicy; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + backupManagementType: "MAB"; +} + +/** + * Operation result info. + */ +model OperationResultInfo extends OperationResultInfoBase { + /** + * List of jobs created by this operation. + */ + jobList?: string[]; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "OperationResultInfo"; +} + +/** + * Prepare DataMove Response + */ +model PrepareDataMoveResponse + extends VaultStorageConfigOperationResultResponse { + /** + * Co-relationId for move operation + */ + correlationId?: string; + + /** + * Source Vault Properties + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + sourceVaultProperties?: Record; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "PrepareDataMoveResponse"; +} + +/** + * Filters to list backup items. + */ +model ProtectedItemQueryObject { + /** + * Health State for the backed up item. + */ + healthState?: HealthState; + + /** + * Backup management type for the backed up item. + */ + backupManagementType?: BackupManagementType; + + /** + * Type of workload this item represents. + */ + itemType?: DataSourceType; + + /** + * Backup policy name associated with the backup item. + */ + policyName?: string; + + /** + * Name of the container. + */ + containerName?: string; + + /** + * Backup Engine name + */ + backupEngineName?: string; + + /** + * Friendly name of protected item + */ + friendlyName?: string; + + /** + * Name of the fabric. + */ + fabricName?: string; + + /** + * Name of the backup set. + */ + backupSetName?: string; +} + +/** + * Filters the list backup policies API. + */ +model ProtectionPolicyQueryObject { + /** + * Backup management type for the backup policy. + */ + backupManagementType?: BackupManagementType; + + /** + * Fabric name for filter + */ + fabricName?: string; + + /** + * Workload type for the backup policy. + */ + workloadType?: WorkloadType; +} + +/** + * Simple policy retention. + */ +model SimpleRetentionPolicy extends RetentionPolicy { + /** + * Retention duration of the protection policy. + */ + retentionDuration?: RetentionDuration; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + retentionPolicyType: "SimpleRetentionPolicy"; +} + +/** + * Simple policy schedule. + */ +model SimpleSchedulePolicy extends SchedulePolicy { + /** + * Frequency of the schedule operation of this policy. + */ + scheduleRunFrequency?: ScheduleRunType; + + /** + * List of days of week this schedule has to be run. + */ + scheduleRunDays?: DayOfWeek[]; + + /** + * List of times of day this schedule has to be run. + */ + scheduleRunTimes?: utcDateTime[]; + + /** + * Hourly Schedule of this Policy + */ + hourlySchedule?: HourlySchedule; + + /** + * At every number weeks this schedule has to be run. + */ + scheduleWeeklyFrequency?: int32; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + schedulePolicyType: "SimpleSchedulePolicy"; +} + +/** + * The V2 policy schedule for IaaS that supports hourly backups. + */ +model SimpleSchedulePolicyV2 extends SchedulePolicy { + /** + * Frequency of the schedule operation of this policy. + */ + scheduleRunFrequency?: ScheduleRunType; + + /** + * hourly schedule of this policy + */ + hourlySchedule?: HourlySchedule; + + /** + * Daily schedule of this policy + */ + dailySchedule?: DailySchedule; + + /** + * Weekly schedule of this policy + */ + weeklySchedule?: WeeklySchedule; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + schedulePolicyType: "SimpleSchedulePolicyV2"; +} + +/** + * AzureRestoreValidation request. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model ValidateIaasVMRestoreOperationRequest extends ValidateOperationRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "ValidateIaasVMRestoreOperationRequest"; + + ...ValidateRestoreOperationRequestProperties; +} + +alias ValidateRestoreOperationRequestProperties = { + /** + * Sets restore request to be validated + */ + restoreRequest?: RestoreRequest; +}; + +/** + * AzureRestoreValidation request. + */ +model ValidateRestoreOperationRequest extends ValidateOperationRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "ValidateRestoreOperationRequest"; + + ...ValidateRestoreOperationRequestProperties; +} + +/** + * Vault level Job + */ +model VaultJob extends Job { + /** + * Time elapsed during the execution of this job. + */ + duration?: duration; + + /** + * Gets or sets the state/actions applicable on this job like cancel/retry. + */ + actionsInfo?: JobSupportedAction[]; + + /** + * Error details on execution of this job. + */ + @OpenAPI.extension("x-ms-identifiers", #["errorCode"]) + errorDetails?: VaultJobErrorInfo[]; + + /** + * Additional information about the job. + */ + extendedInfo?: VaultJobExtendedInfo; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + jobType: "VaultJob"; +} + +/** + * Vault Job specific error information + */ +model VaultJobErrorInfo { + /** + * Error code. + */ + errorCode?: int32; + + /** + * Localized error string. + */ + errorString?: string; + + /** + * List of localized recommendations for above error code. + */ + recommendations?: string[]; +} + +/** + * Vault Job for CMK - has CMK specific info. + */ +model VaultJobExtendedInfo { + /** + * Job properties. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + propertyBag?: Record; +} + +/** + * AzureBackupServer (DPMVenus) workload-specific protection container. + */ +model AzureBackupServerContainer extends ProtectionContainer { + /** + * Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. + * Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is + * Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload + * Backup is VMAppContainer + */ + containerType: ProtectableContainerType.AzureBackupServerContainer; + + ...DpmContainerProperties; +} + +alias DpmContainerProperties = { + /** + * Specifies whether the container is re-registrable. + */ + canReRegister?: boolean; + + /** + * ID of container. + */ + containerId?: string; + + /** + * Number of protected items in the BackupEngine + */ + protectedItemCount?: int64; + + /** + * Backup engine Agent version + */ + dpmAgentVersion?: string; + + /** + * List of BackupEngines protecting the container + */ + dpmServers?: string[]; + + /** + * To check if upgrade available + */ + upgradeAvailable?: boolean; + + /** + * Protection status of the container. + */ + protectionStatus?: string; + + /** + * Extended Info of the container. + */ + extendedInfo?: DPMContainerExtendedInfo; +}; + +/** + * DPM workload-specific protection container. + */ +model DpmContainer extends ProtectionContainer { + /** + * Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. + * Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is + * Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload + * Backup is VMAppContainer + */ + containerType: ProtectableContainerType.DPMContainer; + + ...DpmContainerProperties; +} + +/** + * Additional information of the DPMContainer. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model DPMContainerExtendedInfo { + /** + * Last refresh time of the DPMContainer. + */ + lastRefreshedAt?: utcDateTime; +} + +/** + * Backup engine type when Azure Backup Server is used to manage the backups. + */ +model AzureBackupServerEngine extends BackupEngineBase { + /** + * Type of the backup engine. + */ + backupEngineType: "AzureBackupServerEngine"; +} + +/** + * AzureFileShare workload-specific backup request. + */ +model AzureFileShareBackupRequest extends BackupRequest { + /** + * Backup copy will expire after the time specified (UTC). + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + recoveryPointExpiryTimeInUTC?: utcDateTime; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureFileShareBackupRequest"; +} + +/** + * Protectable item for Azure Fileshare workloads. + */ +model AzureFileShareProtectableItem extends WorkloadProtectableItem { + /** + * Full Fabric ID of container to which this protectable item belongs. For example, ARM ID. + */ + parentContainerFabricId?: string; + + /** + * Friendly name of container to which this protectable item belongs. + */ + parentContainerFriendlyName?: string; + + /** + * File Share type XSync or XSMB. + */ + azureFileShareType?: AzureFileShareType; + + /** + * Type of the backup item. + */ + protectableItemType: "AzureFileShare"; +} + +/** + * Update snapshot Uri with the correct friendly Name of the source Azure file share. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureFileShareProvisionILRRequest extends ILRRequest { + /** + * Recovery point ID. + */ + recoveryPointId?: string; + + /** + * Source Storage account ARM Id + */ + sourceResourceId?: string; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureFileShareProvisionILRRequest"; +} + +/** + * IaaS VM workload-specific backup item representing a classic virtual machine. + */ +model AzureIaaSClassicComputeVMContainer extends ProtectionContainer { + /** + * Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. + * Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is + * Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload + * Backup is VMAppContainer + */ + containerType: ProtectableContainerType.`Microsoft.ClassicCompute/virtualMachines`; + + ...IaaSVMContainerProperties; +} + +alias IaaSVMContainerProperties = { + /** + * Fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container. + */ + virtualMachineId?: string; + + /** + * Specifies whether the container represents a Classic or an Azure Resource Manager VM. + */ + virtualMachineVersion?: string; + + /** + * Resource group name of Recovery Services Vault. + */ + resourceGroup?: string; +}; + +/** + * IaaS VM workload-specific container. + */ +model IaaSVMContainer extends ProtectionContainer { + /** + * Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. + * Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is + * Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload + * Backup is VMAppContainer + */ + containerType: ProtectableContainerType.IaasVMContainer; + + ...IaaSVMContainerProperties; +} + +/** + * IaaS VM workload-specific backup item representing the Classic Compute VM. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureIaaSClassicComputeVMProtectableItem extends WorkloadProtectableItem { + /** + * Type of the backup item. + */ + protectableItemType: "Microsoft.ClassicCompute/virtualMachines"; + + ...IaaSVMProtectableItemProperties; +} + +alias IaaSVMProtectableItemProperties = { + /** + * Fully qualified ARM ID of the virtual machine. + */ + virtualMachineId?: string; + + /** + * Specifies whether the container represents a Classic or an Azure Resource Manager VM. + */ + virtualMachineVersion?: string; + + /** + * Resource group name of Recovery Services Vault. + */ + resourceGroup?: string; +}; + +/** + * IaaS VM workload-specific backup item. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model IaaSVMProtectableItem extends WorkloadProtectableItem { + /** + * Type of the backup item. + */ + protectableItemType: "IaaSVMProtectableItem"; + + ...IaaSVMProtectableItemProperties; +} + +/** + * IaaS VM workload-specific backup item representing an Azure Resource Manager virtual machine. + */ +model AzureIaaSComputeVMContainer extends ProtectionContainer { + /** + * Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. + * Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is + * Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload + * Backup is VMAppContainer + */ + containerType: ProtectableContainerType.`Microsoft.Compute/virtualMachines`; + + ...IaaSVMContainerProperties; +} + +/** + * IaaS VM workload-specific backup item representing the Azure Resource Manager VM. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureIaaSComputeVMProtectableItem extends WorkloadProtectableItem { + /** + * Type of the backup item. + */ + protectableItemType: "Microsoft.Compute/virtualMachines"; + + ...IaaSVMProtectableItemProperties; +} + +/** + * Container for SQL workloads under SQL Availability Group. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureSQLAGWorkloadContainerProtectionContainer + extends ProtectionContainer { + /** + * Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. + * Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is + * Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload + * Backup is VMAppContainer + */ + containerType: ProtectableContainerType.SQLAGWorkLoadContainer; + + ...AzureWorkloadContainerProperties; +} + +alias AzureWorkloadContainerProperties = { + /** + * ARM ID of the virtual machine represented by this Azure Workload Container + */ + sourceResourceId?: string; + + /** + * Time stamp when this container was updated. + */ + lastUpdatedTime?: utcDateTime; + + /** + * Additional details of a workload container. + */ + extendedInfo?: AzureWorkloadContainerExtendedInfo; + + /** + * Workload type for which registration was sent. + */ + workloadType?: WorkloadType; + + /** + * Re-Do Operation + */ + operationType?: OperationType; +}; + +/** + * Container for the workloads running inside Azure Compute or Classic Compute. + */ +model AzureWorkloadContainer extends ProtectionContainer { + /** + * Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. + * Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is + * Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload + * Backup is VMAppContainer + */ + containerType: ProtectableContainerType.AzureWorkloadContainer; + + ...AzureWorkloadContainerProperties; +} + +/** + * Extended information of the container. + */ +model AzureWorkloadContainerExtendedInfo { + /** + * Host Os Name in case of Stand Alone and Cluster Name in case of distributed container. + */ + hostServerName?: string; + + /** + * Inquiry Status for the container. + */ + inquiryInfo?: InquiryInfo; + + /** + * List of the nodes in case of distributed container. + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + nodesList?: DistributedNodesInfo[]; +} + +/** + * Details about inquired protectable items under a given container. + */ +model InquiryInfo { + /** + * Inquiry Status for this container such as + * InProgress | Failed | Succeeded + */ + status?: string; + + /** + * Error Details if the Status is non-success. + */ + errorDetail?: ErrorDetail; + + /** + * Inquiry Details which will have workload specific details. + * For e.g. - For SQL and oracle this will contain different details. + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + inquiryDetails?: WorkloadInquiryDetails[]; +} + +/** + * Details of an inquired protectable item. + */ +model WorkloadInquiryDetails { + /** + * Type of the Workload such as SQL, Oracle etc. + */ + type?: string; + + /** + * Contains the protectable item Count inside this Container. + */ + itemCount?: int64; + + /** + * Inquiry validation such as permissions and other backup validations. + */ + inquiryValidation?: InquiryValidation; +} + +/** + * Validation for inquired protectable items under a given container. + */ +model InquiryValidation { + /** + * Status for the Inquiry Validation. + */ + status?: string; + + /** + * Error Detail in case the status is non-success. + */ + errorDetail?: ErrorDetail; + + /** + * Error Additional Detail in case the status is non-success. + */ + @visibility(Lifecycle.Read) + additionalDetail?: string; + + /** + * Dictionary to store the count of ProtectableItems with key POType. + */ + #suppress "@azure-tools/typespec-azure-core/no-unknown" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + protectableItemCount?: unknown; +} + +/** + * Azure Sql workload-specific container. + */ +model AzureSqlContainer extends ProtectionContainer { + /** + * Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. + * Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is + * Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload + * Backup is VMAppContainer + */ + containerType: ProtectableContainerType.AzureSqlContainer; +} + +/** + * Azure Storage Account workload-specific container. + */ +model AzureStorageContainer extends ProtectionContainer { + /** + * Fully qualified ARM url. + */ + sourceResourceId?: string; + + /** + * Storage account version. + */ + storageAccountVersion?: string; + + /** + * Resource group name of Recovery Services Vault. + */ + resourceGroup?: string; + + /** + * Number of items backed up in this container. + */ + protectedItemCount?: int64; + + /** + * Whether storage account lock is to be acquired for this container or not. + */ + acquireStorageAccountLock?: AcquireStorageAccountLock; + + /** + * Re-Do Operation + */ + operationType?: OperationType; + + /** + * Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. + * Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is + * Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload + * Backup is VMAppContainer + */ + containerType: ProtectableContainerType.StorageContainer; +} + +/** + * Azure Storage-specific protectable containers + */ +model AzureStorageProtectableContainer extends ProtectableContainer { + /** + * Type of the container. The value of this property for + * 1. Compute Azure VM is Microsoft.Compute/virtualMachines + * 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines + */ + @visibility(Lifecycle.Read) + protectableContainerType: ProtectableContainerType.StorageContainer; +} + +/** + * Azure workload-specific container + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVMAppContainerProtectableContainer extends ProtectableContainer { + /** + * Type of the container. The value of this property for + * 1. Compute Azure VM is Microsoft.Compute/virtualMachines + * 2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines + */ + protectableContainerType: ProtectableContainerType.VMAppContainer; +} + +/** + * Container for SQL workloads under Azure Virtual Machines. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVMAppContainerProtectionContainer extends ProtectionContainer { + /** + * Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. + * Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is + * Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload + * Backup is VMAppContainer + */ + containerType: ProtectableContainerType.VMAppContainer; + + ...AzureWorkloadContainerProperties; +} + +alias AzureVmWorkloadItemProperties = { + /** + * Name for instance or AG + */ + parentName?: string; + + /** + * Host/Cluster Name for instance or AG + */ + serverName?: string; + + /** + * Indicates if workload item is auto-protectable + */ + isAutoProtectable?: boolean; + + /** + * For instance or AG, indicates number of DB's present + */ + subinquireditemcount?: int32; + + /** + * For instance or AG, indicates number of DB's to be protected + */ + subWorkloadItemCount?: int32; +}; + +/** + * Azure VM workload-specific workload item. + */ +model AzureVmWorkloadItem extends WorkloadItem { + /** + * Type of the backup item. + */ + workloadItemType: "AzureVmWorkloadItem"; + + ...AzureVmWorkloadItemProperties; +} + +alias AzureVmWorkloadProtectableItemProperties = { + /** + * Name for instance or AG + */ + parentName?: string; + + /** + * Parent Unique Name is added to provide the service formatted URI Name of the Parent + * Only Applicable for data bases where the parent would be either Instance or a SQL AG. + */ + parentUniqueName?: string; + + /** + * Host/Cluster Name for instance or AG + */ + serverName?: string; + + /** + * Indicates if protectable item is auto-protectable + */ + isAutoProtectable?: boolean; + + /** + * Indicates if protectable item is auto-protected + */ + isAutoProtected?: boolean; + + /** + * For instance or AG, indicates number of DB's present + */ + subinquireditemcount?: int32; + + /** + * For instance or AG, indicates number of DB's to be protected + */ + subprotectableitemcount?: int32; + + /** + * Pre-backup validation for protectable objects + */ + prebackupvalidation?: PreBackupValidation; + + /** + * Indicates if item is protectable + */ + isProtectable?: boolean; +}; + +/** + * Azure VM workload-specific protectable item. + */ +model AzureVmWorkloadProtectableItem extends WorkloadProtectableItem { + /** + * Type of the backup item. + */ + protectableItemType: "AzureVmWorkloadProtectableItem"; + + ...AzureVmWorkloadProtectableItemProperties; +} + +/** + * Pre-backup validation for Azure VM Workload provider. + */ +model PreBackupValidation { + /** + * Status of protectable item, i.e. InProgress,Succeeded,Failed + */ + status?: InquiryStatus; + + /** + * Error code of protectable item + */ + code?: string; + + /** + * Message corresponding to the error code for the protectable item + */ + message?: string; +} + +/** + * Azure VM workload-specific protectable item representing SAP ASE Database. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVmWorkloadSAPAseDatabaseProtectableItem + extends WorkloadProtectableItem { + /** + * Type of the backup item. + */ + protectableItemType: "SAPAseDatabase"; + + ...AzureVmWorkloadProtectableItemProperties; +} + +/** + * Azure VM workload-specific workload item representing SAP ASE Database. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVmWorkloadSAPAseDatabaseWorkloadItem extends WorkloadItem { + /** + * Type of the backup item. + */ + workloadItemType: "SAPAseDatabase"; + + ...AzureVmWorkloadItemProperties; +} + +/** + * Azure VM workload-specific protectable item representing SAP ASE System. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVmWorkloadSAPAseSystemProtectableItem + extends WorkloadProtectableItem { + /** + * Type of the backup item. + */ + protectableItemType: "SAPAseSystem"; + + ...AzureVmWorkloadProtectableItemProperties; +} + +/** + * Azure VM workload-specific workload item representing SAP ASE System. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVmWorkloadSAPAseSystemWorkloadItem extends WorkloadItem { + /** + * Type of the backup item. + */ + workloadItemType: "SAPAseSystem"; + + ...AzureVmWorkloadItemProperties; +} + +/** + * Azure VM workload-specific protectable item representing SAP HANA Database. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVmWorkloadSAPHanaDatabaseProtectableItem + extends WorkloadProtectableItem { + /** + * Type of the backup item. + */ + protectableItemType: "SAPHanaDatabase"; + + ...AzureVmWorkloadProtectableItemProperties; +} + +/** + * Azure VM workload-specific workload item representing SAP HANA Database. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVmWorkloadSAPHanaDatabaseWorkloadItem extends WorkloadItem { + /** + * Type of the backup item. + */ + workloadItemType: "SAPHanaDatabase"; + + ...AzureVmWorkloadItemProperties; +} + +/** + * Azure VM workload-specific protectable item representing SAP HANA System. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVmWorkloadSAPHanaSystemProtectableItem + extends WorkloadProtectableItem { + /** + * Type of the backup item. + */ + protectableItemType: "SAPHanaSystem"; + + ...AzureVmWorkloadProtectableItemProperties; +} + +/** + * Azure VM workload-specific protectable item representing SAP HANA Dbinstance. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVmWorkloadSAPHanaDBInstance extends WorkloadProtectableItem { + /** + * Type of the backup item. + */ + protectableItemType: "SAPHanaDBInstance"; + + ...AzureVmWorkloadProtectableItemProperties; +} + +/** + * Azure VM workload-specific protectable item representing HANA HSR. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVmWorkloadSAPHanaHSRProtectableItem extends WorkloadProtectableItem { + /** + * Type of the backup item. + */ + protectableItemType: "HanaHSRContainer"; + + ...AzureVmWorkloadProtectableItemProperties; +} + +/** + * Azure VM workload-specific workload item representing SAP HANA System. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVmWorkloadSAPHanaSystemWorkloadItem extends WorkloadItem { + /** + * Type of the backup item. + */ + workloadItemType: "SAPHanaSystem"; + + ...AzureVmWorkloadItemProperties; +} + +/** + * Azure VM workload-specific protectable item representing SQL Availability Group. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVmWorkloadSQLAvailabilityGroupProtectableItem + extends WorkloadProtectableItem { + /** + * Type of the backup item. + */ + protectableItemType: "SQLAvailabilityGroupContainer"; + + /** + * List of the nodes in case of distributed container. + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + nodesList?: DistributedNodesInfo[]; + + ...AzureVmWorkloadProtectableItemProperties; +} + +/** + * Azure VM workload-specific protectable item representing SQL Database. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVmWorkloadSQLDatabaseProtectableItem + extends WorkloadProtectableItem { + /** + * Type of the backup item. + */ + protectableItemType: "SQLDataBase"; + + ...AzureVmWorkloadProtectableItemProperties; +} + +/** + * Azure VM workload-specific workload item representing SQL Database. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVmWorkloadSQLDatabaseWorkloadItem extends WorkloadItem { + /** + * Type of the backup item. + */ + workloadItemType: "SQLDataBase"; + + ...AzureVmWorkloadItemProperties; +} + +/** + * Azure VM workload-specific protectable item representing SQL Instance. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVmWorkloadSQLInstanceProtectableItem + extends WorkloadProtectableItem { + /** + * Type of the backup item. + */ + protectableItemType: "SQLInstance"; + + ...AzureVmWorkloadProtectableItemProperties; +} + +/** + * Azure VM workload-specific workload item representing SQL Instance. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVmWorkloadSQLInstanceWorkloadItem extends WorkloadItem { + /** + * Type of the backup item. + */ + workloadItemType: "SQLInstance"; + + /** + * Data Directory Paths for default directories + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + dataDirectoryPaths?: SQLDataDirectory[]; + + ...AzureVmWorkloadItemProperties; +} + +/** + * AzureWorkload workload-specific backup request. + */ +model AzureWorkloadBackupRequest extends BackupRequest { + /** + * Type of backup, viz. Full, Differential, Log or CopyOnlyFull + */ + backupType?: BackupType; + + /** + * Bool for Compression setting + */ + enableCompression?: boolean; + + /** + * Backup copy will expire after the time specified (UTC). + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + recoveryPointExpiryTimeInUTC?: utcDateTime; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadBackupRequest"; +} + +/** + * Azure backup goal feature specific request. + */ +model AzureBackupGoalFeatureSupportRequest extends FeatureSupportRequest { + /** + * backup support feature type. + */ + featureType: "AzureBackupGoals"; +} + +/** + * Azure Recovery Services Vault specific protection intent item. + */ +model AzureRecoveryServiceVaultProtectionIntent extends ProtectionIntent { + /** + * backup protectionIntent type. + */ + protectionIntentItemType: ProtectionIntentItemType.RecoveryServiceVaultItem; +} + +/** + * IaaS VM specific backup protection intent item. + */ +model AzureResourceProtectionIntent extends ProtectionIntent { + /** + * Friendly name of the VM represented by this backup item. + */ + friendlyName?: string; + + /** + * backup protectionIntent type. + */ + protectionIntentItemType: "AzureResourceItem"; +} + +/** + * AzureResource(IaaS VM) Specific feature support request + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureVMResourceFeatureSupportRequest extends FeatureSupportRequest { + /** + * Size of the resource: VM size(A/D series etc) in case of IaasVM + */ + vmSize?: string; + + /** + * SKUs (Premium/Managed etc) in case of IaasVM + */ + vmSku?: string; + + /** + * backup support feature type. + */ + featureType: "AzureVMResourceBackup"; +} + +/** + * Azure workload specific protection intent item. + */ +model AzureWorkloadContainerAutoProtectionIntent extends ProtectionIntent { + /** + * backup protectionIntent type. + */ + protectionIntentItemType: "AzureWorkloadContainerAutoProtectionIntent"; +} + +/** + * Azure Recovery Services Vault specific protection intent item. + */ +model AzureWorkloadAutoProtectionIntent extends ProtectionIntent { + /** + * backup protectionIntent type. + */ + protectionIntentItemType: ProtectionIntentItemType.AzureWorkloadAutoProtectionIntent; +} + +/** + * Azure Workload SQL Auto Protection intent item. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureWorkloadSQLAutoProtectionIntent extends ProtectionIntent { + /** + * backup protectionIntent type. + */ + protectionIntentItemType: ProtectionIntentItemType.AzureWorkloadSQLAutoProtectionIntent; + + /** + * Workload item type of the item for which intent is to be set + */ + workloadItemType?: WorkloadItemType; +} + +/** + * Query parameters to fetch backup summaries. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BMSBackupSummariesQueryObject { + /** + * Backup management type for this container. + */ + type?: Type; +} + +/** + * Filters to list protection intent. + */ +model ProtectionIntentQueryObject { + /** + * Backup management type for the backed up item + */ + backupManagementType?: BackupManagementType; + + /** + * Type of workload this item represents + */ + itemType?: IntentItemType; + + /** + * Parent name of the intent + */ + parentName?: string; + + /** + * Item name of the intent + */ + itemName?: string; +} + +/** + * Query parameters to fetch list of backup engines. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BMSBackupEngineQueryObject { + /** + * attribute to add extended info + */ + expand?: string; +} + +/** + * Query parameters to fetch list of backup engines. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BMSBackupEnginesQueryObject { + /** + * Backup management type for the backup engine. + */ + backupManagementType?: BackupManagementType; + + /** + * Friendly name of the backup engine. + */ + friendlyName?: string; + + /** + * Attribute to add extended info. + */ + expand?: string; +} + +/** + * The query filters that can be used with the list containers API. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BMSContainerQueryObject { + /** + * Backup management type for this container. + */ + backupManagementType: BackupManagementType; + + /** + * Type of container for filter + */ + containerType?: ContainerType; + + /** + * Backup engine name + */ + backupEngineName?: string; + + /** + * Fabric name for filter + */ + fabricName?: string; + + /** + * Status of registration of this container with the Recovery Services Vault. + */ + status?: string; + + /** + * Friendly name of this container. + */ + friendlyName?: string; +} + +/** + * The query filters that can be used with the inquire container API. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BMSContainersInquiryQueryObject { + /** + * Backup management type for this container. + */ + backupManagementType?: BackupManagementType; + + /** + * Workload type for this container. + */ + workloadType?: WorkloadType; +} + +/** + * Filters to list items that can be backed up. + */ +model BmspoQueryObject { + /** + * Backup management type. + */ + backupManagementType?: BackupManagementType; + + /** + * Workload type + */ + workloadType?: WorkloadType; + + /** + * Full name of the container whose Protectable Objects should be returned. + */ + containerName?: string; + + /** + * Backup status query parameter. + */ + status?: string; + + /** + * Friendly name. + */ + friendlyName?: string; +} + +/** + * The query filters that can be used with the refresh container API. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BMSRefreshContainersQueryObject { + /** + * Backup management type for this container. + */ + backupManagementType?: BackupManagementType; +} + +/** + * Filters to list items that can be backed up. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model BMSWorkloadItemQueryObject { + /** + * Backup management type. + */ + backupManagementType?: BackupManagementType; + + /** + * Workload Item type + */ + workloadItemType?: WorkloadItemType; + + /** + * Workload type + */ + workloadType?: WorkloadType; + + /** + * Backup status query parameter. + */ + protectionStatus?: ProtectionStatus; +} + +/** + * Client script details for file / folder restore. + */ +model ClientScriptForConnect { + /** + * File content of the client script for file / folder restore. + */ + scriptContent?: string; + + /** + * File extension of the client script for file / folder restore - .ps1 , .sh , etc. + */ + scriptExtension?: string; + + /** + * OS type - Windows, Linux etc. for which this file / folder restore client script works. + */ + osType?: string; + + /** + * URL of Executable from where to source the content. If this is not null then ScriptContent should not be used + */ + url?: string; + + /** + * Mandatory suffix that should be added to the name of script that is given for download to user. + * If its null or empty then , ignore it. + */ + scriptNameSuffix?: string; +} + +/** + * Container identity information + */ +model ContainerIdentityInfo { + /** + * Unique name of the container + */ + uniqueName?: string; + + /** + * Protection container identity - AAD Tenant + */ + aadTenantId?: string; + + /** + * Protection container identity - AAD Service Principal + */ + servicePrincipalClientId?: string; + + /** + * Protection container identity - Audience + */ + audience?: string; +} + +/** + * Data Protection Manager (DPM) specific backup engine. + */ +model DpmBackupEngine extends BackupEngineBase { + /** + * Type of the backup engine. + */ + backupEngineType: "DpmBackupEngine"; +} + +/** + * Base class for generic container of backup items + */ +model GenericContainer extends ProtectionContainer { + /** + * Name of the container's fabric + */ + fabricName?: string; + + /** + * Extended information (not returned in List container API calls) + */ + extendedInformation?: GenericContainerExtendedInfo; + + /** + * Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. + * Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is + * Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload + * Backup is VMAppContainer + */ + containerType: ProtectableContainerType.GenericContainer; +} + +/** + * Container extended information + */ +model GenericContainerExtendedInfo { + /** + * Public key of container cert + */ + rawCertData?: string; + + /** + * Container identity information + */ + containerIdentityInfo?: ContainerIdentityInfo; + + /** + * Azure Backup Service Endpoints for the container + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + serviceEndpoints?: Record; +} + +/** + * IaaS VM workload-specific backup request. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model IaasVMBackupRequest extends BackupRequest { + /** + * Backup copy will expire after the time specified (UTC). + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + recoveryPointExpiryTimeInUTC?: utcDateTime; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "IaasVMBackupRequest"; +} + +/** + * Restore files/folders from a backup copy of IaaS VM. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model IaasVMILRRegistrationRequest extends ILRRequest { + /** + * ID of the IaaS VM backup copy from where the files/folders have to be restored. + */ + recoveryPointId?: string; + + /** + * Fully qualified ARM ID of the virtual machine whose the files / folders have to be restored. + */ + virtualMachineId?: string; + + /** + * iSCSI initiator name. + */ + initiatorName?: string; + + /** + * Whether to renew existing registration with the iSCSI server. + */ + renewExistingRegistration?: boolean; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "IaasVMILRRegistrationRequest"; +} + +/** + * Target details for file / folder restore. + */ +model InstantItemRecoveryTarget { + /** + * List of client scripts. + */ + @OpenAPI.extension("x-ms-identifiers", #[]) + clientScripts?: ClientScriptForConnect[]; +} + +/** + * Container with items backed up using MAB backup engine. + */ +model MabContainer extends ProtectionContainer { + /** + * Can the container be registered one more time. + */ + canReRegister?: boolean; + + /** + * ContainerID represents the container. + */ + containerId?: int64; + + /** + * Number of items backed up in this container. + */ + protectedItemCount?: int64; + + /** + * Agent version of this container. + */ + agentVersion?: string; + + /** + * Additional information for this container + */ + extendedInfo?: MabContainerExtendedInfo; + + /** + * Health details on this mab container. + */ + @OpenAPI.extension("x-ms-identifiers", #["code"]) + mabContainerHealthDetails?: MABContainerHealthDetails[]; + + /** + * Health state of mab container. + */ + containerHealthState?: string; + + /** + * Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2. + * Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is + * Windows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload + * Backup is VMAppContainer + */ + containerType: ProtectableContainerType.Windows; +} + +/** + * Additional information of the container. + */ +model MabContainerExtendedInfo { + /** + * Time stamp when this container was refreshed. + */ + lastRefreshedAt?: utcDateTime; + + /** + * Type of backup items associated with this container. + */ + backupItemType?: BackupItemType; + + /** + * List of backup items associated with this container. + */ + backupItems?: string[]; + + /** + * Backup policy associated with this container. + */ + policyName?: string; + + /** + * Latest backup status of this container. + */ + lastBackupStatus?: string; +} + +/** + * MAB workload-specific Health Details. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model MABContainerHealthDetails { + /** + * Health Code + */ + code?: int32; + + /** + * Health Title + */ + title?: string; + + /** + * Health Message + */ + message?: string; + + /** + * Health Recommended Actions + */ + recommendations?: string[]; +} + +/** + * Operation status job extended info. + */ +model OperationStatusJobExtendedInfo extends OperationStatusExtendedInfo { + /** + * ID of the job created for this protected item. + */ + jobId?: string; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "OperationStatusJobExtendedInfo"; +} + +/** + * Operation status extended info for list of jobs. + */ +model OperationStatusJobsExtendedInfo extends OperationStatusExtendedInfo { + /** + * IDs of the jobs created for the protected item. + */ + jobIds?: string[]; + + /** + * Stores all the failed jobs along with the corresponding error codes. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + failedJobsError?: Record; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "OperationStatusJobsExtendedInfo"; +} + +/** + * Operation status extended info for ILR provision action. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model OperationStatusProvisionILRExtendedInfo + extends OperationStatusExtendedInfo { + /** + * Target details for file / folder restore. + */ + recoveryTarget?: InstantItemRecoveryTarget; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "OperationStatusProvisionILRExtendedInfo"; +} + +/** + * Operation status extended info for ValidateOperation action. + */ +model OperationStatusValidateOperationExtendedInfo + extends OperationStatusExtendedInfo { + /** + * Gets the validation operation response + */ + validateOperationResponse?: ValidateOperationResponse; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "OperationStatusValidateOperationExtendedInfo"; +} + +/** + * AzureWorkload SAP Hana-specific restore with integrated rehydration of recovery point. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureWorkloadSAPHanaPointInTimeRestoreWithRehydrateRequest + extends RestoreRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadSAPHanaPointInTimeRestoreWithRehydrateRequest"; + + /** + * RP Rehydration Info + */ + recoveryPointRehydrationInfo?: RecoveryPointRehydrationInfo; + + ...AzureWorkloadSAPHanaPointInTimeRestoreRequestProperties; + ...AzureWorkloadRestoreRequestProperties; +} + +/** + * RP Rehydration Info + */ +model RecoveryPointRehydrationInfo { + /** + * How long the rehydrated RP should be kept + * Should be ISO8601 Duration format e.g. "P7D" + */ + rehydrationRetentionDuration?: string; + + /** + * Rehydration Priority + */ + rehydrationPriority?: RehydrationPriority; +} + +/** + * AzureWorkload SAP Hana-specific restore with integrated rehydration of recovery point. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureWorkloadSAPHanaRestoreWithRehydrateRequest extends RestoreRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadSAPHanaRestoreWithRehydrateRequest"; + + /** + * RP Rehydration Info + */ + recoveryPointRehydrationInfo?: RecoveryPointRehydrationInfo; + + ...AzureWorkloadRestoreRequestProperties; +} + +/** + * AzureWorkload SQL-specific restore with integrated rehydration of recovery point. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureWorkloadSQLPointInTimeRestoreWithRehydrateRequest + extends RestoreRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadSQLPointInTimeRestoreWithRehydrateRequest"; + + /** + * RP Rehydration Info + */ + recoveryPointRehydrationInfo?: RecoveryPointRehydrationInfo; + + ...AzureWorkloadSQLPointInTimeRestoreRequestProperties; + ...AzureWorkloadSQLRestoreRequestProperties; + ...AzureWorkloadRestoreRequestProperties; +} + +/** + * AzureWorkload SQL-specific restore with integrated rehydration of recovery point + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AzureWorkloadSQLRestoreWithRehydrateRequest extends RestoreRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "AzureWorkloadSQLRestoreWithRehydrateRequest"; + + /** + * RP Rehydration Info + */ + recoveryPointRehydrationInfo?: RecoveryPointRehydrationInfo; + + ...AzureWorkloadSQLRestoreRequestProperties; + ...AzureWorkloadRestoreRequestProperties; +} + +/** + * IaaS VM workload-specific restore with integrated rehydration of recovery point. + */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model IaasVMRestoreWithRehydrationRequest extends RestoreRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "IaasVMRestoreWithRehydrationRequest"; + + /** + * RP Rehydration Info + */ + recoveryPointRehydrationInfo?: RecoveryPointRehydrationInfo; + + ...IaasVMRestoreRequestProperties; +} + +/** + * Request parameters for fetching cost info of rehydration + */ +model FetchTieringCostInfoForRehydrationRequest + extends FetchTieringCostInfoRequest { + /** + * Name of the protected item container + */ + containerName: string; + + /** + * Name of the protectedItemName + */ + protectedItemName: string; + + /** + * ID of the backup copy for rehydration cost info needs to be fetched. + */ + recoveryPointId: string; + + /** + * Rehydration Priority + */ + rehydrationPriority: RehydrationPriority; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "FetchTieringCostInfoForRehydrationRequest"; +} + +/** + * Response parameters for tiering cost info for rehydration + */ +model TieringCostRehydrationInfo extends TieringCostInfo { + /** + * Rehydration size in bytes + */ + rehydrationSizeInBytes: int64; + + /** + * Source tier to target tier rehydration cost per GB per month + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + retailRehydrationCostPerGBPerMonth: float64; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "TieringCostRehydrationInfo"; +} + +/** + * Response parameters for tiering cost info for savings + */ +model TieringCostSavingInfo extends TieringCostInfo { + /** + * Source tier size reduction in bytes after moving all the recommended backup points to target tier + */ + sourceTierSizeReductionInBytes: int64; + + /** + * Target tier size increase in bytes after moving all the recommended backup points to target tier + */ + targetTierSizeIncreaseInBytes: int64; + + /** + * Source tier retail cost per GB per month + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + retailSourceTierCostPerGBPerMonth: float64; + + /** + * Target tier retail cost per GB per month + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + retailTargetTierCostPerGBPerMonth: float64; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "TieringCostSavingInfo"; +} + +/** + * Request parameters for tiering cost info for policy + */ +model FetchTieringCostSavingsInfoForPolicyRequest + extends FetchTieringCostInfoRequest { + /** + * Name of the backup policy for which the cost savings information is requested + */ + policyName: string; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "FetchTieringCostSavingsInfoForPolicyRequest"; +} + +/** + * Request parameters for tiering cost info for protected item + */ +model FetchTieringCostSavingsInfoForProtectedItemRequest + extends FetchTieringCostInfoRequest { + /** + * Name of the protected item container + */ + containerName: string; + + /** + * Name of the protectedItemName + */ + protectedItemName: string; + + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "FetchTieringCostSavingsInfoForProtectedItemRequest"; +} + +/** + * Request parameters for tiering cost info for vault + */ +model FetchTieringCostSavingsInfoForVaultRequest + extends FetchTieringCostInfoRequest { + /** + * This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types. + */ + objectType: "FetchTieringCostSavingsInfoForVaultRequest"; +} + +/** + * Operations List response which contains list of available APIs. + */ +model ClientDiscoveryResponse { + /** + * List of available operations. + */ + @pageItems + @OpenAPI.extension("x-ms-identifiers", #[]) + value?: ClientDiscoveryValueForSingleApi[]; + + /** + * Link to the next chunk of Response. + */ + @nextLink + nextLink?: string; +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/routes.tsp b/specification/recoveryservicesbackup/RecoveryServices.Management/routes.tsp new file mode 100644 index 000000000000..42d3775aa0ba --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/routes.tsp @@ -0,0 +1,726 @@ +// FIXME: Operations in this file are not detected as a resource operation, please confirm the conversion result manually + +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "./models.tsp"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; + +namespace Microsoft.RecoveryServices; + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface ProtectionIntentOperationGroup { + /** + * It will validate followings + * 1. Vault capacity + * 2. VM is already protected + * 3. Any VM related configuration passed in properties. + */ + @summary(""" + It will validate followings + 1. Vault capacity + 2. VM is already protected + 3. Any VM related configuration passed in properties. + """) + @route("/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupPreValidateProtection") + @post + validate( + ...ApiVersionParameter, + + /** + * Azure region to hit Api + */ + @path + azureRegion: string, + + ...SubscriptionIdParameter, + + /** + * Enable backup validation request on Virtual Machine + */ + @bodyRoot + parameters: PreValidateEnableBackupRequest, + ): ArmResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface BackupStatus { + /** + * Get the container backup status + */ + @summary("Get the container backup status") + @route("/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupStatus") + @post + get( + ...ApiVersionParameter, + + /** + * Azure region to hit Api + */ + @path + azureRegion: string, + + ...SubscriptionIdParameter, + + /** + * Container Backup Status Request + */ + @bodyRoot + parameters: BackupStatusRequest, + ): ArmResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface FeatureSupport { + /** + * It will validate if given feature with resource properties is supported in service + */ + @summary("It will validate if given feature with resource properties is supported in service") + @route("/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupValidateFeatures") + @post + validate( + ...ApiVersionParameter, + + /** + * Azure region to hit Api + */ + @path + azureRegion: string, + + ...SubscriptionIdParameter, + + /** + * Feature support request object + */ + @bodyRoot + parameters: FeatureSupportRequest, + ): ArmResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface BackupProtectionIntent { + /** + * Provides a pageable list of all intents that are present within a vault. + */ + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectionIntents") + @get + @list + list( + ...ApiVersionParameter, + + /** + * The name of the recovery services vault. + */ + @path + vaultName: string, + + ...ResourceGroupParameter, + ...SubscriptionIdParameter, + + /** + * OData filter options. + */ + @query("$filter") + $filter?: string, + + /** + * skipToken Filter. + */ + @query("$skipToken") + $skipToken?: string, + ): ArmResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface BackupUsageSummaries { + /** + * Fetches the backup management usage summaries of the vault. + */ + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupUsageSummaries") + @get + @list + list( + ...ApiVersionParameter, + + /** + * The name of the recovery services vault. + */ + @path + vaultName: string, + + ...ResourceGroupParameter, + ...SubscriptionIdParameter, + + /** + * OData filter options. + */ + @query("$filter") + $filter?: string, + + /** + * skipToken Filter. + */ + @query("$skipToken") + $skipToken?: string, + ): ArmResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface Jobs { + /** + * Triggers export of jobs specified by filters and returns an OperationID to track. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobsExport") + @post + export( + ...ApiVersionParameter, + + /** + * The name of the recovery services vault. + */ + @path + vaultName: string, + + ...ResourceGroupParameter, + ...SubscriptionIdParameter, + + /** + * OData filter options. + */ + @query("$filter") + $filter?: string, + ): ArmAcceptedResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface BackupProtectedItems { + /** + * Provides a pageable list of all items that are backed up within a vault. + */ + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectedItems") + @get + @list + list( + ...ApiVersionParameter, + + /** + * The name of the recovery services vault. + */ + @path + vaultName: string, + + ...ResourceGroupParameter, + ...SubscriptionIdParameter, + + /** + * OData filter options. + */ + @query("$filter") + $filter?: string, + + /** + * skipToken Filter. + */ + @query("$skipToken") + $skipToken?: string, + ): ArmResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface OperationOperationGroup { + /** + * Validate operation for specified backed up item. This is a synchronous operation. + */ + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupValidateOperation") + @post + validate( + ...ApiVersionParameter, + + /** + * The name of the recovery services vault. + */ + @path + vaultName: string, + + ...ResourceGroupParameter, + ...SubscriptionIdParameter, + + /** + * resource validate operation request + */ + @bodyRoot + parameters: ValidateOperationRequestResource, + ): ArmResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface ValidateOperation { + /** + * Validate operation for specified backed up item in the form of an asynchronous operation. Returns tracking headers which can be tracked using GetValidateOperationResult API. + */ + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupTriggerValidateOperation") + @post + trigger( + ...ApiVersionParameter, + + /** + * The name of the recovery services vault. + */ + @path + vaultName: string, + + ...ResourceGroupParameter, + ...SubscriptionIdParameter, + + /** + * resource validate operation request + */ + @bodyRoot + parameters: ValidateOperationRequestResource, + ): ArmAcceptedResponse< + "Accepted", + ArmLroLocationHeader & Azure.Core.Foundations.RetryAfterHeader + > | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface ValidateOperationResults { + /** + * Fetches the result of a triggered validate operation. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupValidateOperationResults/{operationId}") + @get + get( + ...ApiVersionParameter, + + /** + * The name of the recovery services vault. + */ + @path + vaultName: string, + + ...ResourceGroupParameter, + ...SubscriptionIdParameter, + + /** + * OperationID which represents the operation whose result needs to be fetched. + */ + @path + operationId: string, + ): ArmResponse | ArmAcceptedResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface ValidateOperationStatuses { + /** + * Fetches the status of a triggered validate operation. The status can be in progress, completed + * or failed. You can refer to the OperationStatus enum for all the possible states of the operation. + * If operation has completed, this method returns the list of errors obtained while validating the operation. + */ + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupValidateOperationsStatuses/{operationId}") + @get + get( + ...ApiVersionParameter, + + /** + * The name of the recovery services vault. + */ + @path + vaultName: string, + + ...ResourceGroupParameter, + ...SubscriptionIdParameter, + + /** + * OperationID represents the operation whose status needs to be fetched. + */ + @path + operationId: string, + ): ArmResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface ProtectionContainerRefreshOperationResults { + /** + * Provides the result of the refresh operation triggered by the BeginRefresh operation. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/operationResults/{operationId}") + @get + get( + ...ApiVersionParameter, + + /** + * The name of the recovery services vault. + */ + @path + vaultName: string, + + ...ResourceGroupParameter, + ...SubscriptionIdParameter, + + /** + * Fabric name associated with the container. + */ + @path + fabricName: string, + + /** + * Operation ID associated with the operation whose result needs to be fetched. + */ + @path + operationId: string, + ): ArmAcceptedResponse | ArmNoContentResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface ProtectableContainers { + /** + * Lists the containers that can be registered to Recovery Services Vault. + */ + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectableContainers") + @get + @list + list( + ...ApiVersionParameter, + + /** + * The name of the recovery services vault. + */ + @path + vaultName: string, + + ...ResourceGroupParameter, + ...SubscriptionIdParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @path + fabricName: string, + + /** + * OData filter options. + */ + @query("$filter") + $filter?: string, + ): ArmResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface ProtectionContainersOperationGroup { + /** + * Discovers all the containers in the subscription that can be backed up to Recovery Services Vault. This is an + * asynchronous operation. To know the status of the operation, call GetRefreshOperationResult API. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/refreshContainers") + @post + refresh( + ...ApiVersionParameter, + + /** + * The name of the recovery services vault. + */ + @path + vaultName: string, + + ...ResourceGroupParameter, + ...SubscriptionIdParameter, + + /** + * Fabric name associated the container. + */ + @path + fabricName: string, + + /** + * OData filter options. + */ + @query("$filter") + $filter?: string, + ): ArmAcceptedResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface BackupOperationResults { + /** + * Provides the status of the delete operations such as deleting backed up item. Once the operation has started, the + * status code in the response would be Accepted. It will continue to be in this state till it reaches completion. On + * successful completion, the status code will be OK. This method expects OperationID as an argument. OperationID is + * part of the Location header of the operation response. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupOperationResults/{operationId}") + @get + get( + ...ApiVersionParameter, + + /** + * The name of the recovery services vault. + */ + @path + vaultName: string, + + ...ResourceGroupParameter, + ...SubscriptionIdParameter, + + /** + * OperationID which represents the operation. + */ + @path + operationId: string, + ): + | OkResponse + | ArmAcceptedResponse + | ArmNoContentResponse + | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface BackupOperationStatuses { + /** + * Fetches the status of an operation such as triggering a backup, restore. The status can be in progress, completed + * or failed. You can refer to the OperationStatus enum for all the possible states of an operation. Some operations + * create jobs. This method returns the list of jobs when the operation is complete. + */ + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupOperations/{operationId}") + @get + get( + ...ApiVersionParameter, + + /** + * The name of the recovery services vault. + */ + @path + vaultName: string, + + ...ResourceGroupParameter, + ...SubscriptionIdParameter, + + /** + * OperationID which represents the operation. + */ + @path + operationId: string, + ): ArmResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface BackupProtectableItems { + /** + * Provides a pageable list of protectable objects within your subscription according to the query filter and the + * pagination parameters. + */ + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectableItems") + @get + @list + list( + ...ApiVersionParameter, + + /** + * The name of the recovery services vault. + */ + @path + vaultName: string, + + ...ResourceGroupParameter, + ...SubscriptionIdParameter, + + /** + * OData filter options. + */ + @query("$filter") + $filter?: string, + + /** + * skipToken Filter. + */ + @query("$skipToken") + $skipToken?: string, + ): ArmResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface BackupProtectionContainers { + /** + * Lists the containers registered to Recovery Services Vault. + */ + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectionContainers") + @get + @list + list( + ...ApiVersionParameter, + + /** + * The name of the recovery services vault. + */ + @path + vaultName: string, + + ...ResourceGroupParameter, + ...SubscriptionIdParameter, + + /** + * OData filter options. + */ + @query("$filter") + $filter?: string, + ): ArmResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface DeletedProtectionContainers { + /** + * Lists the soft deleted containers registered to Recovery Services Vault. + */ + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupDeletedProtectionContainers") + @get + @list + list( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + + /** + * The name of the recovery services vault. + */ + @path + vaultName: string, + + /** + * OData filter options. + */ + @query("$filter") + $filter?: string, + ): ArmResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface SecurityPINs { + /** + * Get the security PIN. + */ + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupSecurityPIN") + @post + get( + ...ApiVersionParameter, + + /** + * The name of the recovery services vault. + */ + @path + vaultName: string, + + ...ResourceGroupParameter, + ...SubscriptionIdParameter, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @header + `x-ms-authorization-auxiliary`?: string, + + /** + * security pin request + */ + @bodyRoot + parameters?: SecurityPinBase, + ): ArmResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface FetchTieringCost { + /** + * Provides the details of the tiering related sizes and cost. + * Status of the operation can be fetched using GetTieringCostOperationStatus API and result using GetTieringCostOperationResult API. + */ + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupTieringCost/default/fetchTieringCost") + @post + post( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + + /** + * The name of the recovery services vault. + */ + @maxLength(50) + @minLength(2) + @pattern("^[A-Za-z][-A-Za-z0-9]*[A-Za-z0-9]$") + @path + vaultName: string, + + /** + * Fetch Tiering Cost Request + */ + @bodyRoot + parameters: FetchTieringCostInfoRequest, + ): ArmResponse | ArmAcceptedResponse< + "Accepted", + ArmLroLocationHeader< + Azure.Core.StatusMonitorPollingOptions, + TieringCostInfo, + string + > & + Azure.Core.Foundations.RetryAfterHeader + > | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface GetTieringCostOperationResult { + /** + * Gets the result of async operation for tiering cost + */ + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupTieringCost/default/operationResults/{operationId}") + @get + get( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + + /** + * The name of the recovery services vault. + */ + @maxLength(50) + @minLength(2) + @pattern("^[A-Za-z][-A-Za-z0-9]*[A-Za-z0-9]$") + @path + vaultName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @path + operationId: string, + ): ArmResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +interface TieringCostOperationStatus { + /** + * Gets the status of async operations of tiering cost + */ + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupTieringCost/default/operationsStatus/{operationId}") + @get + get( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + ...ResourceGroupParameter, + + /** + * The name of the recovery services vault. + */ + @maxLength(50) + @minLength(2) + @pattern("^[A-Za-z][-A-Za-z0-9]*[A-Za-z0-9]$") + @path + vaultName: string, + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @path + operationId: string, + ): ArmResponse | ErrorResponse; +} diff --git a/specification/recoveryservicesbackup/RecoveryServices.Management/tspconfig.yaml b/specification/recoveryservicesbackup/RecoveryServices.Management/tspconfig.yaml new file mode 100644 index 000000000000..0b556d3a9259 --- /dev/null +++ b/specification/recoveryservicesbackup/RecoveryServices.Management/tspconfig.yaml @@ -0,0 +1,51 @@ +parameters: + "service-dir": + default: "sdk/recoveryservicesbackup" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + emitter-output-dir: "{project-root}/.." + azure-resource-provider-folder: "resource-manager" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/bms.json" + arm-resource-flattening: false + emit-lro-options: "all" + "@azure-tools/typespec-csharp": + service-dir: "sdk/recoveryservices-backup" + flavor: azure + package-dir: "Azure.ResourceManager.RecoveryServicesBackup" + clear-output-folder: true + model-namespace: true + namespace: "{package-dir}" + "@azure-tools/typespec-python": + service-dir: "sdk/recoveryservices" + package-dir: "azure-mgmt-recoveryservicesbackup" + namespace: "azure.mgmt.recoveryservicesbackup" + generate-test: true + generate-sample: true + flavor: "azure" + "@azure-tools/typespec-java": + package-dir: "azure-resourcemanager-recoveryservicesbackup" + namespace: "com.azure.resourcemanager.recoveryservicesbackup" + service-name: "Recovery Services Backup" + flavor: azure + use-object-for-unknown: true + "@azure-tools/typespec-ts": + package-dir: "arm-recoveryservicesbackup" + flavor: azure + experimental-extensible-enums: true + package-details: + name: "@azure/arm-recoveryservicesbackup" + "@azure-tools/typespec-go": + service-dir: "sdk/resourcemanager/recoveryservices" + emitter-output-dir: "{output-dir}/{service-dir}/armrecoveryservicesbackup" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armrecoveryservicesbackup" + fix-const-stuttering: true + flavor: "azure" + generate-samples: true + generate-fakes: true + head-as-boolean: true + inject-spans: true +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/recoveryservicesbackup/cspell.yaml b/specification/recoveryservicesbackup/cspell.yaml index ea10d98a413c..a382f91b759e 100644 --- a/specification/recoveryservicesbackup/cspell.yaml +++ b/specification/recoveryservicesbackup/cspell.yaml @@ -22,6 +22,7 @@ words: - reregister - retriable - rgname + - securedVmosDiskEncryptionSetId - sqlag - sqldb - undelete @@ -35,4 +36,3 @@ overrides: **/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/**/bms.json words: - hanascaleoutcontainer - diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/bms.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/bms.json index 3654ac9b5de6..8a0d56373dd7 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/bms.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/bms.json @@ -1,185 +1,196 @@ { "swagger": "2.0", "info": { + "title": "Recovery Services Backup Client", "version": "2025-02-01", - "title": "RecoveryServicesBackupClient", - "x-ms-code-generation-settings": { - "internalConstructors": false - } + "description": "Open API 2.0 Specs for Azure RecoveryServices Backup service", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, - "host": "management.azure.com", "schemes": [ "https" ], - "consumes": [ + "host": "management.azure.com", + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "tags": [ + { + "name": "Operations" + }, + { + "name": "BackupResourceStorageConfigsNonCRR" + }, + { + "name": "BMSPrepareDataMoveOperationResult" + }, + { + "name": "BackupResourceConfigOperationStatuses" + }, + { + "name": "ProtectionIntentResources" + }, + { + "name": "BackupResourceVaultConfigs" + }, + { + "name": "BackupResourceEncryptionConfigs" + }, + { + "name": "PrivateEndpointConnectionResources" + }, + { + "name": "PrivateEndpointOperationStatuses" + }, + { + "name": "ProtectedItems" + }, + { + "name": "Backups" + }, + { + "name": "RecoveryPointsRecommendedForMove" + }, + { + "name": "ProtectedItemOperationStatuses" + }, + { + "name": "ProtectedItemOperationResults" + }, + { + "name": "ProtectionContainers" + }, + { + "name": "BackupWorkloadItems" + }, + { + "name": "ProtectionContainerOperationResults" + }, + { + "name": "RecoveryPoints" + }, + { + "name": "Restores" + }, + { + "name": "ItemLevelRecoveryConnections" + }, + { + "name": "ProtectionPolicies" + }, + { + "name": "BackupPolicies" + }, + { + "name": "ProtectionPolicyOperationResults" + }, + { + "name": "ProtectionPolicyOperationStatuses" + }, + { + "name": "JobDetails" + }, + { + "name": "BackupJobs" + }, + { + "name": "JobCancellations" + }, + { + "name": "JobOperationResults" + }, + { + "name": "ExportJobsOperationResults" + }, + { + "name": "BackupEngines" + }, + { + "name": "ResourceGuardProxy" + }, + { + "name": "ResourceGuardProxies" + } + ], "paths": { - "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupstorageconfig/vaultstorageconfig": { + "/providers/Microsoft.RecoveryServices/operations": { "get": { + "operationId": "Operations_List", "tags": [ - "BackupResourceStorageConfigsNonCRR" - ], - "description": "Fetches resource storage config.", - "operationId": "BackupResourceStorageConfigsNonCRR_Get", - "produces": [ - "application/json" - ], - "parameters": [ - { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" - }, - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/SubscriptionId" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/BackupResourceConfigResource" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/NewErrorResponse" - } - } - }, - "x-ms-examples": { - "Get Vault Storage Configuration": { - "$ref": "./examples/Common/BackupStorageConfig_Get.json" - } - } - }, - "put": { - "tags": [ - "BackupResourceStorageConfigsNonCRR" - ], - "description": "Updates vault storage model type.", - "operationId": "BackupResourceStorageConfigsNonCRR_Update", - "produces": [ - "application/json" + "Operations" ], + "description": "List the operations for the provider", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" - }, - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/SubscriptionId" - }, - { - "name": "parameters", - "in": "body", - "description": "Vault storage config request", - "required": true, - "schema": { - "$ref": "#/definitions/BackupResourceConfigResource" - } + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/BackupResourceConfigResource" + "$ref": "#/definitions/ClientDiscoveryResponse" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/NewErrorResponse" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Update Vault Storage Configuration": { - "$ref": "./examples/Common/BackupStorageConfig_Put.json" - } - } - }, - "patch": { - "tags": [ - "BackupResourceStorageConfigsNonCRR" - ], - "description": "Updates vault storage model type.", - "operationId": "BackupResourceStorageConfigsNonCRR_patch", - "parameters": [ - { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" - }, - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/SubscriptionId" - }, - { - "name": "parameters", - "in": "body", - "description": "Vault storage config request", - "required": true, - "schema": { - "$ref": "#/definitions/BackupResourceConfigResource" - } - } - ], - "responses": { - "204": { - "description": "NoContent" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/NewErrorResponse" - } + "ListOperations": { + "$ref": "./examples/ListOperations.json" } }, - "x-ms-examples": { - "Update Vault Storage Configuration": { - "$ref": "./examples/Common/BackupStorageConfig_Patch.json" - } + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupPreValidateProtection": { + "/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupPreValidateProtection": { "post": { - "tags": [ - "ProtectionIntent" - ], - "summary": "It will validate followings\r\n1. Vault capacity\r\n2. VM is already protected\r\n3. Any VM related configuration passed in properties.", "operationId": "ProtectionIntent_Validate", - "produces": [ - "application/json" - ], + "summary": "It will validate followings\n1. Vault capacity\n2. VM is already protected\n3. Any VM related configuration passed in properties.", + "description": "It will validate followings\n1. Vault capacity\n2. VM is already protected\n3. Any VM related configuration passed in properties.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AzureRegion" + "name": "azureRegion", + "in": "path", + "description": "Azure region to hit Api", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { "name": "parameters", @@ -193,10 +204,16 @@ ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/PreValidateEnableBackupResponse" } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } } }, "x-ms-examples": { @@ -206,25 +223,24 @@ } } }, - "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupStatus": { + "/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupStatus": { "post": { - "tags": [ - "BackupStatus" - ], - "summary": "Get the container backup status", "operationId": "BackupStatus_Get", - "produces": [ - "application/json" - ], + "summary": "Get the container backup status", + "description": "Get the container backup status", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AzureRegion" + "name": "azureRegion", + "in": "path", + "description": "Azure region to hit Api", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { "name": "parameters", @@ -238,10 +254,16 @@ ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/BackupStatusResponse" } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } } }, "x-ms-examples": { @@ -251,25 +273,24 @@ } } }, - "/Subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupValidateFeatures": { + "/subscriptions/{subscriptionId}/providers/Microsoft.RecoveryServices/locations/{azureRegion}/backupValidateFeatures": { "post": { - "tags": [ - "FeatureSupport" - ], - "summary": "It will validate if given feature with resource properties is supported in service", "operationId": "FeatureSupport_Validate", - "produces": [ - "application/json" - ], + "summary": "It will validate if given feature with resource properties is supported in service", + "description": "It will validate if given feature with resource properties is supported in service", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/AzureRegion" + "name": "azureRegion", + "in": "path", + "description": "Azure region to hit Api", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { "name": "parameters", @@ -283,10 +304,16 @@ ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/AzureVMResourceFeatureSupportResponse" } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } } }, "x-ms-examples": { @@ -296,189 +323,178 @@ } } }, - "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/backupProtectionIntent/{intentObjectName}": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupDeletedProtectionContainers": { "get": { - "tags": [ - "ProtectionIntent" - ], - "description": "Provides the details of the protection intent up item. This is an asynchronous operation. To know the status of the operation,\r\ncall the GetItemOperationResult API.", - "operationId": "ProtectionIntent_Get", - "produces": [ - "application/json" - ], + "operationId": "DeletedProtectionContainers_List", + "description": "Lists the soft deleted containers registered to Recovery Services Vault.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "fabricName", + "name": "vaultName", "in": "path", - "description": "Fabric name associated with the backed up item.", + "description": "The name of the recovery services vault.", "required": true, "type": "string" }, { - "name": "intentObjectName", - "in": "path", - "description": "Backed up item name whose details are to be fetched.", - "required": true, + "name": "$filter", + "in": "query", + "description": "OData filter options.", + "required": false, "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ProtectionIntentResource" + "$ref": "#/definitions/ProtectionContainerResourceList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get ProtectionIntent for an item": { - "$ref": "./examples/AzureWorkload/BackupProtectionIntent_Get.json" + "List Backup Protection Containers": { + "$ref": "./examples/AzureStorage/SoftDeletedContainers_List.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } - }, - "put": { + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupEncryptionConfigs/backupResourceEncryptionConfig": { + "get": { + "operationId": "BackupResourceEncryptionConfigs_Get", "tags": [ - "ProtectionIntent" - ], - "description": "Create Intent for Enabling backup of an item. This is a synchronous operation.", - "operationId": "ProtectionIntent_CreateOrUpdate", - "produces": [ - "application/json" + "BackupResourceEncryptionConfigs" ], + "description": "Fetches Vault Encryption config.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" - }, - { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "fabricName", - "in": "path", - "description": "Fabric name associated with the backup item.", - "required": true, - "type": "string" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "intentObjectName", + "name": "vaultName", "in": "path", - "description": "Intent object name.", + "description": "The name of the VaultResource", "required": true, "type": "string" - }, - { - "name": "parameters", - "in": "body", - "description": "resource backed up item", - "required": true, - "schema": { - "$ref": "#/definitions/ProtectionIntentResource" - } } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ProtectionIntentResource" + "$ref": "#/definitions/BackupResourceEncryptionConfigExtendedResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Create or Update Azure Vm Protection Intent": { - "$ref": "./examples/AzureIaasVm/ProtectionIntent_CreateOrUpdate.json" + "Get Vault Encryption Configuration": { + "$ref": "./examples/BackupResourceEncryptionConfig_Get.json" } } }, - "delete": { + "put": { + "operationId": "BackupResourceEncryptionConfigs_Update", "tags": [ - "ProtectionIntent" - ], - "description": "Used to remove intent from an item", - "operationId": "ProtectionIntent_Delete", - "produces": [ - "application/json" + "BackupResourceEncryptionConfigs" ], + "description": "Updates Vault encryption config.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "fabricName", + "name": "vaultName", "in": "path", - "description": "Fabric name associated with the intent.", + "description": "The name of the VaultResource", "required": true, "type": "string" }, { - "name": "intentObjectName", - "in": "path", - "description": "Intent to be deleted.", + "name": "parameters", + "in": "body", + "description": "Vault encryption input config request", "required": true, - "type": "string" + "schema": { + "$ref": "#/definitions/BackupResourceEncryptionConfigResource" + } } ], "responses": { - "204": { - "description": "NoContent" + "200": { + "description": "The request has succeeded." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } } }, "x-ms-examples": { - "Delete Protection intent from item": { - "$ref": "./examples/AzureWorkload/BackupProtectionIntent_Delete.json" + "Update Vault Encryption Configuration": { + "$ref": "./examples/BackupResourceEncryptionConfig_Put.json" } } } }, - "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectionIntents": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupEngines": { "get": { + "operationId": "BackupEngines_List", "tags": [ - "BackupProtectionIntent" - ], - "description": "Provides a pageable list of all intents that are present within a vault.", - "operationId": "BackupProtectionIntent_List", - "produces": [ - "application/json" + "BackupEngines" ], + "description": "Backup management servers registered to Recovery Services Vault. Returns a pageable list of servers.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { "name": "$filter", @@ -497,45 +513,58 @@ ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ProtectionIntentResourceList" + "$ref": "#/definitions/BackupEngineBaseResourceList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-odata": "#/definitions/ProtectionIntentQueryObject", - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "List protection intent with backupManagementType filter": { - "$ref": "./examples/AzureWorkload/BackupProtectionIntent_List.json" + "List Dpm/AzureBackupServer/Lajolla Backup Engines": { + "$ref": "./examples/Dpm/BackupEngines_List.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupUsageSummaries": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupEngines/{backupEngineName}": { "get": { + "operationId": "BackupEngines_Get", "tags": [ - "BackupUsageSummaries" - ], - "description": "Fetches the backup management usage summaries of the vault.", - "operationId": "BackupUsageSummaries_List", - "produces": [ - "application/json" + "BackupEngines" ], + "description": "Returns backup management server registered to Recovery Services Vault.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "backupEngineName", + "in": "path", + "description": "Name of the backup management server.", + "required": true, + "type": "string" }, { "name": "$filter", @@ -554,387 +583,416 @@ ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/BackupManagementUsageList" + "$ref": "#/definitions/BackupEngineBaseResource" } - } - }, - "x-ms-odata": "#/definitions/BMSBackupSummariesQueryObject", - "x-ms-pageable": { - "nextLinkName": null - }, - "x-ms-examples": { - "Get Protected Items Usages Summary": { - "$ref": "./examples/Common/BackupProtectedItem_UsageSummary_Get.json" }, - "Get Protected Containers Usages Summary": { - "$ref": "./examples/Common/BackupProtectionContainers_UsageSummary_Get.json" - } - } - } - }, - "/providers/Microsoft.RecoveryServices/operations": { - "get": { - "tags": [ - "Operations" - ], - "description": "Returns the list of available operations.", - "operationId": "Operations_List", - "parameters": [ - { - "$ref": "#/parameters/ApiVersion" - } - ], - "responses": { - "200": { - "description": "OK", + "default": { + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/ClientDiscoveryResponse" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink", - "itemName": "value" - }, "x-ms-examples": { - "ListOperations": { - "$ref": "./examples/ListOperations.json" + "Get Dpm/AzureBackupServer/Lajolla Backup Engine Details": { + "$ref": "./examples/Dpm/BackupEngines_Get.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupconfig/vaultconfig": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/backupProtectionIntent/{intentObjectName}": { "get": { + "operationId": "ProtectionIntent_Get", "tags": [ - "BackupResourceVaultConfigs" - ], - "description": "Fetches resource vault config.", - "operationId": "BackupResourceVaultConfigs_Get", - "produces": [ - "application/json" + "ProtectionIntentResources" ], + "description": "Provides the details of the protection intent up item. This is an asynchronous operation. To know the status of the operation,\ncall the GetItemOperationResult API.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/VaultName" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ResourceGroupName" + "name": "fabricName", + "in": "path", + "description": "The name of the BackupFabricResource", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "intentObjectName", + "in": "path", + "description": "Backed up item name whose details are to be fetched.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/BackupResourceVaultConfigResource" + "$ref": "#/definitions/ProtectionIntentResource" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/NewErrorResponse" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get Vault Security Config": { - "$ref": "./examples/Common/BackupResourceVaultConfigs_Get.json" + "Get ProtectionIntent for an item": { + "$ref": "./examples/AzureWorkload/BackupProtectionIntent_Get.json" } } }, - "patch": { + "put": { + "operationId": "ProtectionIntent_CreateOrUpdate", "tags": [ - "BackupResourceVaultConfigs" - ], - "description": "Updates vault security config.", - "operationId": "BackupResourceVaultConfigs_Update", - "produces": [ - "application/json" + "ProtectionIntentResources" ], + "description": "Create Intent for Enabling backup of an item. This is a synchronous operation.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/VaultName" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ResourceGroupName" + "name": "fabricName", + "in": "path", + "description": "The name of the BackupFabricResource", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "intentObjectName", + "in": "path", + "description": "Backed up item name whose details are to be fetched.", + "required": true, + "type": "string" }, { "name": "parameters", "in": "body", - "description": "resource config request", + "description": "resource backed up item", "required": true, "schema": { - "$ref": "#/definitions/BackupResourceVaultConfigResource" + "$ref": "#/definitions/ProtectionIntentResource" } - }, - { - "name": "x-ms-authorization-auxiliary", - "in": "header", - "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Resource 'ProtectionIntentResource' update operation succeeded", "schema": { - "$ref": "#/definitions/BackupResourceVaultConfigResource" + "$ref": "#/definitions/ProtectionIntentResource" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/NewErrorResponse" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Update Vault Security Config": { - "$ref": "./examples/Common/BackupResourceVaultConfigs_Patch.json" + "Create or Update Azure Vm Protection Intent": { + "$ref": "./examples/AzureIaasVm/ProtectionIntent_CreateOrUpdate.json" } } }, - "put": { + "delete": { + "operationId": "ProtectionIntent_Delete", "tags": [ - "BackupResourceVaultConfigs" - ], - "description": "Updates vault security config. ", - "operationId": "BackupResourceVaultConfigs_Put", - "produces": [ - "application/json" + "ProtectionIntentResources" ], + "description": "Used to remove intent from an item", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { - "name": "parameters", - "in": "body", - "description": "resource config request", + "name": "fabricName", + "in": "path", + "description": "The name of the BackupFabricResource", "required": true, - "schema": { - "$ref": "#/definitions/BackupResourceVaultConfigResource" - } + "type": "string" }, { - "name": "x-ms-authorization-auxiliary", - "in": "header", + "name": "intentObjectName", + "in": "path", + "description": "Backed up item name whose details are to be fetched.", + "required": true, "type": "string" } ], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/BackupResourceVaultConfigResource" - } + "204": { + "description": "Resource does not exist." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/NewErrorResponse" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Update Vault Security Config": { - "$ref": "./examples/Common/BackupResourceVaultConfigs_Put.json" + "Delete Protection intent from item": { + "$ref": "./examples/AzureWorkload/BackupProtectionIntent_Delete.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupEncryptionConfigs/backupResourceEncryptionConfig": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/operationResults/{operationId}": { "get": { - "tags": [ - "BackupResourceEncryptionConfigs" - ], - "description": "Fetches Vault Encryption config.", - "operationId": "BackupResourceEncryptionConfigs_Get", - "produces": [ - "application/json" - ], + "operationId": "ProtectionContainerRefreshOperationResults_Get", + "description": "Provides the result of the refresh operation triggered by the BeginRefresh operation.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "vaultName", + "in": "path", + "description": "The name of the recovery services vault.", + "required": true, + "type": "string" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "name": "fabricName", + "in": "path", + "description": "Fabric name associated with the container.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "operationId", + "in": "path", + "description": "Operation ID associated with the operation whose result needs to be fetched.", + "required": true, + "type": "string" } ], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/BackupResourceEncryptionConfigExtendedResource" - } + "202": { + "description": "Resource operation accepted." + }, + "204": { + "description": "Operation completed successfully." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/NewErrorResponse" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get Vault Encryption Configuration": { - "$ref": "./examples/BackupResourceEncryptionConfig_Get.json" + "Azure Vm Discovery Operation Result": { + "$ref": "./examples/Common/RefreshContainers_OperationResults.json" } } - }, - "put": { - "tags": [ - "BackupResourceEncryptionConfigs" - ], - "description": "Updates Vault encryption config.", - "operationId": "BackupResourceEncryptionConfigs_Update", - "produces": [ - "application/json" - ], + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectableContainers": { + "get": { + "operationId": "ProtectableContainers_List", + "description": "Lists the containers that can be registered to Recovery Services Vault.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "name": "vaultName", + "in": "path", + "description": "The name of the recovery services vault.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "parameters", - "in": "body", - "description": "Vault encryption input config request", + "name": "fabricName", + "in": "path", "required": true, - "schema": { - "$ref": "#/definitions/BackupResourceEncryptionConfigResource" - } + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "OData filter options.", + "required": false, + "type": "string" } ], "responses": { "200": { - "description": "OK" + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ProtectableContainerResourceList" + } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/NewErrorResponse" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Update Vault Encryption Configuration": { - "$ref": "./examples/BackupResourceEncryptionConfig_Put.json" + "List protectable items with backupManagementType filter as AzureStorage": { + "$ref": "./examples/AzureStorage/ProtectableContainers_List.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/privateEndpointConnections/{privateEndpointConnectionName}": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}": { "get": { + "operationId": "ProtectionContainers_Get", "tags": [ - "PrivateEndpointConnection" - ], - "description": "Get Private Endpoint Connection. This call is made by Backup Admin.", - "operationId": "PrivateEndpointConnection_Get", - "produces": [ - "application/json" + "ProtectionContainers" ], + "description": "Gets details of the specific container registered to your Recovery Services Vault.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { - "name": "privateEndpointConnectionName", + "name": "fabricName", "in": "path", - "description": "The name of the private endpoint connection.", + "description": "The name of the BackupFabricResource", + "required": true, + "type": "string" + }, + { + "name": "containerName", + "in": "path", + "description": "Name of the container whose details need to be fetched.", "required": true, "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/PrivateEndpointConnectionResource" + "$ref": "#/definitions/ProtectionContainerResource" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/NewErrorResponse" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get PrivateEndpointConnection": { - "$ref": "./examples/PrivateEndpointConnection/GetPrivateEndpointConnection.json" + "Get Protection Container Details": { + "$ref": "./examples/AzureWorkload/ProtectionContainers_Get.json" } } }, "put": { + "operationId": "ProtectionContainers_Register", "tags": [ - "PrivateEndpointConnection" - ], - "description": "Approve or Reject Private Endpoint requests. This call is made by Backup Admin.", - "operationId": "PrivateEndpointConnection_Put", - "produces": [ - "application/json" + "ProtectionContainers" ], + "description": "Registers the container with Recovery Services vault.\nThis is an asynchronous operation. To track the operation status, use location header to call get latest status of\nthe operation.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { - "name": "privateEndpointConnectionName", + "name": "fabricName", "in": "path", - "description": "The name of the private endpoint connection.", + "description": "The name of the BackupFabricResource", + "required": true, + "type": "string" + }, + { + "name": "containerName", + "in": "path", + "description": "Name of the container whose details need to be fetched.", "required": true, "type": "string" }, @@ -944,400 +1002,360 @@ "description": "Request body for operation", "required": true, "schema": { - "$ref": "#/definitions/PrivateEndpointConnectionResource" + "$ref": "#/definitions/ProtectionContainerResource" } } ], "responses": { "200": { - "description": "OK", + "description": "Resource 'ProtectionContainerResource' update operation succeeded", "schema": { - "$ref": "#/definitions/PrivateEndpointConnectionResource" + "$ref": "#/definitions/ProtectionContainerResource" } }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/PrivateEndpointConnectionResource" + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-long-running-operation": true, "x-ms-examples": { - "Update PrivateEndpointConnection": { - "$ref": "./examples/PrivateEndpointConnection/PutPrivateEndpointConnection.json" + "RegisterAzure Storage ProtectionContainers": { + "$ref": "./examples/AzureStorage/ProtectionContainers_Register.json" } - } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location", + "final-state-schema": "#/definitions/ProtectionContainerResource" + }, + "x-ms-long-running-operation": true }, "delete": { + "operationId": "ProtectionContainers_Unregister", "tags": [ - "PrivateEndpointConnection" - ], - "description": "Delete Private Endpoint requests. This call is made by Backup Admin.", - "operationId": "PrivateEndpointConnection_Delete", - "produces": [ - "application/json" + "ProtectionContainers" ], + "description": "Unregisters the given container from your Recovery Services Vault. This is an asynchronous operation. To determine\nwhether the backend service has finished processing the request, call Get Container Operation Result API.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "fabricName", + "in": "path", + "description": "The name of the BackupFabricResource", + "required": true, + "type": "string" }, { - "name": "privateEndpointConnectionName", + "name": "containerName", "in": "path", - "description": "The name of the private endpoint connection.", + "description": "Name of the container whose details need to be fetched.", "required": true, "type": "string" } ], "responses": { "200": { - "description": "OK" + "description": "Resource deleted successfully." }, "202": { - "description": "Accepted" + "description": "The request has been accepted for processing, but processing has not yet completed." }, "204": { - "description": "NoContent" + "description": "Resource does not exist." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-long-running-operation": true, "x-ms-examples": { - "Delete PrivateEndpointConnection": { - "$ref": "./examples/PrivateEndpointConnection/DeletePrivateEndpointConnection.json" + "Unregister Protection Container": { + "$ref": "./examples/AzureWorkload/ProtectionContainers_Unregister.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/privateEndpointConnections/{privateEndpointConnectionName}/operationsStatus/{operationId}": { - "get": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/inquire": { + "post": { + "operationId": "ProtectionContainers_Inquire", "tags": [ - "PrivateEndpoint" - ], - "summary": "Gets the operation status for a private endpoint connection.", - "operationId": "PrivateEndpoint_GetOperationStatus", - "produces": [ - "application/json" + "ProtectionContainers" ], + "description": "This is an async operation and the results should be tracked using location header or Azure-async-url.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { - "name": "privateEndpointConnectionName", + "name": "fabricName", "in": "path", - "description": "The name of the private endpoint connection.", + "description": "The name of the BackupFabricResource", "required": true, "type": "string" }, { - "name": "operationId", + "name": "containerName", "in": "path", - "description": "Operation id", + "description": "Name of the container whose details need to be fetched.", "required": true, "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "OData filter options.", + "required": false, + "type": "string" } ], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/OperationStatus" - } + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/NewErrorResponse" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get OperationStatus": { - "$ref": "./examples/PrivateEndpointConnection/GetPrivateEndpointConnectionOperationStatus.json" + "Inquire Azure Storage Protection Containers": { + "$ref": "./examples/AzureStorage/ProtectionContainers_Inquire.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupstorageconfig/vaultstorageconfig/operationStatus/{operationId}": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/items": { "get": { + "operationId": "BackupWorkloadItems_List", "tags": [ - "DataMove" - ], - "description": "Fetches operation status for data move operation on vault", - "operationId": "GetOperationStatus", - "produces": [ - "application/json" + "BackupWorkloadItems" ], + "description": "Provides a pageable list of workload item of a specific container according to the query filter and the pagination\nparameters.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { - "name": "operationId", + "name": "fabricName", + "in": "path", + "description": "The name of the BackupFabricResource", + "required": true, + "type": "string" + }, + { + "name": "containerName", "in": "path", + "description": "Name of the container whose details need to be fetched.", "required": true, "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "OData filter options.", + "required": false, + "type": "string" + }, + { + "name": "$skipToken", + "in": "query", + "description": "skipToken Filter.", + "required": false, + "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/OperationStatus" + "$ref": "#/definitions/WorkloadItemResourceList" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/NewErrorResponse" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get OperationStatus": { - "$ref": "./examples/BackupDataMove/BackupDataMoveOperationStatus_Get.json" + "List Workload Items in Container": { + "$ref": "./examples/AzureWorkload/BackupWorkloadItems_List.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupstorageconfig/vaultstorageconfig/prepareDataMove": { - "post": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/operationResults/{operationId}": { + "get": { + "operationId": "ProtectionContainerOperationResults_Get", "tags": [ - "DataMove" - ], - "description": "Prepares source vault for Data Move operation", - "operationId": "BMSPrepareDataMove", - "produces": [ - "application/json" + "ProtectionContainerOperationResults" ], + "description": "Fetches the result of any operation on the container.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "vaults", + "required": true, + "type": "string" }, { - "name": "parameters", - "in": "body", - "description": "Prepare data move request", + "name": "fabricName", + "in": "path", + "description": "backupFabrics", "required": true, - "schema": { - "$ref": "#/definitions/PrepareDataMoveRequest" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "202": { - "description": "Accepted" - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/NewErrorResponse" - } - } - }, - "x-ms-long-running-operation": true, - "x-ms-examples": { - "Prepare Data Move": { - "$ref": "./examples/BackupDataMove/PrepareDataMove_Post.json" - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupstorageconfig/vaultstorageconfig/operationResults/{operationId}": { - "get": { - "tags": [ - "BMSPrepareDataMoveOperationResult" - ], - "description": "Fetches Operation Result for Prepare Data Move", - "operationId": "BMSPrepareDataMoveOperationResult_Get", - "produces": [ - "application/json" - ], - "parameters": [ - { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" - }, - { - "$ref": "#/parameters/ResourceGroupName" + "type": "string" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "containerName", + "in": "path", + "description": "The name of the ProtectionContainerResource", + "required": true, + "type": "string" }, { "name": "operationId", "in": "path", + "description": "The name of the ProtectionContainerResource", "required": true, "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/VaultStorageConfigOperationResultResponse" + "$ref": "#/definitions/ProtectionContainerResource" } }, "202": { - "description": "Accepted" - }, - "default": { - "description": "Error response describing why the operation failed. ", - "schema": { - "$ref": "#/definitions/NewErrorResponse" - } - } - }, - "x-ms-examples": { - "Get operation result for PrepareDataMove": { - "$ref": "./examples/BackupDataMove/PrepareDataMoveOperationResult_Get.json" - } - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupstorageconfig/vaultstorageconfig/triggerDataMove": { - "post": { - "tags": [ - "DataMove" - ], - "description": "Triggers Data Move Operation on target vault", - "operationId": "BMSTriggerDataMove", - "produces": [ - "application/json" - ], - "parameters": [ - { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" + "description": "The request has been accepted for processing, but processing has not yet completed." }, - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/SubscriptionId" - }, - { - "name": "parameters", - "in": "body", - "description": "Trigger data move request", - "required": true, - "schema": { - "$ref": "#/definitions/TriggerDataMoveRequest" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "202": { - "description": "Accepted" + "204": { + "description": "Operation completed successfully." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/NewErrorResponse" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-long-running-operation": true, "x-ms-examples": { - "Trigger Data Move": { - "$ref": "./examples/BackupDataMove/TriggerDataMove_Post.json" + "Get Azure Storage Protection Container Operation Result": { + "$ref": "./examples/AzureStorage/ProtectionContainers_Inquire_Result.json" } } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}": { "get": { + "operationId": "ProtectedItems_Get", "tags": [ "ProtectedItems" ], - "description": "Provides the details of the backed up item. This is an asynchronous operation. To know the status of the operation,\r\ncall the GetItemOperationResult API.", - "operationId": "ProtectedItems_Get", - "produces": [ - "application/json" - ], + "description": "Provides the details of the backed up item. This is an asynchronous operation. To know the status of the operation,\ncall the GetItemOperationResult API.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { "name": "fabricName", "in": "path", - "description": "Fabric name associated with the backed up item.", + "description": "The name of the BackupFabricResource", "required": true, "type": "string" }, { "name": "containerName", "in": "path", - "description": "Container name associated with the backed up item.", + "description": "Name of the container whose details need to be fetched.", "required": true, "type": "string" }, @@ -1358,19 +1376,18 @@ ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/ProtectedItemResource" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-odata": "#/definitions/GetProtectedItemQueryObject", "x-ms-examples": { "Get Protected Classic Virtual Machine Details": { "$ref": "./examples/AzureIaasVm/ClassicCompute_ProtectedItem_Get.json" @@ -1381,48 +1398,55 @@ } }, "put": { + "operationId": "ProtectedItems_CreateOrUpdate", "tags": [ "ProtectedItems" ], - "description": "Enables backup of an item or to modifies the backup policy information of an already backed up item. This is an\r\nasynchronous operation. To know the status of the operation, call the GetItemOperationResult API.", - "operationId": "ProtectedItems_CreateOrUpdate", - "produces": [ - "application/json" - ], + "description": "Enables backup of an item or to modifies the backup policy information of an already backed up item. This is an\nasynchronous operation. To know the status of the operation, call the GetItemOperationResult API.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { "name": "fabricName", "in": "path", - "description": "Fabric name associated with the backup item.", + "description": "The name of the BackupFabricResource", "required": true, "type": "string" }, { "name": "containerName", "in": "path", - "description": "Container name associated with the backup item.", + "description": "Name of the container whose details need to be fetched.", "required": true, "type": "string" }, { "name": "protectedItemName", "in": "path", - "description": "Item name to be backed up.", + "description": "Backed up item name whose details are to be fetched.", "required": true, "type": "string" }, + { + "name": "x-ms-authorization-auxiliary", + "in": "header", + "required": false, + "type": "string" + }, { "name": "parameters", "in": "body", @@ -1431,27 +1455,22 @@ "schema": { "$ref": "#/definitions/ProtectedItemResource" } - }, - { - "name": "x-ms-authorization-auxiliary", - "in": "header", - "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Resource 'ProtectedItemResource' update operation succeeded", "schema": { "$ref": "#/definitions/ProtectedItemResource" } }, "202": { - "description": "Accepted" + "description": "The request has been accepted for processing, but processing has not yet completed." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, @@ -1465,63 +1484,64 @@ } }, "delete": { + "operationId": "ProtectedItems_Delete", "tags": [ "ProtectedItems" ], - "description": "Used to disable backup of an item within a container. This is an asynchronous operation. To know the status of the\r\nrequest, call the GetItemOperationResult API.", - "operationId": "ProtectedItems_Delete", - "produces": [ - "application/json" - ], + "description": "Used to disable backup of an item within a container. This is an asynchronous operation. To know the status of the\nrequest, call the GetItemOperationResult API.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { "name": "fabricName", "in": "path", - "description": "Fabric name associated with the backed up item.", + "description": "The name of the BackupFabricResource", "required": true, "type": "string" }, { "name": "containerName", "in": "path", - "description": "Container name associated with the backed up item.", + "description": "Name of the container whose details need to be fetched.", "required": true, "type": "string" }, { "name": "protectedItemName", "in": "path", - "description": "Backed up item to be deleted.", + "description": "Backed up item name whose details are to be fetched.", "required": true, "type": "string" } ], "responses": { "200": { - "description": "OK" + "description": "Resource deleted successfully." }, "202": { - "description": "Accepted" + "description": "The request has been accepted for processing, but processing has not yet completed." }, "204": { - "description": "NoContent" + "description": "Resource does not exist." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, @@ -1532,1294 +1552,1349 @@ } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/operationResults/{operationId}": { - "get": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/backup": { + "post": { + "operationId": "Backups_Trigger", "tags": [ - "ProtectedItemOperationResults" - ], - "description": "Fetches the result of any operation on the backup item.", - "operationId": "ProtectedItemOperationResults_Get", - "produces": [ - "application/json" + "Backups" ], + "description": "Triggers backup for specified backed up item. This is an asynchronous operation. To know the status of the\noperation, call GetProtectedItemOperationResult API.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { "name": "fabricName", "in": "path", - "description": "Fabric name associated with the backup item.", + "description": "The name of the BackupFabricResource", "required": true, "type": "string" }, { "name": "containerName", "in": "path", - "description": "Container name associated with the backup item.", + "description": "Name of the container whose details need to be fetched.", "required": true, "type": "string" }, { "name": "protectedItemName", "in": "path", - "description": "Backup item name whose details are to be fetched.", + "description": "Backed up item name whose details are to be fetched.", "required": true, "type": "string" }, { - "name": "operationId", - "in": "path", - "description": "OperationID which represents the operation whose result needs to be fetched.", + "name": "parameters", + "in": "body", + "description": "resource backup request", "required": true, - "type": "string" + "schema": { + "$ref": "#/definitions/BackupRequestResource" + } } ], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ProtectedItemResource" - } - }, "202": { - "description": "Accepted" - }, - "204": { - "description": "NoContent" + "description": "The request has been accepted for processing, but processing has not yet completed." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get Operation Results of Protected Vm": { - "$ref": "./examples/AzureIaasVm/ProtectedItemOperationResults.json" + "Trigger Backup": { + "$ref": "./examples/Common/TriggerBackup_Post.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/operationResults/{operationId}": { "get": { + "operationId": "ProtectedItemOperationResults_Get", "tags": [ - "RecoveryPoints" - ], - "description": "Lists the backup copies for the backed up item.", - "operationId": "RecoveryPoints_List", - "produces": [ - "application/json" + "ProtectedItemOperationResults" ], + "description": "Fetches the result of any operation on the backup item.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "vaults", + "required": true, + "type": "string" }, { "name": "fabricName", "in": "path", - "description": "Fabric name associated with the backed up item.", + "description": "backupFabrics", "required": true, "type": "string" }, { "name": "containerName", "in": "path", - "description": "Container name associated with the backed up item.", + "description": "The name of the ProtectionContainerResource", "required": true, "type": "string" }, { "name": "protectedItemName", "in": "path", - "description": "Backed up item whose backup copies are to be fetched.", + "description": "The name of the ProtectedItemResource", "required": true, "type": "string" }, { - "name": "$filter", - "in": "query", - "description": "OData filter options.", - "required": false, + "name": "operationId", + "in": "path", + "description": "The name of the ProtectedItemResource", + "required": true, "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/RecoveryPointResourceList" + "$ref": "#/definitions/ProtectedItemResource" } }, + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed." + }, + "204": { + "description": "Operation completed successfully." + }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-odata": "#/definitions/BMSRPQueryObject", - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "Get Protected Azure Vm Recovery Points": { - "$ref": "./examples/AzureIaasVm/RecoveryPoints_List.json" + "Get Operation Results of Protected Vm": { + "$ref": "./examples/AzureIaasVm/ProtectedItemOperationResults.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/operationsStatus/{operationId}": { "get": { + "operationId": "ProtectedItemOperationStatuses_Get", "tags": [ - "RecoveryPoints" - ], - "description": "Provides the information of the backed up data identified using RecoveryPointID. This is an asynchronous operation.\r\nTo know the status of the operation, call the GetProtectedItemOperationResult API.", - "operationId": "RecoveryPoints_Get", - "produces": [ - "application/json" + "ProtectedItemOperationStatuses" ], + "description": "Fetches the status of an operation such as triggering a backup, restore. The status can be in progress, completed\nor failed. You can refer to the OperationStatus enum for all the possible states of the operation. Some operations\ncreate jobs. This method returns the list of jobs associated with the operation.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "vaults", + "required": true, + "type": "string" }, { "name": "fabricName", "in": "path", - "description": "Fabric name associated with backed up item.", + "description": "backupFabrics", "required": true, "type": "string" }, { "name": "containerName", "in": "path", - "description": "Container name associated with backed up item.", + "description": "The name of the ProtectionContainerResource", "required": true, "type": "string" }, { "name": "protectedItemName", "in": "path", - "description": "Backed up item name whose backup data needs to be fetched.", + "description": "The name of the ProtectedItemResource", "required": true, "type": "string" }, { - "name": "recoveryPointId", + "name": "operationId", "in": "path", - "description": "RecoveryPointID represents the backed up data to be fetched.", + "description": "The name of the ProtectedItemResource", "required": true, "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/RecoveryPointResource" + "$ref": "#/definitions/OperationStatus" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get Azure Vm Recovery Point Details": { - "$ref": "./examples/AzureIaasVm/RecoveryPoints_Get.json" + "Get Operation Status of Protected Vm": { + "$ref": "./examples/AzureIaasVm/ProtectedItemOperationStatus.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/restore": { - "post": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints": { + "get": { + "operationId": "RecoveryPoints_List", "tags": [ - "Restores" - ], - "description": "Restores the specified backed up data. This is an asynchronous operation. To know the status of this API call, use\r\nGetProtectedItemOperationResult API.", - "operationId": "Restores_Trigger", - "produces": [ - "application/json" + "RecoveryPoints" ], + "description": "Lists the backup copies for the backed up item.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "fabricName", + "name": "vaultName", "in": "path", - "description": "Fabric name associated with the backed up items.", + "description": "The name of the VaultResource", "required": true, "type": "string" }, { - "name": "containerName", + "name": "fabricName", "in": "path", - "description": "Container name associated with the backed up items.", + "description": "The name of the BackupFabricResource", "required": true, "type": "string" }, { - "name": "protectedItemName", + "name": "containerName", "in": "path", - "description": "Backed up item to be restored.", + "description": "Name of the container whose details need to be fetched.", "required": true, "type": "string" }, { - "name": "recoveryPointId", + "name": "protectedItemName", "in": "path", - "description": "Recovery point ID which represents the backed up data to be restored.", + "description": "Backed up item name whose details are to be fetched.", "required": true, "type": "string" }, { - "name": "parameters", - "in": "body", - "description": "resource restore request", - "required": true, - "schema": { - "$ref": "#/definitions/RestoreRequestResource" - } - }, - { - "name": "x-ms-authorization-auxiliary", - "in": "header", + "name": "$filter", + "in": "query", + "description": "OData filter options.", + "required": false, "type": "string" } ], "responses": { - "202": { - "description": "Accepted" + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/RecoveryPointResourceList" + } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-long-running-operation": true, "x-ms-examples": { - "Restore to New Azure IaasVm with IaasVMRestoreRequest": { - "$ref": "./examples/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreRequest.json" - }, - "Restore to New Azure IaasVm with IaasVMRestoreRequest with identityBasedRestoreDetails": { - "$ref": "./examples/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreRequest_IdentityBasedRestoreDetails.json" - }, - "Restore to New Azure IaasVm with IaasVMRestoreWithRehydrationRequest": { - "$ref": "./examples/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreWithRehydrationRequest.json" - }, - "Restore Disks with IaasVMRestoreRequest": { - "$ref": "./examples/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreRequest.json" - }, - "Restore Disks with IaasVMRestoreRequest with IdentityBasedRestoreDetails": { - "$ref": "./examples/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreRequest_IdentityBasedRestoreDetails.json" - }, - "Restore Disks with IaasVMRestoreWithRehydrationRequest": { - "$ref": "./examples/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreWithRehydrationRequest.json" - }, - "Restore with Resource Guard Enabled": { - "$ref": "./examples/AzureIaasVm/TriggerRestore_ResourceGuardEnabled.json" + "Get Protected Azure Vm Recovery Points": { + "$ref": "./examples/AzureIaasVm/RecoveryPoints_List.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}": { "get": { + "operationId": "RecoveryPoints_Get", "tags": [ - "BackupPolicies" - ], - "description": "Lists of backup policies associated with Recovery Services Vault. API provides pagination parameters to fetch\r\nscoped results.", - "operationId": "BackupPolicies_List", - "produces": [ - "application/json" + "RecoveryPoints" ], + "description": "Provides the information of the backed up data identified using RecoveryPointID. This is an asynchronous operation.\nTo know the status of the operation, call the GetProtectedItemOperationResult API.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { - "name": "$filter", - "in": "query", - "description": "OData filter options.", - "required": false, + "name": "fabricName", + "in": "path", + "description": "The name of the BackupFabricResource", + "required": true, + "type": "string" + }, + { + "name": "containerName", + "in": "path", + "description": "Name of the container whose details need to be fetched.", + "required": true, + "type": "string" + }, + { + "name": "protectedItemName", + "in": "path", + "description": "Backed up item name whose details are to be fetched.", + "required": true, + "type": "string" + }, + { + "name": "recoveryPointId", + "in": "path", + "description": "RecoveryPointID represents the backed up data to be fetched.", + "required": true, "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ProtectionPolicyResourceList" + "$ref": "#/definitions/RecoveryPointResource" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-odata": "#/definitions/ProtectionPolicyQueryObject", - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "List protection policies with backupManagementType filter as AzureIaasVm": { - "$ref": "./examples/AzureIaasVm/BackupPolicies_List.json" - }, - "List protection policies with backupManagementType filter as AzureIaasVm with both V1 and V2 policies": { - "$ref": "./examples/AzureIaasVm/V2Policy/v2-List-Policies.json" - }, - "List protection policies with backupManagementType filter as AzureWorkload": { - "$ref": "./examples/AzureWorkload/BackupPolicies_List.json" + "Get Azure Vm Recovery Point Details": { + "$ref": "./examples/AzureIaasVm/RecoveryPoints_Get.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies/{policyName}": { - "get": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/move": { + "post": { + "operationId": "MoveRecoveryPoint", "tags": [ - "ProtectionPolicies" - ], - "description": "Provides the details of the backup policies associated to Recovery Services Vault. This is an asynchronous\r\noperation. Status of the operation can be fetched using GetPolicyOperationResult API.", - "operationId": "ProtectionPolicies_Get", - "produces": [ - "application/json" + "RecoveryPoints" ], + "description": "Move recovery point from one datastore to another store.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" - }, - { - "name": "policyName", + "name": "vaultName", "in": "path", - "description": "Backup policy information to be fetched.", + "description": "The name of the VaultResource", "required": true, "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ProtectionPolicyResource" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "#/definitions/CloudError" - } - } - }, - "x-ms-examples": { - "Get Azure IaasVm Protection Policy Details": { - "$ref": "./examples/AzureIaasVm/ProtectionPolicies_Get.json" - }, - "Get Azure IaasVm Enhanced Protection Policy Details": { - "$ref": "./examples/AzureIaasVm/V2Policy/v2-Get-Policy.json" - } - } - }, - "put": { - "tags": [ - "ProtectionPolicies" - ], - "description": "Creates or modifies a backup policy. This is an asynchronous operation. Status of the operation can be fetched\r\nusing GetPolicyOperationResult API.", - "operationId": "ProtectionPolicies_CreateOrUpdate", - "produces": [ - "application/json" - ], - "parameters": [ - { - "$ref": "#/parameters/ApiVersion" }, { - "$ref": "#/parameters/VaultName" + "name": "fabricName", + "in": "path", + "description": "The name of the BackupFabricResource", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ResourceGroupName" + "name": "containerName", + "in": "path", + "description": "Name of the container whose details need to be fetched.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "protectedItemName", + "in": "path", + "description": "Backed up item name whose details are to be fetched.", + "required": true, + "type": "string" }, { - "name": "policyName", + "name": "recoveryPointId", "in": "path", - "description": "Backup policy to be created.", + "description": "RecoveryPointID represents the backed up data to be fetched.", "required": true, "type": "string" }, { "name": "parameters", "in": "body", - "description": "resource backup policy", + "description": "Move Resource Across Tiers Request", "required": true, "schema": { - "$ref": "#/definitions/ProtectionPolicyResource" + "$ref": "#/definitions/MoveRPAcrossTiersRequest" } - }, - { - "name": "x-ms-authorization-auxiliary", - "in": "header", - "type": "string" } ], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ProtectionPolicyResource" - } - }, "202": { - "description": "Accepted" + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Create or Update Simple Azure Vm Protection Policy": { - "$ref": "./examples/AzureIaasVm/ProtectionPolicies_CreateOrUpdate_Simple.json" - }, - "Create or Update Full Azure Vm Protection Policy": { - "$ref": "./examples/AzureIaasVm/ProtectionPolicies_CreateOrUpdate_Complex.json" - }, - "Create or Update Enhanced Azure Vm Protection Policy with Hourly backup": { - "$ref": "./examples/AzureIaasVm/V2Policy/IaaS_v2_hourly.json" - }, - "Create or Update Enhanced Azure Vm Protection Policy with daily backup": { - "$ref": "./examples/AzureIaasVm/V2Policy/IaaS_v2_daily.json" - }, - "Create or Update Full Azure Workload Protection Policy": { - "$ref": "./examples/AzureWorkload/ProtectionPolicies_CreateOrUpdate_Complex.json" - }, - "Create or Update Daily Azure Storage Protection Policy": { - "$ref": "./examples/AzureStorage/ProtectionPolicies_CreateOrUpdate_Daily.json" - }, - "Create or Update Hourly Azure Storage Protection Policy": { - "$ref": "./examples/AzureStorage/ProtectionPolicies_CreateOrUpdate_Hourly.json" - }, - "Create or Update Azure Storage Vault Standard Protection Policy": { - "$ref": "./examples/AzureStorage/ProtectionPolicies_CreateOrUpdate_Hardened.json" + "Trigger RP Move Operation": { + "$ref": "./examples/TriggerRecoveryPointMove_Post.json" } - } - }, - "delete": { + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/provisionInstantItemRecovery": { + "post": { + "operationId": "ItemLevelRecoveryConnections_Provision", "tags": [ - "ProtectionPolicies" - ], - "description": "Deletes specified backup policy from your Recovery Services Vault. This is an asynchronous operation. Status of the\r\noperation can be fetched using GetProtectionPolicyOperationResult API.", - "operationId": "ProtectionPolicies_Delete", - "produces": [ - "application/json" + "ItemLevelRecoveryConnections" ], + "description": "Provisions a script which invokes an iSCSI connection to the backup data. Executing this script opens a file\nexplorer displaying all the recoverable files and folders. This is an asynchronous operation. To know the status of\nprovisioning, call GetProtectedItemOperationResult API.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/VaultName" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ResourceGroupName" + "name": "fabricName", + "in": "path", + "description": "The name of the BackupFabricResource", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "containerName", + "in": "path", + "description": "Name of the container whose details need to be fetched.", + "required": true, + "type": "string" }, { - "name": "policyName", + "name": "protectedItemName", + "in": "path", + "description": "Backed up item name whose details are to be fetched.", + "required": true, + "type": "string" + }, + { + "name": "recoveryPointId", "in": "path", - "description": "Backup policy to be deleted.", + "description": "RecoveryPointID represents the backed up data to be fetched.", "required": true, "type": "string" + }, + { + "name": "parameters", + "in": "body", + "description": "resource ILR request", + "required": true, + "schema": { + "$ref": "#/definitions/ILRRequestResource" + } } ], "responses": { - "200": { - "description": "OK" - }, - "204": { - "description": "NoContent" + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-long-running-operation": true, "x-ms-examples": { - "Delete Azure Vm Protection Policy": { - "$ref": "./examples/AzureIaasVm/ProtectionPolicies_Delete.json" + "Provision Instant Item Level Recovery for Azure Vm": { + "$ref": "./examples/AzureIaasVm/Provision_Ilr.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies/{policyName}/operationResults/{operationId}": { - "get": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/restore": { + "post": { + "operationId": "Restores_Trigger", "tags": [ - "ProtectionPolicyOperationResults" - ], - "description": "Provides the result of an operation.", - "operationId": "ProtectionPolicyOperationResults_Get", - "produces": [ - "application/json" + "Restores" ], + "description": "Restores the specified backed up data. This is an asynchronous operation. To know the status of this API call, use\nGetProtectedItemOperationResult API.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { - "name": "policyName", + "name": "fabricName", "in": "path", - "description": "Backup policy name whose operation's result needs to be fetched.", + "description": "The name of the BackupFabricResource", "required": true, "type": "string" }, { - "name": "operationId", + "name": "containerName", "in": "path", - "description": "Operation ID which represents the operation whose result needs to be fetched.", + "description": "Name of the container whose details need to be fetched.", "required": true, "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ProtectionPolicyResource" + }, + { + "name": "protectedItemName", + "in": "path", + "description": "Backed up item name whose details are to be fetched.", + "required": true, + "type": "string" + }, + { + "name": "recoveryPointId", + "in": "path", + "description": "RecoveryPointID represents the backed up data to be fetched.", + "required": true, + "type": "string" + }, + { + "name": "x-ms-authorization-auxiliary", + "in": "header", + "required": false, + "type": "string" + }, + { + "name": "parameters", + "in": "body", + "description": "resource restore request", + "required": true, + "schema": { + "$ref": "#/definitions/RestoreRequestResource" + } + } + ], + "responses": { + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get Protection Policy Operation Results": { - "$ref": "./examples/AzureIaasVm/ProtectionPolicyOperationResults_Get.json" + "Restore Disks with IaasVMRestoreRequest": { + "$ref": "./examples/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreRequest.json" + }, + "Restore Disks with IaasVMRestoreRequest with IdentityBasedRestoreDetails": { + "$ref": "./examples/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreRequest_IdentityBasedRestoreDetails.json" + }, + "Restore Disks with IaasVMRestoreWithRehydrationRequest": { + "$ref": "./examples/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreWithRehydrationRequest.json" + }, + "Restore to New Azure IaasVm with IaasVMRestoreRequest": { + "$ref": "./examples/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreRequest.json" + }, + "Restore to New Azure IaasVm with IaasVMRestoreRequest with identityBasedRestoreDetails": { + "$ref": "./examples/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreRequest_IdentityBasedRestoreDetails.json" + }, + "Restore to New Azure IaasVm with IaasVMRestoreWithRehydrationRequest": { + "$ref": "./examples/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreWithRehydrationRequest.json" + }, + "Restore with Resource Guard Enabled": { + "$ref": "./examples/AzureIaasVm/TriggerRestore_ResourceGuardEnabled.json" } - } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobs": { - "get": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/revokeInstantItemRecovery": { + "post": { + "operationId": "ItemLevelRecoveryConnections_Revoke", "tags": [ - "BackupJobs" - ], - "description": "Provides a pageable list of jobs.", - "operationId": "BackupJobs_List", - "produces": [ - "application/json" + "ItemLevelRecoveryConnections" ], + "description": "Revokes an iSCSI connection which can be used to download a script. Executing this script opens a file explorer\ndisplaying all recoverable files and folders. This is an asynchronous operation.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { - "name": "$filter", - "in": "query", - "description": "OData filter options.", - "required": false, + "name": "fabricName", + "in": "path", + "description": "The name of the BackupFabricResource", + "required": true, "type": "string" }, { - "name": "$skipToken", - "in": "query", - "description": "skipToken Filter.", - "required": false, + "name": "containerName", + "in": "path", + "description": "Name of the container whose details need to be fetched.", + "required": true, + "type": "string" + }, + { + "name": "protectedItemName", + "in": "path", + "description": "Backed up item name whose details are to be fetched.", + "required": true, + "type": "string" + }, + { + "name": "recoveryPointId", + "in": "path", + "description": "RecoveryPointID represents the backed up data to be fetched.", + "required": true, "type": "string" } ], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/JobResourceList" - } + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-odata": "#/definitions/JobQueryObject", - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "List All Jobs": { - "$ref": "./examples/Common/ListJobs.json" - }, - "List Jobs With Filters": { - "$ref": "./examples/Common/ListJobsWithAllSupportedFilters.json" - }, - "List Jobs With Time Filter": { - "$ref": "./examples/Common/ListJobsWithStartTimeAndEndTimeFilters.json" + "Revoke Instant Item Level Recovery for Azure Vm": { + "$ref": "./examples/AzureIaasVm/Revoke_Ilr.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobs/{jobName}": { - "get": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPointsRecommendedForMove": { + "post": { + "operationId": "RecoveryPointsRecommendedForMove_List", "tags": [ - "JobDetails" - ], - "description": "Gets extended information associated with the job.", - "operationId": "JobDetails_Get", - "produces": [ - "application/json" + "RecoveryPointsRecommendedForMove" ], + "description": "Lists the recovery points recommended for move to another tier", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { - "name": "jobName", + "name": "fabricName", "in": "path", - "description": "Name of the job whose details are to be fetched.", + "description": "The name of the BackupFabricResource", + "required": true, + "type": "string" + }, + { + "name": "containerName", + "in": "path", + "description": "Name of the container whose details need to be fetched.", + "required": true, + "type": "string" + }, + { + "name": "protectedItemName", + "in": "path", + "description": "Backed up item name whose details are to be fetched.", "required": true, "type": "string" + }, + { + "name": "parameters", + "in": "body", + "description": "List Recovery points Recommended for Move Request", + "required": true, + "schema": { + "$ref": "#/definitions/ListRecoveryPointsRecommendedForMoveRequest" + } } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/JobResource" + "$ref": "#/definitions/RecoveryPointResourceList" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get Job Details": { - "$ref": "./examples/Common/GetJobDetails.json" + "Get Protected Azure Vm Recovery Points Recommended for Move": { + "$ref": "./examples/AzureIaasVm/RecoveryPointsRecommendedForMove_List.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobs/{jobName}/cancel": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/refreshContainers": { "post": { - "tags": [ - "JobCancellations" - ], - "description": "Cancels a job. This is an asynchronous operation. To know the status of the cancellation, call\r\nGetCancelOperationResult API.", - "operationId": "JobCancellations_Trigger", - "produces": [ - "application/json" - ], + "operationId": "ProtectionContainers_Refresh", + "description": "Discovers all the containers in the subscription that can be backed up to Recovery Services Vault. This is an\nasynchronous operation. To know the status of the operation, call GetRefreshOperationResult API.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "name": "vaultName", + "in": "path", + "description": "The name of the recovery services vault.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "jobName", + "name": "fabricName", "in": "path", - "description": "Name of the job to cancel.", + "description": "Fabric name associated the container.", "required": true, "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "OData filter options.", + "required": false, + "type": "string" } ], "responses": { "202": { - "description": "Accepted" + "description": "Resource operation accepted." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Cancel Job": { - "$ref": "./examples/Common/TriggerCancelJob.json" + "Trigger Azure Vm Discovery": { + "$ref": "./examples/Common/RefreshContainers.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobs/{jobName}/operationResults/{operationId}": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobs": { "get": { + "operationId": "BackupJobs_List", "tags": [ - "JobOperationResults" - ], - "description": "Fetches the result of any operation.", - "operationId": "JobOperationResults_Get", - "produces": [ - "application/json" + "BackupJobs" ], + "description": "Provides a pageable list of jobs.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "jobName", + "name": "vaultName", "in": "path", - "description": "Job name whose operation result has to be fetched.", + "description": "The name of the VaultResource", "required": true, "type": "string" }, { - "name": "operationId", - "in": "path", - "description": "OperationID which represents the operation whose result has to be fetched.", - "required": true, + "name": "$filter", + "in": "query", + "description": "OData filter options.", + "required": false, + "type": "string" + }, + { + "name": "$skipToken", + "in": "query", + "description": "skipToken Filter.", + "required": false, "type": "string" } ], "responses": { "200": { - "description": "OK" - }, - "202": { - "description": "Accepted" - }, - "204": { - "description": "NoContent" + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/JobResourceList" + } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Cancel Job Operation Result": { - "$ref": "./examples/Common/CancelJobOperationResult.json" + "List All Jobs": { + "$ref": "./examples/Common/ListJobs.json" + }, + "List Jobs With Filters": { + "$ref": "./examples/Common/ListJobsWithAllSupportedFilters.json" + }, + "List Jobs With Time Filter": { + "$ref": "./examples/Common/ListJobsWithStartTimeAndEndTimeFilters.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobs/operationResults/{operationId}": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobs/{jobName}": { "get": { + "operationId": "JobDetails_Get", "tags": [ - "ExportJobsOperationResults" - ], - "description": "Gets the operation result of operation triggered by Export Jobs API. If the operation is successful, then it also\r\ncontains URL of a Blob and a SAS key to access the same. The blob contains exported jobs in JSON serialized format.", - "operationId": "ExportJobsOperationResults_Get", - "produces": [ - "application/json" + "JobDetails" ], + "description": "Gets extended information associated with the job.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { - "name": "operationId", + "name": "jobName", "in": "path", - "description": "OperationID which represents the export job.", + "description": "Name of the job whose details are to be fetched.", "required": true, "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/OperationResultInfoBaseResource" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/OperationResultInfoBaseResource" + "$ref": "#/definitions/JobResource" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Export Jobs Operation Results": { - "$ref": "./examples/Common/ExportJobsOperationResult.json" + "Get Job Details": { + "$ref": "./examples/Common/GetJobDetails.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobsExport": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobs/{jobName}/cancel": { "post": { + "operationId": "JobCancellations_Trigger", "tags": [ - "Jobs" - ], - "description": "Triggers export of jobs specified by filters and returns an OperationID to track.", - "operationId": "Jobs_Export", - "produces": [ - "application/json" + "JobCancellations" ], + "description": "Cancels a job. This is an asynchronous operation. To know the status of the cancellation, call\nGetCancelOperationResult API.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { - "name": "$filter", - "in": "query", - "description": "OData filter options.", - "required": false, + "name": "jobName", + "in": "path", + "description": "Name of the job whose details are to be fetched.", + "required": true, "type": "string" } ], "responses": { "202": { - "description": "Accepted" + "description": "The request has been accepted for processing, but processing has not yet completed." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-odata": "#/definitions/JobQueryObject", "x-ms-examples": { - "Export Jobs": { - "$ref": "./examples/Common/TriggerExportJobs.json" + "Cancel Job": { + "$ref": "./examples/Common/TriggerCancelJob.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectedItems": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobs/{jobName}/operationResults/{operationId}": { "get": { + "operationId": "JobOperationResults_Get", "tags": [ - "BackupProtectedItems" - ], - "description": "Provides a pageable list of all items that are backed up within a vault.", - "operationId": "BackupProtectedItems_List", - "produces": [ - "application/json" + "JobOperationResults" ], + "description": "Fetches the result of any operation.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "vaults", + "required": true, + "type": "string" }, { - "name": "$filter", - "in": "query", - "description": "OData filter options.", - "required": false, + "name": "jobName", + "in": "path", + "description": "The name of the JobResource", + "required": true, "type": "string" }, { - "name": "$skipToken", - "in": "query", - "description": "skipToken Filter.", - "required": false, + "name": "operationId", + "in": "path", + "description": "The name of the JobResource", + "required": true, "type": "string" } ], "responses": { "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ProtectedItemResourceList" - } + "description": "The request has succeeded." + }, + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed." + }, + "204": { + "description": "Operation completed successfully." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-odata": "#/definitions/ProtectedItemQueryObject", - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "List protected items with backupManagementType filter as AzureIaasVm": { - "$ref": "./examples/AzureIaasVm/BackupProtectedItems_List.json" + "Cancel Job Operation Result": { + "$ref": "./examples/Common/CancelJobOperationResult.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupValidateOperation": { - "post": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobs/operationResults/{operationId}": { + "get": { + "operationId": "ExportJobsOperationResults_Get", "tags": [ - "Operation" - ], - "description": "Validate operation for specified backed up item. This is a synchronous operation.", - "operationId": "Operation_Validate", - "produces": [ - "application/json" + "ExportJobsOperationResults" ], + "description": "Gets the operation result of operation triggered by Export Jobs API. If the operation is successful, then it also\ncontains URL of a Blob and a SAS key to access the same. The blob contains exported jobs in JSON serialized format.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "vaults", + "required": true, + "type": "string" }, { - "name": "parameters", - "in": "body", - "description": "resource validate operation request", + "name": "operationId", + "in": "path", + "description": "The name of the JobResource", "required": true, - "schema": { - "$ref": "#/definitions/ValidateOperationRequestResource" - } + "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ValidateOperationsResponse" + "$ref": "#/definitions/OperationResultInfoBaseResource" + } + }, + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", + "schema": { + "$ref": "#/definitions/OperationResultInfoBaseResource" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Validate Operation": { - "$ref": "./examples/AzureIaasVm/ValidateOperation_RestoreDisk.json" - }, - "Validate Operation with identityBasedRestoreDetails": { - "$ref": "./examples/AzureIaasVm/ValidateOperation_RestoreDisk_IdentityBasedRestoreDetails.json" + "Export Jobs Operation Results": { + "$ref": "./examples/Common/ExportJobsOperationResult.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupTriggerValidateOperation": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobsExport": { "post": { - "tags": [ - "ValidateOperation" - ], - "description": "Validate operation for specified backed up item in the form of an asynchronous operation. Returns tracking headers which can be tracked using GetValidateOperationResult API.", - "operationId": "ValidateOperation_Trigger", - "produces": [ - "application/json" - ], + "operationId": "Jobs_Export", + "description": "Triggers export of jobs specified by filters and returns an OperationID to track.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "name": "vaultName", + "in": "path", + "description": "The name of the recovery services vault.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "parameters", - "in": "body", - "description": "resource validate operation request", - "required": true, - "schema": { - "$ref": "#/definitions/ValidateOperationRequestResource" - } + "name": "$filter", + "in": "query", + "description": "OData filter options.", + "required": false, + "type": "string" } ], "responses": { "202": { - "description": "Accepted" + "description": "Resource operation accepted." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-long-running-operation": true, "x-ms-examples": { - "Trigger Validate Operation": { - "$ref": "./examples/AzureIaasVm/TriggerValidateOperation_RestoreDisk.json" + "Export Jobs": { + "$ref": "./examples/Common/TriggerExportJobs.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupValidateOperationResults/{operationId}": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupOperationResults/{operationId}": { "get": { - "tags": [ - "ValidateOperationResults" - ], - "description": "Fetches the result of a triggered validate operation.", - "operationId": "ValidateOperationResults_Get", - "produces": [ - "application/json" - ], + "operationId": "BackupOperationResults_Get", + "description": "Provides the status of the delete operations such as deleting backed up item. Once the operation has started, the\nstatus code in the response would be Accepted. It will continue to be in this state till it reaches completion. On\nsuccessful completion, the status code will be OK. This method expects OperationID as an argument. OperationID is\npart of the Location header of the operation response.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "name": "vaultName", + "in": "path", + "description": "The name of the recovery services vault.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { "name": "operationId", "in": "path", - "description": "OperationID which represents the operation whose result needs to be fetched.", + "description": "OperationID which represents the operation.", "required": true, "type": "string" } ], "responses": { "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ValidateOperationsResponse" - } + "description": "The request has succeeded." }, "202": { - "description": "Accepted" + "description": "Resource operation accepted." + }, + "204": { + "description": "Operation completed successfully." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get Operation Results of Validate Operation": { - "$ref": "./examples/AzureIaasVm/ValidateOperationResults.json" + "Get Result for Protected Item Delete Operation": { + "$ref": "./examples/Common/ProtectedItem_Delete_OperationResult.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupValidateOperationsStatuses/{operationId}": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupOperations/{operationId}": { "get": { - "tags": [ - "ValidateOperationStatuses" - ], - "description": "Fetches the status of a triggered validate operation. The status can be in progress, completed\r\nor failed. You can refer to the OperationStatus enum for all the possible states of the operation.\r\nIf operation has completed, this method returns the list of errors obtained while validating the operation.", - "operationId": "ValidateOperationStatuses_Get", - "produces": [ - "application/json" - ], + "operationId": "BackupOperationStatuses_Get", + "description": "Fetches the status of an operation such as triggering a backup, restore. The status can be in progress, completed\nor failed. You can refer to the OperationStatus enum for all the possible states of an operation. Some operations\ncreate jobs. This method returns the list of jobs when the operation is complete.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "name": "vaultName", + "in": "path", + "description": "The name of the recovery services vault.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { "name": "operationId", "in": "path", - "description": "OperationID represents the operation whose status needs to be fetched.", + "description": "OperationID which represents the operation.", "required": true, "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/OperationStatus" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get Operation Status of Validate Operation": { - "$ref": "./examples/AzureIaasVm/ValidateOperationStatus.json" + "Get Protected Item Delete Operation Status": { + "$ref": "./examples/Common/ProtectedItem_Delete_OperationStatus.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupEngines": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies": { "get": { + "operationId": "BackupPolicies_List", "tags": [ - "BackupEngines" - ], - "description": "Backup management servers registered to Recovery Services Vault. Returns a pageable list of servers.", - "operationId": "BackupEngines_List", - "produces": [ - "application/json" + "BackupPolicies" ], + "description": "Lists of backup policies associated with Recovery Services Vault. API provides pagination parameters to fetch\nscoped results.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { "name": "$filter", @@ -2827,454 +2902,453 @@ "description": "OData filter options.", "required": false, "type": "string" - }, - { - "name": "$skipToken", - "in": "query", - "description": "skipToken Filter.", - "required": false, - "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/BackupEngineBaseResourceList" + "$ref": "#/definitions/ProtectionPolicyResourceList" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-odata": "#/definitions/BMSBackupEnginesQueryObject", - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "List Dpm/AzureBackupServer/Lajolla Backup Engines": { - "$ref": "./examples/Dpm/BackupEngines_List.json" + "List protection policies with backupManagementType filter as AzureIaasVm": { + "$ref": "./examples/AzureIaasVm/BackupPolicies_List.json" + }, + "List protection policies with backupManagementType filter as AzureIaasVm with both V1 and V2 policies": { + "$ref": "./examples/AzureIaasVm/V2Policy/v2-List-Policies.json" + }, + "List protection policies with backupManagementType filter as AzureWorkload": { + "$ref": "./examples/AzureWorkload/BackupPolicies_List.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupEngines/{backupEngineName}": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies/{policyName}": { "get": { + "operationId": "ProtectionPolicies_Get", "tags": [ - "BackupEngines" - ], - "description": "Returns backup management server registered to Recovery Services Vault.", - "operationId": "BackupEngines_Get", - "produces": [ - "application/json" + "ProtectionPolicies" ], + "description": "Provides the details of the backup policies associated to Recovery Services Vault. This is an asynchronous\noperation. Status of the operation can be fetched using GetPolicyOperationResult API.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "backupEngineName", + "name": "vaultName", "in": "path", - "description": "Name of the backup management server.", + "description": "The name of the VaultResource", "required": true, "type": "string" }, { - "name": "$filter", - "in": "query", - "description": "OData filter options.", - "required": false, - "type": "string" - }, - { - "name": "$skipToken", - "in": "query", - "description": "skipToken Filter.", - "required": false, + "name": "policyName", + "in": "path", + "description": "Backup policy information to be fetched.", + "required": true, "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/BackupEngineBaseResource" + "$ref": "#/definitions/ProtectionPolicyResource" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-odata": "#/definitions/BMSBackupEngineQueryObject", "x-ms-examples": { - "Get Dpm/AzureBackupServer/Lajolla Backup Engine Details": { - "$ref": "./examples/Dpm/BackupEngines_Get.json" + "Get Azure IaasVm Enhanced Protection Policy Details": { + "$ref": "./examples/AzureIaasVm/V2Policy/v2-Get-Policy.json" + }, + "Get Azure IaasVm Protection Policy Details": { + "$ref": "./examples/AzureIaasVm/ProtectionPolicies_Get.json" } } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/operationResults/{operationId}": { - "get": { + }, + "put": { + "operationId": "ProtectionPolicies_CreateOrUpdate", "tags": [ - "ProtectionContainerRefreshOperationResults" - ], - "description": "Provides the result of the refresh operation triggered by the BeginRefresh operation.", - "operationId": "ProtectionContainerRefreshOperationResults_Get", - "produces": [ - "application/json" + "ProtectionPolicies" ], + "description": "Creates or modifies a backup policy. This is an asynchronous operation. Status of the operation can be fetched\nusing GetPolicyOperationResult API.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "fabricName", + "name": "vaultName", "in": "path", - "description": "Fabric name associated with the container.", + "description": "The name of the VaultResource", "required": true, "type": "string" }, { - "name": "operationId", + "name": "policyName", "in": "path", - "description": "Operation ID associated with the operation whose result needs to be fetched.", + "description": "Backup policy information to be fetched.", "required": true, "type": "string" + }, + { + "name": "x-ms-authorization-auxiliary", + "in": "header", + "required": false, + "type": "string" + }, + { + "name": "parameters", + "in": "body", + "description": "resource backup policy", + "required": true, + "schema": { + "$ref": "#/definitions/ProtectionPolicyResource" + } } ], "responses": { - "202": { - "description": "Accepted" + "200": { + "description": "Resource 'ProtectionPolicyResource' update operation succeeded", + "schema": { + "$ref": "#/definitions/ProtectionPolicyResource" + } }, - "204": { - "description": "NoContent" + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Azure Vm Discovery Operation Result": { - "$ref": "./examples/Common/RefreshContainers_OperationResults.json" + "Create or Update Azure Storage Vault Standard Protection Policy": { + "$ref": "./examples/AzureStorage/ProtectionPolicies_CreateOrUpdate_Hardened.json" + }, + "Create or Update Daily Azure Storage Protection Policy": { + "$ref": "./examples/AzureStorage/ProtectionPolicies_CreateOrUpdate_Daily.json" + }, + "Create or Update Enhanced Azure Vm Protection Policy with Hourly backup": { + "$ref": "./examples/AzureIaasVm/V2Policy/IaaS_v2_hourly.json" + }, + "Create or Update Enhanced Azure Vm Protection Policy with daily backup": { + "$ref": "./examples/AzureIaasVm/V2Policy/IaaS_v2_daily.json" + }, + "Create or Update Full Azure Vm Protection Policy": { + "$ref": "./examples/AzureIaasVm/ProtectionPolicies_CreateOrUpdate_Complex.json" + }, + "Create or Update Full Azure Workload Protection Policy": { + "$ref": "./examples/AzureWorkload/ProtectionPolicies_CreateOrUpdate_Complex.json" + }, + "Create or Update Hourly Azure Storage Protection Policy": { + "$ref": "./examples/AzureStorage/ProtectionPolicies_CreateOrUpdate_Hourly.json" + }, + "Create or Update Simple Azure Vm Protection Policy": { + "$ref": "./examples/AzureIaasVm/ProtectionPolicies_CreateOrUpdate_Simple.json" } } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectableContainers": { - "get": { + }, + "delete": { + "operationId": "ProtectionPolicies_Delete", "tags": [ - "ProtectableContainers" - ], - "description": "Lists the containers that can be registered to Recovery Services Vault.", - "operationId": "ProtectableContainers_List", - "produces": [ - "application/json" + "ProtectionPolicies" ], + "description": "Deletes specified backup policy from your Recovery Services Vault. This is an asynchronous operation. Status of the\noperation can be fetched using GetProtectionPolicyOperationResult API.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "fabricName", + "name": "vaultName", "in": "path", + "description": "The name of the VaultResource", "required": true, "type": "string" }, { - "name": "$filter", - "in": "query", - "description": "OData filter options.", - "required": false, + "name": "policyName", + "in": "path", + "description": "Backup policy information to be fetched.", + "required": true, "type": "string" } ], "responses": { "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ProtectableContainerResourceList" + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, + "204": { + "description": "Resource does not exist." + }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-odata": "#/definitions/BMSContainerQueryObject", - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "List protectable items with backupManagementType filter as AzureStorage": { - "$ref": "./examples/AzureStorage/ProtectableContainers_List.json" + "Delete Azure Vm Protection Policy": { + "$ref": "./examples/AzureIaasVm/ProtectionPolicies_Delete.json" } - } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies/{policyName}/operationResults/{operationId}": { "get": { + "operationId": "ProtectionPolicyOperationResults_Get", "tags": [ - "ProtectionContainers" - ], - "description": "Gets details of the specific container registered to your Recovery Services Vault.", - "operationId": "ProtectionContainers_Get", - "produces": [ - "application/json" + "ProtectionPolicyOperationResults" ], + "description": "Provides the result of an operation.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "vaults", + "required": true, + "type": "string" }, { - "name": "fabricName", + "name": "policyName", "in": "path", - "description": "Name of the fabric where the container belongs.", + "description": "The name of the ProtectionPolicyResource", "required": true, "type": "string" }, { - "name": "containerName", + "name": "operationId", "in": "path", - "description": "Name of the container whose details need to be fetched.", + "description": "The name of the ProtectionPolicyResource", "required": true, "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ProtectionContainerResource" + "$ref": "#/definitions/ProtectionPolicyResource" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get Protection Container Details": { - "$ref": "./examples/AzureWorkload/ProtectionContainers_Get.json" + "Get Protection Policy Operation Results": { + "$ref": "./examples/AzureIaasVm/ProtectionPolicyOperationResults_Get.json" } } - }, - "put": { + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies/{policyName}/operations/{operationId}": { + "get": { + "operationId": "ProtectionPolicyOperationStatuses_Get", "tags": [ - "ProtectionContainers" - ], - "description": "Registers the container with Recovery Services vault.\r\nThis is an asynchronous operation. To track the operation status, use location header to call get latest status of\r\nthe operation.", - "operationId": "ProtectionContainers_Register", - "produces": [ - "application/json" + "ProtectionPolicyOperationStatuses" ], + "description": "Provides the status of the asynchronous operations like backup, restore. The status can be in progress, completed\nor failed. You can refer to the Operation Status enum for all the possible states of an operation. Some operations\ncreate jobs. This method returns the list of jobs associated with operation.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" - }, - { - "name": "fabricName", + "name": "vaultName", "in": "path", - "description": "Fabric name associated with the container.", + "description": "vaults", "required": true, "type": "string" }, { - "name": "containerName", + "name": "policyName", "in": "path", - "description": "Name of the container to be registered.", + "description": "The name of the ProtectionPolicyResource", "required": true, "type": "string" }, { - "name": "parameters", - "in": "body", - "description": "Request body for operation", + "name": "operationId", + "in": "path", + "description": "The name of the ProtectionPolicyResource", "required": true, - "schema": { - "$ref": "#/definitions/ProtectionContainerResource" - } + "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ProtectionContainerResource" + "$ref": "#/definitions/OperationStatus" } }, - "202": { - "description": "Accepted" - }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-long-running-operation": true, "x-ms-examples": { - "RegisterAzure Storage ProtectionContainers": { - "$ref": "./examples/AzureStorage/ProtectionContainers_Register.json" + "Get Protection Policy Operation Status": { + "$ref": "./examples/AzureIaasVm/ProtectionPolicyOperationStatuses_Get.json" } } - }, - "delete": { - "tags": [ - "ProtectionContainers" - ], - "description": "Unregisters the given container from your Recovery Services Vault. This is an asynchronous operation. To determine\r\nwhether the backend service has finished processing the request, call Get Container Operation Result API.", - "operationId": "ProtectionContainers_Unregister", - "produces": [ - "application/json" - ], + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectableItems": { + "get": { + "operationId": "BackupProtectableItems_List", + "description": "Provides a pageable list of protectable objects within your subscription according to the query filter and the\npagination parameters.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "name": "vaultName", + "in": "path", + "description": "The name of the recovery services vault.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "fabricName", - "in": "path", - "description": "Name of the fabric where the container belongs.", - "required": true, + "name": "$filter", + "in": "query", + "description": "OData filter options.", + "required": false, "type": "string" }, { - "name": "containerName", - "in": "path", - "description": "Name of the container which needs to be unregistered from the Recovery Services Vault.", - "required": true, + "name": "$skipToken", + "in": "query", + "description": "skipToken Filter.", + "required": false, "type": "string" } ], "responses": { "200": { - "description": "OK" - }, - "202": { - "description": "Accepted" - }, - "204": { - "description": "NoContent" + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/WorkloadProtectableItemResourceList" + } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Unregister Protection Container": { - "$ref": "./examples/AzureWorkload/ProtectionContainers_Unregister.json" + "List protectable items with backupManagementType filter as AzureIaasVm": { + "$ref": "./examples/AzureIaasVm/BackupProtectableItems_List.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/inquire": { - "post": { - "tags": [ - "ProtectionContainers" - ], - "summary": "Inquires all the protectable items under the given container.", - "description": "This is an async operation and the results should be tracked using location header or Azure-async-url.", - "operationId": "ProtectionContainers_Inquire", - "produces": [ - "application/json" - ], + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectedItems": { + "get": { + "operationId": "BackupProtectedItems_List", + "description": "Provides a pageable list of all items that are backed up within a vault.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" - }, - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "name": "fabricName", + "name": "vaultName", "in": "path", - "description": "Fabric Name associated with the container.", + "description": "The name of the recovery services vault.", "required": true, "type": "string" }, { - "name": "containerName", - "in": "path", - "description": "Name of the container in which inquiry needs to be triggered.", - "required": true, - "type": "string" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { "name": "$filter", @@ -3282,64 +3356,113 @@ "description": "OData filter options.", "required": false, "type": "string" + }, + { + "name": "$skipToken", + "in": "query", + "description": "skipToken Filter.", + "required": false, + "type": "string" } ], "responses": { - "202": { - "description": "Accepted" + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ProtectedItemResourceList" + } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-odata": "#/definitions/BMSContainersInquiryQueryObject", "x-ms-examples": { - "Inquire Azure Storage Protection Containers": { - "$ref": "./examples/AzureStorage/ProtectionContainers_Inquire.json" + "List protected items with backupManagementType filter as AzureIaasVm": { + "$ref": "./examples/AzureIaasVm/BackupProtectedItems_List.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/items": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectionContainers": { "get": { - "tags": [ - "BackupWorkloadItems" - ], - "description": "Provides a pageable list of workload item of a specific container according to the query filter and the pagination\r\nparameters.", - "operationId": "BackupWorkloadItems_List", - "produces": [ - "application/json" - ], + "operationId": "BackupProtectionContainers_List", + "description": "Lists the containers registered to Recovery Services Vault.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "name": "vaultName", + "in": "path", + "description": "The name of the recovery services vault.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "fabricName", - "in": "path", - "description": "Fabric name associated with the container.", - "required": true, + "name": "$filter", + "in": "query", + "description": "OData filter options.", + "required": false, "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ProtectionContainerResourceList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List Backup Protection Containers": { + "$ref": "./examples/AzureStorage/ProtectionContainers_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectionIntents": { + "get": { + "operationId": "BackupProtectionIntent_List", + "description": "Provides a pageable list of all intents that are present within a vault.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "name": "containerName", + "name": "vaultName", "in": "path", - "description": "Name of the container.", + "description": "The name of the recovery services vault.", "required": true, "type": "string" }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, { "name": "$filter", "in": "query", @@ -3357,703 +3480,632 @@ ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/WorkloadItemResourceList" + "$ref": "#/definitions/ProtectionIntentResourceList" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-odata": "#/definitions/BMSWorkloadItemQueryObject", - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "List Workload Items in Container": { - "$ref": "./examples/AzureWorkload/BackupWorkloadItems_List.json" + "List protection intent with backupManagementType filter": { + "$ref": "./examples/AzureWorkload/BackupProtectionIntent_List.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/operationResults/{operationId}": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupResourceGuardProxies": { "get": { + "operationId": "ResourceGuardProxies_Get", "tags": [ - "ProtectionContainerOperationResults" - ], - "description": "Fetches the result of any operation on the container.", - "operationId": "ProtectionContainerOperationResults_Get", - "produces": [ - "application/json" + "ResourceGuardProxies" ], + "description": "List the ResourceGuardProxies under vault", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" - }, - { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "fabricName", - "in": "path", - "description": "Fabric name associated with the container.", - "required": true, - "type": "string" - }, - { - "name": "containerName", - "in": "path", - "description": "Container name whose information should be fetched.", - "required": true, - "type": "string" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "operationId", + "name": "vaultName", "in": "path", - "description": "Operation ID which represents the operation whose result needs to be fetched.", + "description": "The name of the VaultResource", "required": true, "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ProtectionContainerResource" + "$ref": "#/definitions/ResourceGuardProxyBaseResourceList" } }, - "202": { - "description": "Accepted" - }, - "204": { - "description": "NoContent" - }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get Azure Storage Protection Container Operation Result": { - "$ref": "./examples/AzureStorage/ProtectionContainers_Inquire_Result.json" + "Get VaultGuardProxies": { + "$ref": "./examples/ResourceGuardProxyCRUD/ListResourceGuardProxy.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/backup": { - "post": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupResourceGuardProxies/{resourceGuardProxyName}": { + "get": { + "operationId": "ResourceGuardProxy_Get", "tags": [ - "Backups" - ], - "description": "Triggers backup for specified backed up item. This is an asynchronous operation. To know the status of the\r\noperation, call GetProtectedItemOperationResult API.", - "operationId": "Backups_Trigger", - "produces": [ - "application/json" + "ResourceGuardProxy" ], + "description": "Returns ResourceGuardProxy under vault and with the name referenced in request", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" - }, - { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "fabricName", - "in": "path", - "description": "Fabric name associated with the backup item.", - "required": true, - "type": "string" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "containerName", + "name": "vaultName", "in": "path", - "description": "Container name associated with the backup item.", + "description": "The name of the VaultResource", "required": true, "type": "string" }, { - "name": "protectedItemName", + "name": "resourceGuardProxyName", "in": "path", - "description": "Backup item for which backup needs to be triggered.", + "description": "", "required": true, "type": "string" - }, - { - "name": "parameters", - "in": "body", - "description": "resource backup request", - "required": true, - "schema": { - "$ref": "#/definitions/BackupRequestResource" - } } ], "responses": { - "202": { - "description": "Accepted" + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ResourceGuardProxyBaseResource" + } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Trigger Backup": { - "$ref": "./examples/Common/TriggerBackup_Post.json" + "Get ResourceGuardProxy": { + "$ref": "./examples/ResourceGuardProxyCRUD/GetResourceGuardProxy.json" } } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/operationsStatus/{operationId}": { - "get": { + }, + "put": { + "operationId": "ResourceGuardProxy_Put", "tags": [ - "ProtectedItemOperationStatuses" - ], - "description": "Fetches the status of an operation such as triggering a backup, restore. The status can be in progress, completed\r\nor failed. You can refer to the OperationStatus enum for all the possible states of the operation. Some operations\r\ncreate jobs. This method returns the list of jobs associated with the operation.", - "operationId": "ProtectedItemOperationStatuses_Get", - "produces": [ - "application/json" + "ResourceGuardProxy" ], + "description": "Add or Update ResourceGuardProxy under vault\nSecures vault critical operations", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" - }, - { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "fabricName", - "in": "path", - "description": "Fabric name associated with the backup item.", - "required": true, - "type": "string" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "containerName", + "name": "vaultName", "in": "path", - "description": "Container name associated with the backup item.", + "description": "The name of the VaultResource", "required": true, "type": "string" }, { - "name": "protectedItemName", + "name": "resourceGuardProxyName", "in": "path", - "description": "Backup item name whose details are to be fetched.", + "description": "", "required": true, "type": "string" }, { - "name": "operationId", - "in": "path", - "description": "OperationID represents the operation whose status needs to be fetched.", + "name": "parameters", + "in": "body", + "description": "Request body for operation", "required": true, - "type": "string" + "schema": { + "$ref": "#/definitions/ResourceGuardProxyBaseResource" + } } ], "responses": { "200": { - "description": "OK", + "description": "Resource 'ResourceGuardProxyBaseResource' update operation succeeded", "schema": { - "$ref": "#/definitions/OperationStatus" + "$ref": "#/definitions/ResourceGuardProxyBaseResource" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get Operation Status of Protected Vm": { - "$ref": "./examples/AzureIaasVm/ProtectedItemOperationStatus.json" + "Create ResourceGuardProxy": { + "$ref": "./examples/ResourceGuardProxyCRUD/PutResourceGuardProxy.json" } } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/provisionInstantItemRecovery": { - "post": { + }, + "delete": { + "operationId": "ResourceGuardProxy_Delete", "tags": [ - "ItemLevelRecoveryConnections" - ], - "description": "Provisions a script which invokes an iSCSI connection to the backup data. Executing this script opens a file\r\nexplorer displaying all the recoverable files and folders. This is an asynchronous operation. To know the status of\r\nprovisioning, call GetProtectedItemOperationResult API.", - "operationId": "ItemLevelRecoveryConnections_Provision", - "produces": [ - "application/json" + "ResourceGuardProxy" ], + "description": "Delete ResourceGuardProxy under vault", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" - }, - { - "$ref": "#/parameters/ResourceGroupName" - }, - { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "name": "fabricName", - "in": "path", - "description": "Fabric name associated with the backed up items.", - "required": true, - "type": "string" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "containerName", - "in": "path", - "description": "Container name associated with the backed up items.", - "required": true, - "type": "string" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "protectedItemName", + "name": "vaultName", "in": "path", - "description": "Backed up item name whose files/folders are to be restored.", + "description": "The name of the VaultResource", "required": true, "type": "string" }, { - "name": "recoveryPointId", + "name": "resourceGuardProxyName", "in": "path", - "description": "Recovery point ID which represents backed up data. iSCSI connection will be provisioned\r\nfor this backed up data.", + "description": "", "required": true, "type": "string" - }, - { - "name": "parameters", - "in": "body", - "description": "resource ILR request", - "required": true, - "schema": { - "$ref": "#/definitions/ILRRequestResource" - } } ], "responses": { - "202": { - "description": "Accepted" + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Provision Instant Item Level Recovery for Azure Vm": { - "$ref": "./examples/AzureIaasVm/Provision_Ilr.json" + "Delete ResourceGuardProxy": { + "$ref": "./examples/ResourceGuardProxyCRUD/DeleteResourceGuardProxy.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/revokeInstantItemRecovery": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupResourceGuardProxies/{resourceGuardProxyName}/unlockDelete": { "post": { + "operationId": "ResourceGuardProxy_UnlockDelete", "tags": [ - "ItemLevelRecoveryConnections" - ], - "description": "Revokes an iSCSI connection which can be used to download a script. Executing this script opens a file explorer\r\ndisplaying all recoverable files and folders. This is an asynchronous operation.", - "operationId": "ItemLevelRecoveryConnections_Revoke", - "produces": [ - "application/json" + "ResourceGuardProxy" ], + "description": "Secures delete ResourceGuardProxy operations.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" - }, - { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "fabricName", - "in": "path", - "description": "Fabric name associated with the backed up items.", - "required": true, - "type": "string" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "containerName", + "name": "vaultName", "in": "path", - "description": "Container name associated with the backed up items.", + "description": "The name of the VaultResource", "required": true, "type": "string" }, { - "name": "protectedItemName", + "name": "resourceGuardProxyName", "in": "path", - "description": "Backed up item name whose files/folders are to be restored.", + "description": "", "required": true, "type": "string" }, { - "name": "recoveryPointId", - "in": "path", - "description": "Recovery point ID which represents backed up data. iSCSI connection will be revoked for\r\nthis backed up data.", + "name": "parameters", + "in": "body", + "description": "Request body for operation", "required": true, - "type": "string" + "schema": { + "$ref": "#/definitions/UnlockDeleteRequest" + } } ], "responses": { - "202": { - "description": "Accepted" + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/UnlockDeleteResponse" + } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Revoke Instant Item Level Recovery for Azure Vm": { - "$ref": "./examples/AzureIaasVm/Revoke_Ilr.json" + "UnlockDelete ResourceGuardProxy": { + "$ref": "./examples/ResourceGuardProxyCRUD/UnlockDeleteResourceGuardProxy.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/refreshContainers": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupSecurityPIN": { "post": { - "tags": [ - "ProtectionContainers" - ], - "description": "Discovers all the containers in the subscription that can be backed up to Recovery Services Vault. This is an\r\nasynchronous operation. To know the status of the operation, call GetRefreshOperationResult API.", - "operationId": "ProtectionContainers_Refresh", - "produces": [ - "application/json" - ], + "operationId": "SecurityPINs_Get", + "description": "Get the security PIN.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "name": "vaultName", + "in": "path", + "description": "The name of the recovery services vault.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "fabricName", - "in": "path", - "description": "Fabric name associated the container.", - "required": true, + "name": "x-ms-authorization-auxiliary", + "in": "header", + "required": false, "type": "string" }, { - "name": "$filter", - "in": "query", - "description": "OData filter options.", + "name": "parameters", + "in": "body", + "description": "security pin request", "required": false, - "type": "string" + "schema": { + "$ref": "#/definitions/SecurityPinBase" + } } ], "responses": { - "202": { - "description": "Accepted" + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/TokenInformation" + } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-odata": "#/definitions/BMSRefreshContainersQueryObject", "x-ms-examples": { - "Trigger Azure Vm Discovery": { - "$ref": "./examples/Common/RefreshContainers.json" + "Get Vault Security Pin": { + "$ref": "./examples/Common/BackupSecurityPin_Get.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupOperationResults/{operationId}": { - "get": { - "tags": [ - "BackupOperationResults" - ], - "description": "Provides the status of the delete operations such as deleting backed up item. Once the operation has started, the\r\nstatus code in the response would be Accepted. It will continue to be in this state till it reaches completion. On\r\nsuccessful completion, the status code will be OK. This method expects OperationID as an argument. OperationID is\r\npart of the Location header of the operation response.", - "operationId": "BackupOperationResults_Get", - "produces": [ - "application/json" - ], + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupTieringCost/default/fetchTieringCost": { + "post": { + "operationId": "FetchTieringCost_Post", + "description": "Provides the details of the tiering related sizes and cost.\nStatus of the operation can be fetched using GetTieringCostOperationStatus API and result using GetTieringCostOperationResult API.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "The name of the recovery services vault.", + "required": true, + "type": "string", + "minLength": 2, + "maxLength": 50, + "pattern": "^[A-Za-z][-A-Za-z0-9]*[A-Za-z0-9]$" }, { - "name": "operationId", - "in": "path", - "description": "OperationID which represents the operation.", + "name": "parameters", + "in": "body", + "description": "Fetch Tiering Cost Request", "required": true, - "type": "string" + "schema": { + "$ref": "#/definitions/FetchTieringCostInfoRequest" + } } ], "responses": { "200": { - "description": "OK" + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/TieringCostInfo" + } }, "202": { - "description": "Accepted" - }, - "204": { - "description": "NoContent" + "description": "Accepted", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get Result for Protected Item Delete Operation": { - "$ref": "./examples/Common/ProtectedItem_Delete_OperationResult.json" + "Get the rehydration cost for recovery point": { + "$ref": "./examples/TieringCost/FetchTieringCostForRehydrate.json" + }, + "Get the tiering savings cost info for policy": { + "$ref": "./examples/TieringCost/FetchTieringCostForPolicy.json" + }, + "Get the tiering savings cost info for protected item": { + "$ref": "./examples/TieringCost/FetchTieringCostForProtectedItem.json" + }, + "Get the tiering savings cost info for vault": { + "$ref": "./examples/TieringCost/FetchTieringCostForVault.json" } - } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location", + "final-state-schema": "#/definitions/TieringCostInfo" + }, + "x-ms-long-running-operation": true } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupOperations/{operationId}": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupTieringCost/default/operationResults/{operationId}": { "get": { - "tags": [ - "BackupOperationStatuses" - ], - "description": "Fetches the status of an operation such as triggering a backup, restore. The status can be in progress, completed\r\nor failed. You can refer to the OperationStatus enum for all the possible states of an operation. Some operations\r\ncreate jobs. This method returns the list of jobs when the operation is complete.", - "operationId": "BackupOperationStatuses_Get", - "produces": [ - "application/json" - ], + "operationId": "GetTieringCostOperationResult_Get", + "description": "Gets the result of async operation for tiering cost", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "vaultName", + "in": "path", + "description": "The name of the recovery services vault.", + "required": true, + "type": "string", + "minLength": 2, + "maxLength": 50, + "pattern": "^[A-Za-z][-A-Za-z0-9]*[A-Za-z0-9]$" }, { "name": "operationId", "in": "path", - "description": "OperationID which represents the operation.", "required": true, "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/OperationStatus" + "$ref": "#/definitions/TieringCostInfo" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get Protected Item Delete Operation Status": { - "$ref": "./examples/Common/ProtectedItem_Delete_OperationStatus.json" + "Fetch Tiering Cost Operation Result": { + "$ref": "./examples/TieringCost/GetTieringCostOperationResult.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies/{policyName}/operations/{operationId}": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupTieringCost/default/operationsStatus/{operationId}": { "get": { - "tags": [ - "ProtectionPolicyOperationStatuses" - ], - "description": "Provides the status of the asynchronous operations like backup, restore. The status can be in progress, completed\r\nor failed. You can refer to the Operation Status enum for all the possible states of an operation. Some operations\r\ncreate jobs. This method returns the list of jobs associated with operation.", - "operationId": "ProtectionPolicyOperationStatuses_Get", - "produces": [ - "application/json" - ], + "operationId": "TieringCostOperationStatus_Get", + "description": "Gets the status of async operations of tiering cost", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "policyName", + "name": "vaultName", "in": "path", - "description": "Backup policy name whose operation's status needs to be fetched.", + "description": "The name of the recovery services vault.", "required": true, - "type": "string" + "type": "string", + "minLength": 2, + "maxLength": 50, + "pattern": "^[A-Za-z][-A-Za-z0-9]*[A-Za-z0-9]$" }, { "name": "operationId", "in": "path", - "description": "Operation ID which represents an operation whose status needs to be fetched.", "required": true, "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/OperationStatus" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get Protection Policy Operation Status": { - "$ref": "./examples/AzureIaasVm/ProtectionPolicyOperationStatuses_Get.json" + "Fetch Tiering Cost Operation Status": { + "$ref": "./examples/TieringCost/GetTieringCostOperationStatus.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectableItems": { - "get": { - "tags": [ - "BackupProtectableItems" - ], - "description": "Provides a pageable list of protectable objects within your subscription according to the query filter and the\r\npagination parameters.", - "operationId": "BackupProtectableItems_List", - "produces": [ - "application/json" - ], + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupTriggerValidateOperation": { + "post": { + "operationId": "ValidateOperation_Trigger", + "description": "Validate operation for specified backed up item in the form of an asynchronous operation. Returns tracking headers which can be tracked using GetValidateOperationResult API.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "name": "vaultName", + "in": "path", + "description": "The name of the recovery services vault.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "$filter", - "in": "query", - "description": "OData filter options.", - "required": false, - "type": "string" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "$skipToken", - "in": "query", - "description": "skipToken Filter.", - "required": false, - "type": "string" + "name": "parameters", + "in": "body", + "description": "resource validate operation request", + "required": true, + "schema": { + "$ref": "#/definitions/ValidateOperationRequestResource" + } } ], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/WorkloadProtectableItemResourceList" + "202": { + "description": "Accepted", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-odata": "#/definitions/BMSPOQueryObject", - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "List protectable items with backupManagementType filter as AzureIaasVm": { - "$ref": "./examples/AzureIaasVm/BackupProtectableItems_List.json" + "Trigger Validate Operation": { + "$ref": "./examples/AzureIaasVm/TriggerValidateOperation_RestoreDisk.json" } - } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectionContainers": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupUsageSummaries": { "get": { - "tags": [ - "BackupProtectionContainers" - ], - "description": "Lists the containers registered to Recovery Services Vault.", - "operationId": "BackupProtectionContainers_List", - "produces": [ - "application/json" - ], + "operationId": "BackupUsageSummaries_List", + "description": "Fetches the backup management usage summaries of the vault.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "name": "vaultName", + "in": "path", + "description": "The name of the recovery services vault.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { "name": "$filter", @@ -4061,1082 +4113,1312 @@ "description": "OData filter options.", "required": false, "type": "string" + }, + { + "name": "$skipToken", + "in": "query", + "description": "skipToken Filter.", + "required": false, + "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ProtectionContainerResourceList" + "$ref": "#/definitions/BackupManagementUsageList" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-odata": "#/definitions/BMSContainerQueryObject", - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "List Backup Protection Containers": { - "$ref": "./examples/AzureStorage/ProtectionContainers_List.json" + "Get Protected Containers Usages Summary": { + "$ref": "./examples/Common/BackupProtectionContainers_UsageSummary_Get.json" + }, + "Get Protected Items Usages Summary": { + "$ref": "./examples/Common/BackupProtectedItem_UsageSummary_Get.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupDeletedProtectionContainers": { - "get": { - "tags": [ - "SoftDeletedContainers" - ], - "description": "Lists the soft deleted containers registered to Recovery Services Vault.", - "operationId": "DeletedProtectionContainers_List", - "produces": [ - "application/json" - ], + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupValidateOperation": { + "post": { + "operationId": "Operation_Validate", + "description": "Validate operation for specified backed up item. This is a synchronous operation.", "parameters": [ { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "name": "vaultName", + "in": "path", + "description": "The name of the recovery services vault.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "$filter", - "in": "query", - "description": "OData filter options.", - "required": false, - "type": "string" + "name": "parameters", + "in": "body", + "description": "resource validate operation request", + "required": true, + "schema": { + "$ref": "#/definitions/ValidateOperationRequestResource" + } } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ProtectionContainerResourceList" + "$ref": "#/definitions/ValidateOperationsResponse" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-odata": "#/definitions/BMSContainerQueryObject", - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "List Backup Protection Containers": { - "$ref": "./examples/AzureStorage/SoftDeletedContainers_List.json" + "Validate Operation": { + "$ref": "./examples/AzureIaasVm/ValidateOperation_RestoreDisk.json" + }, + "Validate Operation with identityBasedRestoreDetails": { + "$ref": "./examples/AzureIaasVm/ValidateOperation_RestoreDisk_IdentityBasedRestoreDetails.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupSecurityPIN": { - "post": { - "tags": [ - "SecurityPINs" - ], - "description": "Get the security PIN.", - "operationId": "SecurityPINs_Get", - "produces": [ - "application/json" - ], + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupValidateOperationResults/{operationId}": { + "get": { + "operationId": "ValidateOperationResults_Get", + "description": "Fetches the result of a triggered validate operation.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "name": "vaultName", + "in": "path", + "description": "The name of the recovery services vault.", + "required": true, + "type": "string" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "parameters", - "in": "body", - "description": "security pin request", - "required": false, - "schema": { - "$ref": "#/definitions/SecurityPinBase" - } - }, - { - "name": "x-ms-authorization-auxiliary", - "in": "header", + "name": "operationId", + "in": "path", + "description": "OperationID which represents the operation whose result needs to be fetched.", + "required": true, "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/TokenInformation" + "$ref": "#/definitions/ValidateOperationsResponse" } }, + "202": { + "description": "Resource operation accepted." + }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get Vault Security Pin": { - "$ref": "./examples/Common/BackupSecurityPin_Get.json" + "Get Operation Results of Validate Operation": { + "$ref": "./examples/AzureIaasVm/ValidateOperationResults.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPoints/{recoveryPointId}/move": { - "post": { - "tags": [ - "RecoveryPoint" - ], - "summary": "Move recovery point from one datastore to another store.", - "operationId": "MoveRecoveryPoint", - "produces": [ - "application/json" - ], + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupValidateOperationsStatuses/{operationId}": { + "get": { + "operationId": "ValidateOperationStatuses_Get", + "description": "Fetches the status of a triggered validate operation. The status can be in progress, completed\nor failed. You can refer to the OperationStatus enum for all the possible states of the operation.\nIf operation has completed, this method returns the list of errors obtained while validating the operation.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" - }, - { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/SubscriptionId" - }, - { - "name": "fabricName", + "name": "vaultName", "in": "path", + "description": "The name of the recovery services vault.", "required": true, "type": "string" }, { - "name": "containerName", - "in": "path", - "required": true, - "type": "string" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "protectedItemName", - "in": "path", - "required": true, - "type": "string" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "name": "recoveryPointId", + "name": "operationId", "in": "path", + "description": "OperationID represents the operation whose status needs to be fetched.", "required": true, "type": "string" - }, - { - "name": "parameters", - "in": "body", - "description": "Move Resource Across Tiers Request", - "required": true, - "schema": { - "$ref": "#/definitions/MoveRPAcrossTiersRequest" - } } ], "responses": { - "202": { - "description": "Accepted" + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/OperationStatus" + } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-long-running-operation": true, "x-ms-examples": { - "Trigger RP Move Operation": { - "$ref": "./examples/TriggerRecoveryPointMove_Post.json" + "Get Operation Status of Validate Operation": { + "$ref": "./examples/AzureIaasVm/ValidateOperationStatus.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}/recoveryPointsRecommendedForMove": { - "post": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupconfig/vaultconfig": { + "get": { + "operationId": "BackupResourceVaultConfigs_Get", "tags": [ - "RecoveryPointsRecommendedForMove" - ], - "description": "Lists the recovery points recommended for move to another tier", - "operationId": "RecoveryPointsRecommendedForMove_List", - "produces": [ - "application/json" + "BackupResourceVaultConfigs" ], + "description": "Fetches resource vault config.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "fabricName", + "name": "vaultName", "in": "path", + "description": "The name of the VaultResource", "required": true, "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/BackupResourceVaultConfigResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Vault Security Config": { + "$ref": "./examples/Common/BackupResourceVaultConfigs_Get.json" + } + } + }, + "put": { + "operationId": "BackupResourceVaultConfigs_Put", + "tags": [ + "BackupResourceVaultConfigs" + ], + "description": "Updates vault security config.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "name": "containerName", + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "vaultName", "in": "path", + "description": "The name of the VaultResource", "required": true, "type": "string" }, { - "name": "protectedItemName", - "in": "path", - "required": true, + "name": "x-ms-authorization-auxiliary", + "in": "header", + "required": false, "type": "string" }, { "name": "parameters", "in": "body", - "description": "List Recovery points Recommended for Move Request", + "description": "resource config request", "required": true, "schema": { - "$ref": "#/definitions/ListRecoveryPointsRecommendedForMoveRequest" + "$ref": "#/definitions/BackupResourceVaultConfigResource" } } ], "responses": { "200": { - "description": "OK", + "description": "Resource 'BackupResourceVaultConfigResource' update operation succeeded", "schema": { - "$ref": "#/definitions/RecoveryPointResourceList" + "$ref": "#/definitions/BackupResourceVaultConfigResource" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "Get Protected Azure Vm Recovery Points Recommended for Move": { - "$ref": "./examples/AzureIaasVm/RecoveryPointsRecommendedForMove_List.json" + "Update Vault Security Config": { + "$ref": "./examples/Common/BackupResourceVaultConfigs_Put.json" } } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupResourceGuardProxies": { - "get": { + }, + "patch": { + "operationId": "BackupResourceVaultConfigs_Update", "tags": [ - "ResourceGuardProxies" - ], - "description": "List the ResourceGuardProxies under vault", - "operationId": "ResourceGuardProxies_Get", - "produces": [ - "application/json" + "BackupResourceVaultConfigs" ], + "description": "Updates vault security config.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" + }, + { + "name": "x-ms-authorization-auxiliary", + "in": "header", + "required": false, + "type": "string" }, { - "$ref": "#/parameters/SubscriptionId" + "name": "parameters", + "in": "body", + "description": "resource config request", + "required": true, + "schema": { + "$ref": "#/definitions/BackupResourceVaultConfigResource" + } } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ResourceGuardProxyBaseResourceList" + "$ref": "#/definitions/BackupResourceVaultConfigResource" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "Get VaultGuardProxies": { - "$ref": "./examples/ResourceGuardProxyCRUD/ListResourceGuardProxy.json" + "Update Vault Security Config": { + "$ref": "./examples/Common/BackupResourceVaultConfigs_Patch.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupResourceGuardProxies/{resourceGuardProxyName}": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupstorageconfig/vaultstorageconfig": { "get": { + "operationId": "BackupResourceStorageConfigsNonCRR_Get", "tags": [ - "ResourceGuardProxy" - ], - "description": "Returns ResourceGuardProxy under vault and with the name referenced in request", - "operationId": "ResourceGuardProxy_Get", - "produces": [ - "application/json" + "BackupResourceStorageConfigsNonCRR" ], + "description": "Fetches resource storage config.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "resourceGuardProxyName", + "name": "vaultName", "in": "path", + "description": "The name of the VaultResource", "required": true, "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/ResourceGuardProxyBaseResource" + "$ref": "#/definitions/BackupResourceConfigResource" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Get ResourceGuardProxy": { - "$ref": "./examples/ResourceGuardProxyCRUD/GetResourceGuardProxy.json" + "Get Vault Storage Configuration": { + "$ref": "./examples/Common/BackupStorageConfig_Get.json" } } }, "put": { + "operationId": "BackupResourceStorageConfigsNonCRR_Update", "tags": [ - "ResourceGuardProxy" - ], - "description": "Add or Update ResourceGuardProxy under vault\r\nSecures vault critical operations", - "operationId": "ResourceGuardProxy_Put", - "produces": [ - "application/json" + "BackupResourceStorageConfigsNonCRR" ], + "description": "Updates vault storage model type.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/SubscriptionId" - }, - { - "name": "resourceGuardProxyName", + "name": "vaultName", "in": "path", + "description": "The name of the VaultResource", "required": true, "type": "string" }, { "name": "parameters", "in": "body", - "description": "Request body for operation", + "description": "Vault storage config request", "required": true, "schema": { - "$ref": "#/definitions/ResourceGuardProxyBaseResource" + "$ref": "#/definitions/BackupResourceConfigResource" } } ], "responses": { "200": { - "description": "OK", + "description": "Resource 'BackupResourceConfigResource' update operation succeeded", "schema": { - "$ref": "#/definitions/ResourceGuardProxyBaseResource" + "$ref": "#/definitions/BackupResourceConfigResource" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Create ResourceGuardProxy": { - "$ref": "./examples/ResourceGuardProxyCRUD/PutResourceGuardProxy.json" + "Update Vault Storage Configuration": { + "$ref": "./examples/Common/BackupStorageConfig_Put.json" } } }, - "delete": { + "patch": { + "operationId": "BackupResourceStorageConfigsNonCRR_Patch", "tags": [ - "ResourceGuardProxy" - ], - "description": "Delete ResourceGuardProxy under vault", - "operationId": "ResourceGuardProxy_Delete", - "produces": [ - "application/json" + "BackupResourceStorageConfigsNonCRR" ], + "description": "Updates vault storage model type.", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "resourceGuardProxyName", + "name": "vaultName", "in": "path", + "description": "The name of the VaultResource", "required": true, "type": "string" + }, + { + "name": "parameters", + "in": "body", + "description": "Vault storage config request", + "required": true, + "schema": { + "$ref": "#/definitions/BackupResourceConfigResource" + } } ], "responses": { - "200": { - "description": "OK" - }, "204": { - "description": "NoContent" + "description": "Operation completed successfully." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Delete ResourceGuardProxy": { - "$ref": "./examples/ResourceGuardProxyCRUD/DeleteResourceGuardProxy.json" + "Update Vault Storage Configuration": { + "$ref": "./examples/Common/BackupStorageConfig_Patch.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupResourceGuardProxies/{resourceGuardProxyName}/unlockDelete": { - "post": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupstorageconfig/vaultstorageconfig/operationResults/{operationId}": { + "get": { + "operationId": "BMSPrepareDataMoveOperationResult_Get", "tags": [ - "ResourceGuardProxy" - ], - "description": "Secures delete ResourceGuardProxy operations.", - "operationId": "ResourceGuardProxy_UnlockDelete", - "produces": [ - "application/json" + "BMSPrepareDataMoveOperationResult" ], + "description": "Fetches operation status for data move operation on vault", "parameters": [ { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/VaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "resourceGuardProxyName", + "name": "vaultName", "in": "path", + "description": "vaults", "required": true, "type": "string" }, { - "name": "parameters", - "in": "body", - "description": "Request body for operation", + "name": "operationId", + "in": "path", + "description": "The name of the BackupResourceConfigResource", "required": true, - "schema": { - "$ref": "#/definitions/UnlockDeleteRequest" - } + "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/UnlockDeleteResponse" + "$ref": "#/definitions/VaultStorageConfigOperationResultResponse" } }, + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed." + }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "UnlockDelete ResourceGuardProxy": { - "$ref": "./examples/ResourceGuardProxyCRUD/UnlockDeleteResourceGuardProxy.json" + "Get operation result for PrepareDataMove": { + "$ref": "./examples/BackupDataMove/PrepareDataMoveOperationResult_Get.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupTieringCost/default/fetchTieringCost": { - "post": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupstorageconfig/vaultstorageconfig/operationStatus/{operationId}": { + "get": { + "operationId": "GetOperationStatus", "tags": [ - "FetchTieringCost" + "BackupResourceConfigOperationStatuses" ], - "operationId": "FetchTieringCost_Post", - "description": "Provides the details of the tiering related sizes and cost.\r\nStatus of the operation can be fetched using GetTieringCostOperationStatus API and result using GetTieringCostOperationResult API.", - "produces": [ - "application/json" + "description": "Fetches Operation Result for Prepare Data Move", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "vaultName", + "in": "path", + "description": "vaults", + "required": true, + "type": "string" + }, + { + "name": "operationId", + "in": "path", + "description": "The name of the BackupResourceConfigResource", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/OperationStatus" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get OperationStatus": { + "$ref": "./examples/BackupDataMove/BackupDataMoveOperationStatus_Get.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupstorageconfig/vaultstorageconfig/prepareDataMove": { + "post": { + "operationId": "BMSPrepareDataMove", + "tags": [ + "BackupResourceStorageConfigsNonCRR" ], + "description": "Prepares source vault for Data Move operation", "parameters": [ { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/RestrictedVaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ApiVersion" + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" }, { "name": "parameters", "in": "body", - "description": "Fetch Tiering Cost Request", + "description": "Prepare data move request", "required": true, "schema": { - "$ref": "#/definitions/FetchTieringCostInfoRequest" + "$ref": "#/definitions/PrepareDataMoveRequest" } } ], "responses": { "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/TieringCostInfo" - } + "description": "The request has succeeded." }, "202": { - "description": "Accepted", + "description": "Resource operation accepted.", "headers": { "Location": { - "type": "string" + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-long-running-operation": true, "x-ms-examples": { - "Get the tiering savings cost info for policy": { - "$ref": "./examples/TieringCost/FetchTieringCostForPolicy.json" - }, - "Get the tiering savings cost info for protected item": { - "$ref": "./examples/TieringCost/FetchTieringCostForProtectedItem.json" - }, - "Get the tiering savings cost info for vault": { - "$ref": "./examples/TieringCost/FetchTieringCostForVault.json" - }, - "Get the rehydration cost for recovery point": { - "$ref": "./examples/TieringCost/FetchTieringCostForRehydrate.json" + "Prepare Data Move": { + "$ref": "./examples/BackupDataMove/PrepareDataMove_Post.json" } - } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location", + "final-state-schema": "#/definitions/TypeSpec.Http.OkResponse" + }, + "x-ms-long-running-operation": true } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupTieringCost/default/operationResults/{operationId}": { - "get": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupstorageconfig/vaultstorageconfig/triggerDataMove": { + "post": { + "operationId": "BMSTriggerDataMove", "tags": [ - "GetTieringCostOperationResult" - ], - "description": "Gets the result of async operation for tiering cost", - "operationId": "GetTieringCostOperationResult_Get", - "produces": [ - "application/json" + "BackupResourceStorageConfigsNonCRR" ], + "description": "Triggers Data Move Operation on target vault", "parameters": [ { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/RestrictedVaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "operationId", + "name": "vaultName", "in": "path", + "description": "The name of the VaultResource", "required": true, "type": "string" }, { - "$ref": "#/parameters/ApiVersion" + "name": "parameters", + "in": "body", + "description": "Trigger data move request", + "required": true, + "schema": { + "$ref": "#/definitions/TriggerDataMoveRequest" + } } ], "responses": { "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/TieringCostInfo" + "description": "The request has succeeded." + }, + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Fetch Tiering Cost Operation Result": { - "$ref": "./examples/TieringCost/GetTieringCostOperationResult.json" + "Trigger Data Move": { + "$ref": "./examples/BackupDataMove/TriggerDataMove_Post.json" } - } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location", + "final-state-schema": "#/definitions/TypeSpec.Http.OkResponse" + }, + "x-ms-long-running-operation": true } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupTieringCost/default/operationsStatus/{operationId}": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/privateEndpointConnections/{privateEndpointConnectionName}": { "get": { + "operationId": "PrivateEndpointConnection_Get", "tags": [ - "TieringCostOperationStatus" - ], - "operationId": "TieringCostOperationStatus_Get", - "description": "Gets the status of async operations of tiering cost", - "produces": [ - "application/json" + "PrivateEndpointConnectionResources" ], + "description": "Get Private Endpoint Connection. This call is made by Backup Admin.", "parameters": [ { - "$ref": "#/parameters/SubscriptionId" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/ResourceGroupName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/RestrictedVaultName" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "name": "operationId", + "name": "vaultName", "in": "path", + "description": "The name of the VaultResource", "required": true, "type": "string" }, { - "$ref": "#/parameters/ApiVersion" + "name": "privateEndpointConnectionName", + "in": "path", + "description": "The name of the private endpoint connection.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/OperationStatus" + "$ref": "#/definitions/PrivateEndpointConnectionResource" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "#/definitions/CloudError" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Fetch Tiering Cost Operation Status": { - "$ref": "./examples/TieringCost/GetTieringCostOperationStatus.json" + "Get PrivateEndpointConnection": { + "$ref": "./examples/PrivateEndpointConnection/GetPrivateEndpointConnection.json" } } - } - } - }, - "definitions": { - "BackupResourceEncryptionConfig": { - "type": "object", - "properties": { - "encryptionAtRestType": { - "description": "Encryption At Rest Type", - "enum": [ - "Invalid", - "MicrosoftManaged", - "CustomerManaged" - ], - "type": "string", - "x-ms-enum": { - "name": "EncryptionAtRestType", - "modelAsString": true + }, + "put": { + "operationId": "PrivateEndpointConnection_Put", + "tags": [ + "PrivateEndpointConnectionResources" + ], + "description": "Approve or Reject Private Endpoint requests. This call is made by Backup Admin.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" + }, + { + "name": "privateEndpointConnectionName", + "in": "path", + "description": "The name of the private endpoint connection.", + "required": true, + "type": "string" + }, + { + "name": "parameters", + "in": "body", + "description": "Request body for operation", + "required": true, + "schema": { + "$ref": "#/definitions/PrivateEndpointConnectionResource" + } + } + ], + "responses": { + "200": { + "description": "Resource 'PrivateEndpointConnectionResource' update operation succeeded", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnectionResource" + } + }, + "201": { + "description": "Resource 'PrivateEndpointConnectionResource' create operation succeeded", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnectionResource" + }, + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } } }, - "keyUri": { - "description": "Key Vault Key URI", - "type": "string" + "x-ms-examples": { + "Update PrivateEndpointConnection": { + "$ref": "./examples/PrivateEndpointConnection/PutPrivateEndpointConnection.json" + } }, - "subscriptionId": { - "description": "Key Vault Subscription Id", - "type": "string" + "x-ms-long-running-operation-options": { + "final-state-via": "location", + "final-state-schema": "#/definitions/PrivateEndpointConnectionResource" }, - "lastUpdateStatus": { - "enum": [ - "Invalid", - "NotEnabled", - "PartiallySucceeded", - "PartiallyFailed", - "Failed", - "Succeeded", - "Initialized", - "FirstInitialization" - ], - "type": "string", - "x-ms-enum": { - "name": "LastUpdateStatus", - "modelAsString": true + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "PrivateEndpointConnection_Delete", + "tags": [ + "PrivateEndpointConnectionResources" + ], + "description": "Delete Private Endpoint requests. This call is made by Backup Admin.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "vaultName", + "in": "path", + "description": "The name of the VaultResource", + "required": true, + "type": "string" + }, + { + "name": "privateEndpointConnectionName", + "in": "path", + "description": "The name of the private endpoint connection.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } } }, - "infrastructureEncryptionState": { - "enum": [ - "Invalid", - "Disabled", - "Enabled" - ], - "type": "string", - "x-ms-enum": { - "name": "InfrastructureEncryptionState", - "modelAsString": true + "x-ms-examples": { + "Delete PrivateEndpointConnection": { + "$ref": "./examples/PrivateEndpointConnection/DeletePrivateEndpointConnection.json" } - } - } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } }, - "BackupResourceEncryptionConfigExtended": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/privateEndpointConnections/{privateEndpointConnectionName}/operationsStatus/{operationId}": { + "get": { + "operationId": "PrivateEndpoint_GetOperationStatus", + "tags": [ + "PrivateEndpointOperationStatuses" + ], + "description": "Gets the operation status for a private endpoint connection.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "vaultName", + "in": "path", + "description": "vaults", + "required": true, + "type": "string" + }, + { + "name": "privateEndpointConnectionName", + "in": "path", + "description": "The name of the PrivateEndpointConnectionResource", + "required": true, + "type": "string" + }, + { + "name": "operationId", + "in": "path", + "description": "The name of the PrivateEndpointConnectionResource", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/OperationStatus" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get OperationStatus": { + "$ref": "./examples/PrivateEndpointConnection/GetPrivateEndpointConnectionOperationStatus.json" + } + } + } + } + }, + "definitions": { + "AcquireStorageAccountLock": { + "type": "string", + "description": "Whether storage account lock is to be acquired for this container or not.", + "enum": [ + "Acquire", + "NotAcquire" + ], + "x-ms-enum": { + "name": "AcquireStorageAccountLock", + "modelAsString": true, + "values": [ + { + "name": "Acquire", + "value": "Acquire" + }, + { + "name": "NotAcquire", + "value": "NotAcquire" + } + ] + } + }, + "AzureBackupGoalFeatureSupportRequest": { "type": "object", + "description": "Azure backup goal feature specific request.", "allOf": [ { - "$ref": "#/definitions/BackupResourceEncryptionConfig" + "$ref": "#/definitions/FeatureSupportRequest" } ], - "properties": { - "userAssignedIdentity": { - "description": "User Assigned Identity Id", - "type": "string" - }, - "useSystemAssignedIdentity": { - "description": "bool to indicate whether to use system Assigned Identity or not", - "type": "boolean" - } - } + "x-ms-discriminator-value": "AzureBackupGoals" }, - "BackupResourceEncryptionConfigExtendedResource": { + "AzureBackupServerContainer": { "type": "object", + "description": "AzureBackupServer (DPMVenus) workload-specific protection container.", "allOf": [ { - "$ref": "#/definitions/Resource" + "$ref": "#/definitions/DpmContainer" } ], - "properties": { - "properties": { - "$ref": "#/definitions/BackupResourceEncryptionConfigExtended", - "description": "BackupResourceEncryptionConfigExtendedResource properties" - } - } + "x-ms-discriminator-value": "AzureBackupServerContainer" }, - "BackupResourceEncryptionConfigResource": { + "AzureBackupServerEngine": { + "type": "object", + "description": "Backup engine type when Azure Backup Server is used to manage the backups.", "allOf": [ { - "$ref": "#/definitions/Resource" + "$ref": "#/definitions/BackupEngineBase" } ], - "properties": { - "properties": { - "$ref": "#/definitions/BackupResourceEncryptionConfig", - "description": "BackupResourceEncryptionConfigResource properties" - } - } + "x-ms-discriminator-value": "AzureBackupServerEngine" }, - "PrivateEndpoint": { - "description": "The Private Endpoint network resource that is linked to the Private Endpoint connection", + "AzureFileShareBackupRequest": { "type": "object", + "description": "AzureFileShare workload-specific backup request.", "properties": { - "id": { - "description": "Gets or sets id", - "type": "string" + "recoveryPointExpiryTimeInUTC": { + "type": "string", + "format": "date-time", + "description": "Backup copy will expire after the time specified (UTC)." } - } + }, + "allOf": [ + { + "$ref": "#/definitions/BackupRequest" + } + ], + "x-ms-discriminator-value": "AzureFileShareBackupRequest" }, - "PrivateEndpointConnection": { - "description": "Private Endpoint Connection Response Properties", + "AzureFileShareProtectableItem": { "type": "object", + "description": "Protectable item for Azure Fileshare workloads.", "properties": { - "provisioningState": { - "description": "Gets or sets provisioning state of the private endpoint connection", - "enum": [ - "Succeeded", - "Deleting", - "Failed", - "Pending" - ], + "parentContainerFabricId": { "type": "string", - "x-ms-enum": { - "name": "ProvisioningState", - "modelAsString": true - } - }, - "privateEndpoint": { - "$ref": "#/definitions/PrivateEndpoint", - "description": "Gets or sets private endpoint associated with the private endpoint connection" + "description": "Full Fabric ID of container to which this protectable item belongs. For example, ARM ID." }, - "groupIds": { - "description": "Group Ids for the Private Endpoint", - "type": "array", - "items": { - "description": "GroupId for the PrivateEndpointConnection - AzureBackup, AzureBackup_secondary or AzureSiteRecovery", - "enum": [ - "AzureBackup", - "AzureBackup_secondary", - "AzureSiteRecovery" - ], - "type": "string", - "x-ms-enum": { - "name": "VaultSubResourceType", - "modelAsString": true - } - } + "parentContainerFriendlyName": { + "type": "string", + "description": "Friendly name of container to which this protectable item belongs." }, - "privateLinkServiceConnectionState": { - "$ref": "#/definitions/PrivateLinkServiceConnectionState", - "description": "Gets or sets private link service connection state" + "azureFileShareType": { + "$ref": "#/definitions/AzureFileShareType", + "description": "File Share type XSync or XSMB." } - } - }, - "PrivateEndpointConnectionResource": { - "description": "Private Endpoint Connection Response Properties", + }, "allOf": [ { - "$ref": "#/definitions/Resource" + "$ref": "#/definitions/WorkloadProtectableItem" } ], - "properties": { - "properties": { - "$ref": "#/definitions/PrivateEndpointConnection", - "description": "PrivateEndpointConnectionResource properties" - } - } + "x-ms-discriminator-value": "AzureFileShare" }, - "PrivateLinkServiceConnectionState": { - "description": "Private Link Service Connection State", + "AzureFileShareProtectionPolicy": { "type": "object", + "description": "AzureStorage backup policy.", "properties": { - "status": { - "description": "Gets or sets the status", - "enum": [ - "Pending", - "Approved", - "Rejected", - "Disconnected" - ], - "type": "string", - "x-ms-enum": { - "name": "PrivateEndpointConnectionStatus", - "modelAsString": true - } + "workLoadType": { + "$ref": "#/definitions/WorkloadType", + "description": "Type of workload for the backup management" }, - "description": { - "description": "Gets or sets description", - "type": "string" + "schedulePolicy": { + "$ref": "#/definitions/SchedulePolicy", + "description": "Backup schedule specified as part of backup policy." }, - "actionsRequired": { - "description": "Gets or sets actions required", - "type": "string" + "retentionPolicy": { + "$ref": "#/definitions/RetentionPolicy", + "description": "Retention policy with the details on backup copy retention ranges." + }, + "vaultRetentionPolicy": { + "$ref": "#/definitions/VaultRetentionPolicy", + "description": "Retention policy with the details on hardened backup copy retention ranges." + }, + "timeZone": { + "type": "string", + "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\"." } - } + }, + "allOf": [ + { + "$ref": "#/definitions/ProtectionPolicy" + } + ], + "x-ms-discriminator-value": "AzureStorage" }, - "CloudError": { - "x-ms-external": true, + "AzureFileShareProvisionILRRequest": { + "type": "object", + "description": "Update snapshot Uri with the correct friendly Name of the source Azure file share.", "properties": { - "error": { - "type": "object", - "$ref": "#/definitions/CloudErrorBody", - "description": "The error object." + "recoveryPointId": { + "type": "string", + "description": "Recovery point ID." + }, + "sourceResourceId": { + "type": "string", + "description": "Source Storage account ARM Id" } }, - "description": "An error response from the Container Instance service." + "allOf": [ + { + "$ref": "#/definitions/ILRRequest" + } + ], + "x-ms-discriminator-value": "AzureFileShareProvisionILRRequest" }, - "CloudErrorBody": { - "x-ms-external": true, + "AzureFileShareRecoveryPoint": { + "type": "object", + "description": "Azure File Share workload specific backup copy.", "properties": { - "code": { - "readOnly": true, + "recoveryPointType": { "type": "string", - "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically." + "description": "Type of the backup copy. Specifies whether it is a crash consistent backup or app consistent." }, - "message": { - "readOnly": true, + "recoveryPointTime": { "type": "string", - "description": "A message describing the error, intended to be suitable for display in a user interface." + "format": "date-time", + "description": "Time at which this backup copy was created." }, - "target": { - "readOnly": true, + "fileShareSnapshotUri": { "type": "string", - "description": "The target of the particular error. For example, the name of the property in error." + "description": "Contains Url to the snapshot of fileshare, if applicable" }, - "details": { - "readOnly": true, - "type": "array", - "items": { - "$ref": "#/definitions/CloudErrorBody" - }, - "x-ms-identifiers": [ - "code" - ], - "description": "A list of additional details about the error." + "recoveryPointSizeInGB": { + "type": "integer", + "format": "int32", + "description": "Contains recovery point size" }, - "additionalInfo": { - "readOnly": true, + "recoveryPointProperties": { + "$ref": "#/definitions/RecoveryPointProperties", + "description": "Properties of Recovery Point" + }, + "recoveryPointTierDetails": { "type": "array", + "description": "Recovery point tier information.", "items": { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorAdditionalInfo" + "$ref": "#/definitions/RecoveryPointTierInformation" }, - "x-ms-identifiers": [], - "description": "The error additional info." - } - }, - "description": "An error response from the Container Instance service." - }, - "NewErrorResponse": { - "properties": { - "error": { - "type": "object", - "description": "The error object.", - "properties": { - "code": { - "readOnly": true, - "type": "string", - "description": "The error code." - }, - "message": { - "readOnly": true, - "type": "string", - "description": "The error message." - }, - "target": { - "readOnly": true, - "type": "string", - "description": "The error target." - }, - "details": { - "readOnly": true, - "type": "array", - "items": { - "$ref": "#/definitions/NewErrorResponse" - }, - "x-ms-identifiers": [ - "/error/code" - ], - "description": "The error details." - }, - "additionalInfo": { - "readOnly": true, - "type": "array", - "items": { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/ErrorAdditionalInfo" - }, - "x-ms-identifiers": [], - "description": "The error additional info." - } - } + "x-ms-identifiers": [] } }, - "description": "The resource management error response." - }, - "AzureFileshareProtectedItem": { - "description": "Azure File Share workload-specific backup item.", - "type": "object", "allOf": [ { - "$ref": "#/definitions/ProtectedItem" + "$ref": "#/definitions/RecoveryPoint" + } + ], + "x-ms-discriminator-value": "AzureFileShareRecoveryPoint" + }, + "AzureFileShareRestoreRequest": { + "type": "object", + "description": "AzureFileShare Restore Request", + "properties": { + "recoveryType": { + "$ref": "#/definitions/RecoveryType", + "description": "Type of this recovery." + }, + "sourceResourceId": { + "type": "string", + "description": "Source storage account ARM Id" + }, + "copyOptions": { + "$ref": "#/definitions/CopyOptions", + "description": "Options to resolve copy conflicts." + }, + "restoreRequestType": { + "$ref": "#/definitions/RestoreRequestType", + "description": "Restore Type (FullShareRestore or ItemLevelRestore)" + }, + "restoreFileSpecs": { + "type": "array", + "description": "List of Source Files/Folders(which need to recover) and TargetFolderPath details", + "items": { + "$ref": "#/definitions/RestoreFileSpecs" + }, + "x-ms-identifiers": [] + }, + "targetDetails": { + "$ref": "#/definitions/TargetAFSRestoreInfo", + "description": "Target File Share Details" + } + }, + "allOf": [ + { + "$ref": "#/definitions/RestoreRequest" } ], + "x-ms-discriminator-value": "AzureFileShareRestoreRequest" + }, + "AzureFileShareType": { + "type": "string", + "description": "File Share type XSync or XSMB.", + "enum": [ + "Invalid", + "XSMB", + "XSync" + ], + "x-ms-enum": { + "name": "AzureFileShareType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "XSMB", + "value": "XSMB" + }, + { + "name": "XSync", + "value": "XSync" + } + ] + } + }, + "AzureFileshareProtectedItem": { + "type": "object", + "description": "Azure File Share workload-specific backup item.", "properties": { "friendlyName": { - "description": "Friendly name of the fileshare represented by this backup item.", - "type": "string" + "type": "string", + "description": "Friendly name of the fileshare represented by this backup item." }, "protectionStatus": { - "description": "Backup status of this backup item.", - "type": "string" + "type": "string", + "description": "Backup status of this backup item." }, "protectionState": { - "description": "Backup state of this backup item.", - "enum": [ - "Invalid", - "IRPending", - "Protected", - "ProtectionError", - "ProtectionStopped", - "ProtectionPaused", - "BackupsSuspended" - ], - "type": "string", - "x-ms-enum": { - "name": "ProtectionState", - "modelAsString": true - } + "$ref": "#/definitions/ProtectionState", + "description": "Backup state of this backup item." }, "lastBackupStatus": { - "description": "Last backup operation status. Possible values: Healthy, Unhealthy.", - "type": "string" + "type": "string", + "description": "Last backup operation status. Possible values: Healthy, Unhealthy." }, "lastBackupTime": { + "type": "string", "format": "date-time", - "description": "Timestamp of the last backup operation on this backup item.", - "type": "string" + "description": "Timestamp of the last backup operation on this backup item." }, "kpisHealths": { - "description": "Health details of different KPIs", "type": "object", + "description": "Health details of different KPIs", "additionalProperties": { "$ref": "#/definitions/KPIResourceHealthDetails" } @@ -5146,273 +5428,97 @@ "description": "Additional information with this backup item." } }, + "allOf": [ + { + "$ref": "#/definitions/ProtectedItem" + } + ], "x-ms-discriminator-value": "AzureFileShareProtectedItem" }, "AzureFileshareProtectedItemExtendedInfo": { - "description": "Additional information about Azure File Share backup item.", "type": "object", + "description": "Additional information about Azure File Share backup item.", "properties": { "oldestRecoveryPoint": { + "type": "string", "format": "date-time", - "description": "The oldest backup copy available for this item in the service.", - "type": "string" + "description": "The oldest backup copy available for this item in the service." }, "recoveryPointCount": { + "type": "integer", "format": "int32", - "description": "Number of available backup copies associated with this backup item.", - "type": "integer" + "description": "Number of available backup copies associated with this backup item." }, "policyState": { - "description": "Indicates consistency of policy object and policy applied to this backup item.", - "type": "string" + "type": "string", + "description": "Indicates consistency of policy object and policy applied to this backup item." }, "resourceState": { - "description": "Indicates the state of this resource. Possible values are from enum ResourceState {Invalid, Active, SoftDeleted, Deleted}", "type": "string", + "description": "Indicates the state of this resource. Possible values are from enum ResourceState {Invalid, Active, SoftDeleted, Deleted}", "readOnly": true }, "resourceStateSyncTime": { + "type": "string", "format": "date-time", "description": "The resource state sync time for this backup item.", - "type": "string", "readOnly": true } } }, - "AzureFileShareRecoveryPoint": { - "description": "Azure File Share workload specific backup copy.", + "AzureIaaSClassicComputeVMContainer": { "type": "object", + "description": "IaaS VM workload-specific backup item representing a classic virtual machine.", "allOf": [ { - "$ref": "#/definitions/RecoveryPoint" + "$ref": "#/definitions/IaaSVMContainer" } ], - "properties": { - "recoveryPointType": { - "description": "Type of the backup copy. Specifies whether it is a crash consistent backup or app consistent.", - "type": "string" - }, - "recoveryPointTime": { - "format": "date-time", - "description": "Time at which this backup copy was created.", - "type": "string" - }, - "fileShareSnapshotUri": { - "description": "Contains Url to the snapshot of fileshare, if applicable", - "type": "string" - }, - "recoveryPointSizeInGB": { - "format": "int32", - "description": "Contains recovery point size", - "type": "integer" - }, - "recoveryPointProperties": { - "description": "Properties of Recovery Point", - "$ref": "#/definitions/RecoveryPointProperties" - }, - "recoveryPointTierDetails": { - "description": "Recovery point tier information.", - "type": "array", - "items": { - "$ref": "#/definitions/RecoveryPointTierInformation" - }, - "x-ms-identifiers": [] - } - }, - "x-ms-discriminator-value": "AzureFileShareRecoveryPoint" + "x-ms-discriminator-value": "Microsoft.ClassicCompute/virtualMachines" }, - "AzureFileShareRestoreRequest": { - "description": "AzureFileShare Restore Request", + "AzureIaaSClassicComputeVMProtectableItem": { "type": "object", + "description": "IaaS VM workload-specific backup item representing the Classic Compute VM.", "allOf": [ { - "$ref": "#/definitions/RestoreRequest" + "$ref": "#/definitions/IaaSVMProtectableItem" } ], - "properties": { - "recoveryType": { - "description": "Type of this recovery.", - "enum": [ - "Invalid", - "OriginalLocation", - "AlternateLocation", - "RestoreDisks", - "Offline" - ], - "type": "string", - "x-ms-enum": { - "name": "RecoveryType", - "modelAsString": true - } - }, - "sourceResourceId": { - "description": "Source storage account ARM Id", - "type": "string" - }, - "copyOptions": { - "description": "Options to resolve copy conflicts.", - "enum": [ - "Invalid", - "CreateCopy", - "Skip", - "Overwrite", - "FailOnConflict" - ], - "type": "string", - "x-ms-enum": { - "name": "CopyOptions", - "modelAsString": true - } - }, - "restoreRequestType": { - "description": "Restore Type (FullShareRestore or ItemLevelRestore)", - "enum": [ - "Invalid", - "FullShareRestore", - "ItemLevelRestore" - ], - "type": "string", - "x-ms-enum": { - "name": "RestoreRequestType", - "modelAsString": true - } - }, - "restoreFileSpecs": { - "description": "List of Source Files/Folders(which need to recover) and TargetFolderPath details", - "type": "array", - "items": { - "$ref": "#/definitions/RestoreFileSpecs" - }, - "x-ms-identifiers": [] - }, - "targetDetails": { - "$ref": "#/definitions/TargetAFSRestoreInfo", - "description": "Target File Share Details" - } - }, - "x-ms-discriminator-value": "AzureFileShareRestoreRequest" + "x-ms-discriminator-value": "Microsoft.ClassicCompute/virtualMachines" }, - "AzureVmWorkloadProtectionPolicy": { - "description": "Azure VM (Mercury) workload-specific backup policy.", + "AzureIaaSClassicComputeVMProtectedItem": { "type": "object", + "description": "IaaS VM workload-specific backup item representing the Classic Compute VM.", "allOf": [ { - "$ref": "#/definitions/ProtectionPolicy" + "$ref": "#/definitions/AzureIaaSVMProtectedItem" } ], - "properties": { - "workLoadType": { - "description": "Type of workload for the backup management", - "enum": [ - "Invalid", - "VM", - "FileFolder", - "AzureSqlDb", - "SQLDB", - "Exchange", - "Sharepoint", - "VMwareVM", - "SystemState", - "Client", - "GenericDataSource", - "SQLDataBase", - "AzureFileShare", - "SAPHanaDatabase", - "SAPAseDatabase", - "SAPHanaDBInstance" - ], - "type": "string", - "x-ms-enum": { - "name": "WorkloadType", - "modelAsString": true - } - }, - "settings": { - "$ref": "#/definitions/Settings", - "description": "Common settings for the backup management" - }, - "subProtectionPolicy": { - "description": "List of sub-protection policies which includes schedule and retention", - "type": "array", - "items": { - "$ref": "#/definitions/SubProtectionPolicy" - }, - "x-ms-identifiers": [] - }, - "makePolicyConsistent": { - "description": "Fix the policy inconsistency", - "type": "boolean" - } - }, - "x-ms-discriminator-value": "AzureWorkload" + "x-ms-discriminator-value": "Microsoft.ClassicCompute/virtualMachines" }, - "AzureFileShareProtectionPolicy": { - "description": "AzureStorage backup policy.", + "AzureIaaSComputeVMContainer": { "type": "object", + "description": "IaaS VM workload-specific backup item representing an Azure Resource Manager virtual machine.", "allOf": [ { - "$ref": "#/definitions/ProtectionPolicy" + "$ref": "#/definitions/IaaSVMContainer" } ], - "properties": { - "workLoadType": { - "description": "Type of workload for the backup management", - "enum": [ - "Invalid", - "VM", - "FileFolder", - "AzureSqlDb", - "SQLDB", - "Exchange", - "Sharepoint", - "VMwareVM", - "SystemState", - "Client", - "GenericDataSource", - "SQLDataBase", - "AzureFileShare", - "SAPHanaDatabase", - "SAPAseDatabase", - "SAPHanaDBInstance" - ], - "type": "string", - "x-ms-enum": { - "name": "WorkloadType", - "modelAsString": true - } - }, - "schedulePolicy": { - "$ref": "#/definitions/SchedulePolicy", - "description": "Backup schedule specified as part of backup policy." - }, - "retentionPolicy": { - "$ref": "#/definitions/RetentionPolicy", - "description": "Retention policy with the details on backup copy retention ranges." - }, - "vaultRetentionPolicy": { - "$ref": "#/definitions/VaultRetentionPolicy", - "description": "Retention policy with the details on hardened backup copy retention ranges." - }, - "timeZone": { - "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\".", - "type": "string" - } - }, - "x-ms-discriminator-value": "AzureStorage" + "x-ms-discriminator-value": "Microsoft.Compute/virtualMachines" }, - "AzureIaaSClassicComputeVMProtectedItem": { - "description": "IaaS VM workload-specific backup item representing the Classic Compute VM.", + "AzureIaaSComputeVMProtectableItem": { "type": "object", + "description": "IaaS VM workload-specific backup item representing the Azure Resource Manager VM.", "allOf": [ { - "$ref": "#/definitions/AzureIaaSVMProtectedItem" + "$ref": "#/definitions/IaaSVMProtectableItem" } ], - "x-ms-discriminator-value": "Microsoft.ClassicCompute/virtualMachines" + "x-ms-discriminator-value": "Microsoft.Compute/virtualMachines" }, "AzureIaaSComputeVMProtectedItem": { - "description": "IaaS VM workload-specific backup item representing the Azure Resource Manager VM.", "type": "object", + "description": "IaaS VM workload-specific backup item representing the Azure Resource Manager VM.", "allOf": [ { "$ref": "#/definitions/AzureIaaSVMProtectedItem" @@ -5421,58 +5527,28 @@ "x-ms-discriminator-value": "Microsoft.Compute/virtualMachines" }, "AzureIaaSVMErrorInfo": { - "description": "Azure IaaS VM workload-specific error information.", "type": "object", + "description": "Azure IaaS VM workload-specific error information.", "properties": { "errorCode": { + "type": "integer", "format": "int32", "description": "Error code.", - "type": "integer", "readOnly": true }, "errorTitle": { - "description": "Title: Typically, the entity that the error pertains to.", "type": "string", + "description": "Title: Typically, the entity that the error pertains to.", "readOnly": true }, "errorString": { - "description": "Localized error string.", - "type": "string", - "readOnly": true - }, - "recommendations": { - "description": "List of localized recommendations for above error code.", - "type": "array", - "items": { - "type": "string" - }, - "readOnly": true - } - } - }, - "ResourceHealthDetails": { - "description": "Health Details for backup items.", - "type": "object", - "properties": { - "code": { - "format": "int32", - "description": "Health Code", - "type": "integer", - "readOnly": true - }, - "title": { - "description": "Health Title", - "type": "string", - "readOnly": true - }, - "message": { - "description": "Health Message", "type": "string", + "description": "Localized error string.", "readOnly": true }, "recommendations": { - "description": "Health Recommended Actions", "type": "array", + "description": "List of localized recommendations for above error code.", "items": { "type": "string" }, @@ -5481,8 +5557,8 @@ } }, "AzureIaaSVMHealthDetails": { - "description": "Azure IaaS VM workload-specific Health Details.", "type": "object", + "description": "Azure IaaS VM workload-specific Health Details.", "allOf": [ { "$ref": "#/definitions/ResourceHealthDetails" @@ -5490,38 +5566,24 @@ ] }, "AzureIaaSVMJob": { - "description": "Azure IaaS VM workload-specific job object.", "type": "object", - "allOf": [ - { - "$ref": "#/definitions/Job" - } - ], + "description": "Azure IaaS VM workload-specific job object.", "properties": { "duration": { + "type": "string", "format": "duration", - "description": "Time elapsed during the execution of this job.", - "type": "string" + "description": "Time elapsed during the execution of this job." }, "actionsInfo": { - "description": "Gets or sets the state/actions applicable on this job like cancel/retry.", "type": "array", + "description": "Gets or sets the state/actions applicable on this job like cancel/retry.", "items": { - "enum": [ - "Invalid", - "Cancellable", - "Retriable" - ], - "type": "string", - "x-ms-enum": { - "name": "JobSupportedAction", - "modelAsString": false - } + "$ref": "#/definitions/JobSupportedAction" } }, "errorDetails": { - "description": "Error details on execution of this job.", "type": "array", + "description": "Error details on execution of this job.", "items": { "$ref": "#/definitions/AzureIaaSVMErrorInfo" }, @@ -5530,86 +5592,36 @@ ] }, "virtualMachineVersion": { - "description": "Specifies whether the backup item is a Classic or an Azure Resource Manager VM.", - "type": "string" + "type": "string", + "description": "Specifies whether the backup item is a Classic or an Azure Resource Manager VM." }, "extendedInfo": { "$ref": "#/definitions/AzureIaaSVMJobExtendedInfo", "description": "Additional information for this job." }, "containerName": { - "description": "Container name of the entity on which the current job is executing.", - "type": "string" + "type": "string", + "description": "Container name of the entity on which the current job is executing." }, "isUserTriggered": { - "description": "Indicated that whether the job is adhoc(true) or scheduled(false)", - "type": "boolean" + "type": "boolean", + "description": "Indicated that whether the job is adhoc(true) or scheduled(false)" } }, - "x-ms-discriminator-value": "AzureIaaSVMJob" - }, - "AzureIaaSVMJobV2": { - "description": "Azure IaaS VM workload-specific job object.", - "type": "object", "allOf": [ { "$ref": "#/definitions/Job" } ], - "properties": { - "actionsInfo": { - "description": "Gets or sets the state/actions applicable on this job like cancel/retry.", - "type": "array", - "items": { - "enum": [ - "Invalid", - "Cancellable", - "Retriable" - ], - "type": "string", - "x-ms-enum": { - "name": "JobSupportedAction", - "modelAsString": false - } - } - }, - "containerName": { - "description": "Container name of the entity on which the current job is executing.", - "type": "string" - }, - "duration": { - "format": "duration", - "description": "Time elapsed during the execution of this job.", - "type": "string" - }, - "errorDetails": { - "description": "Error details on execution of this job.", - "type": "array", - "items": { - "$ref": "#/definitions/AzureIaaSVMErrorInfo" - }, - "x-ms-identifiers": [ - "errorCode" - ] - }, - "virtualMachineVersion": { - "description": "Specifies whether the backup item is a Classic or an Azure Resource Manager VM.", - "type": "string" - }, - "extendedInfo": { - "$ref": "#/definitions/AzureIaaSVMJobExtendedInfo", - "description": "Additional information for this job." - } - }, - "x-ms-discriminator-value": "AzureIaaSVMJobV2" + "x-ms-discriminator-value": "AzureIaaSVMJob" }, "AzureIaaSVMJobExtendedInfo": { - "description": "Azure IaaS VM workload-specific additional information for job.", "type": "object", + "description": "Azure IaaS VM workload-specific additional information for job.", "properties": { "tasksList": { - "description": "List of tasks associated with this job.", "type": "array", + "description": "List of tasks associated with this job.", "items": { "$ref": "#/definitions/AzureIaaSVMJobTaskDetails" }, @@ -5618,134 +5630,152 @@ ] }, "propertyBag": { - "description": "Job properties.", "type": "object", + "description": "Job properties.", "additionalProperties": { "type": "string" } }, "internalPropertyBag": { - "description": "Job internal properties.", "type": "object", + "description": "Job internal properties.", "additionalProperties": { "type": "string" } }, "progressPercentage": { + "type": "number", "format": "double", - "description": "Indicates progress of the job. Null if it has not started or completed.", - "type": "number" + "description": "Indicates progress of the job. Null if it has not started or completed." }, "estimatedRemainingDuration": { - "description": "Time remaining for execution of this job.", - "type": "string" + "type": "string", + "description": "Time remaining for execution of this job." }, "dynamicErrorMessage": { - "description": "Non localized error message on job execution.", - "type": "string" + "type": "string", + "description": "Non localized error message on job execution." } } }, "AzureIaaSVMJobTaskDetails": { - "description": "Azure IaaS VM workload-specific job task details.", "type": "object", + "description": "Azure IaaS VM workload-specific job task details.", "properties": { "taskId": { - "description": "The task display name.", - "type": "string" + "type": "string", + "description": "The task display name." }, "startTime": { + "type": "string", "format": "date-time", - "description": "The start time.", - "type": "string" + "description": "The start time." }, "endTime": { + "type": "string", "format": "date-time", - "description": "The end time.", - "type": "string" + "description": "The end time." }, "instanceId": { - "description": "The instanceId.", - "type": "string" + "type": "string", + "description": "The instanceId." }, "duration": { + "type": "string", "format": "duration", - "description": "Time elapsed for task.", - "type": "string" + "description": "Time elapsed for task." }, "status": { - "description": "The status.", - "type": "string" + "type": "string", + "description": "The status." }, "progressPercentage": { + "type": "number", "format": "double", - "description": "Progress of the task.", - "type": "number" + "description": "Progress of the task." }, "taskExecutionDetails": { - "description": "Details about execution of the task.\r\neg: number of bytes transferred etc", - "type": "string" + "type": "string", + "description": "Details about execution of the task.\neg: number of bytes transferred etc" } } }, - "AzureIaaSVMProtectedItem": { - "description": "IaaS VM workload-specific backup item.", + "AzureIaaSVMJobV2": { "type": "object", + "description": "Azure IaaS VM workload-specific job object.", + "properties": { + "actionsInfo": { + "type": "array", + "description": "Gets or sets the state/actions applicable on this job like cancel/retry.", + "items": { + "$ref": "#/definitions/JobSupportedAction" + } + }, + "containerName": { + "type": "string", + "description": "Container name of the entity on which the current job is executing." + }, + "duration": { + "type": "string", + "format": "duration", + "description": "Time elapsed during the execution of this job." + }, + "errorDetails": { + "type": "array", + "description": "Error details on execution of this job.", + "items": { + "$ref": "#/definitions/AzureIaaSVMErrorInfo" + }, + "x-ms-identifiers": [ + "errorCode" + ] + }, + "virtualMachineVersion": { + "type": "string", + "description": "Specifies whether the backup item is a Classic or an Azure Resource Manager VM." + }, + "extendedInfo": { + "$ref": "#/definitions/AzureIaaSVMJobExtendedInfo", + "description": "Additional information for this job." + } + }, "allOf": [ { - "$ref": "#/definitions/ProtectedItem" + "$ref": "#/definitions/Job" } ], + "x-ms-discriminator-value": "AzureIaaSVMJobV2" + }, + "AzureIaaSVMProtectedItem": { + "type": "object", + "description": "IaaS VM workload-specific backup item.", "properties": { "friendlyName": { - "description": "Friendly name of the VM represented by this backup item.", "type": "string", + "description": "Friendly name of the VM represented by this backup item.", "readOnly": true }, "virtualMachineId": { - "description": "Fully qualified ARM ID of the virtual machine represented by this item.", "type": "string", + "description": "Fully qualified ARM ID of the virtual machine represented by this item.", "readOnly": true }, "protectionStatus": { - "description": "Backup status of this backup item.", - "type": "string" + "type": "string", + "description": "Backup status of this backup item." }, "protectionState": { - "description": "Backup state of this backup item.", - "enum": [ - "Invalid", - "IRPending", - "Protected", - "ProtectionError", - "ProtectionStopped", - "ProtectionPaused", - "BackupsSuspended" - ], - "type": "string", - "x-ms-enum": { - "name": "ProtectionState", - "modelAsString": true - } + "$ref": "#/definitions/ProtectionState", + "description": "Backup state of this backup item." }, "healthStatus": { + "$ref": "#/definitions/HealthStatus", "description": "Health status of protected item.", - "enum": [ - "Passed", - "ActionRequired", - "ActionSuggested", - "Invalid" - ], - "type": "string", - "x-ms-enum": { - "name": "HealthStatus", - "modelAsString": true - }, "readOnly": true }, "healthDetails": { - "description": "Health details on this backup item.", "type": "array", + "description": "Health details on this backup item.", "items": { "$ref": "#/definitions/AzureIaaSVMHealthDetails" }, @@ -5754,25 +5784,25 @@ ] }, "kpisHealths": { - "description": "Health details of different KPIs", "type": "object", + "description": "Health details of different KPIs", "additionalProperties": { "$ref": "#/definitions/KPIResourceHealthDetails" } }, "lastBackupStatus": { - "description": "Last backup operation status.", - "type": "string" + "type": "string", + "description": "Last backup operation status." }, "lastBackupTime": { + "type": "string", "format": "date-time", "description": "Timestamp of the last backup operation on this backup item.", - "type": "string", "readOnly": true }, "protectedItemDataId": { - "description": "Data ID of the protected item.", "type": "string", + "description": "Data ID of the protected item.", "readOnly": true }, "extendedInfo": { @@ -5780,59 +5810,60 @@ "description": "Additional information for this backup item." }, "extendedProperties": { - "$ref": "#/definitions/ExtendedProperties" + "$ref": "#/definitions/ExtendedProperties", + "description": "Extended Properties for Azure IaasVM Backup." }, "policyType": { - "description": "Type of the policy used for protection", "type": "string", + "description": "Type of the policy used for protection", "readOnly": true } }, + "allOf": [ + { + "$ref": "#/definitions/ProtectedItem" + } + ], "x-ms-discriminator-value": "AzureIaaSVMProtectedItem" }, "AzureIaaSVMProtectedItemExtendedInfo": { - "description": "Additional information on Azure IaaS VM specific backup item.", "type": "object", + "description": "Additional information on Azure IaaS VM specific backup item.", "properties": { "oldestRecoveryPoint": { + "type": "string", "format": "date-time", - "description": "The oldest backup copy available for this backup item across all tiers.", - "type": "string" + "description": "The oldest backup copy available for this backup item across all tiers." }, "oldestRecoveryPointInVault": { + "type": "string", "format": "date-time", - "description": "The oldest backup copy available for this backup item in vault tier", - "type": "string" + "description": "The oldest backup copy available for this backup item in vault tier" }, "oldestRecoveryPointInArchive": { + "type": "string", "format": "date-time", - "description": "The oldest backup copy available for this backup item in archive tier", - "type": "string" + "description": "The oldest backup copy available for this backup item in archive tier" }, "newestRecoveryPointInArchive": { + "type": "string", "format": "date-time", - "description": "The latest backup copy available for this backup item in archive tier", - "type": "string" + "description": "The latest backup copy available for this backup item in archive tier" }, "recoveryPointCount": { + "type": "integer", "format": "int32", - "description": "Number of backup copies available for this backup item.", - "type": "integer" + "description": "Number of backup copies available for this backup item." }, "policyInconsistent": { - "description": "Specifies if backup policy associated with the backup item is inconsistent.", - "type": "boolean" + "type": "boolean", + "description": "Specifies if backup policy associated with the backup item is inconsistent." } } }, "AzureIaaSVMProtectionPolicy": { - "description": "IaaS VM workload-specific backup policy.", "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ProtectionPolicy" - } - ], + "description": "IaaS VM workload-specific backup policy.", "properties": { "instantRPDetails": { "$ref": "#/definitions/InstantRPAdditionalDetails" @@ -5846,174 +5877,219 @@ "description": "Retention policy with the details on backup copy retention ranges." }, "tieringPolicy": { - "description": "Tiering policy to automatically move RPs to another tier\r\nKey is Target Tier, defined in RecoveryPointTierType enum.\r\nTiering policy specifies the criteria to move RP to the target tier.", "type": "object", + "description": "Tiering policy to automatically move RPs to another tier\nKey is Target Tier, defined in RecoveryPointTierType enum.\nTiering policy specifies the criteria to move RP to the target tier.", "additionalProperties": { "$ref": "#/definitions/TieringPolicy" } }, "instantRpRetentionRangeInDays": { + "type": "integer", "format": "int32", - "description": "Instant RP retention policy range in days", - "type": "integer" + "description": "Instant RP retention policy range in days" }, "timeZone": { - "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\".", - "type": "string" + "type": "string", + "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\"." }, "policyType": { - "enum": [ - "Invalid", - "V1", - "V2" - ], - "type": "string", - "x-ms-enum": { - "name": "IAASVMPolicyType", - "modelAsString": true - } + "$ref": "#/definitions/IAASVMPolicyType" }, "snapshotConsistencyType": { - "enum": [ - "OnlyCrashConsistent" - ], - "type": "string", - "x-ms-enum": { - "name": "IaasVMSnapshotConsistencyType", - "modelAsString": true - } + "$ref": "#/definitions/IaasVMSnapshotConsistencyType" } }, + "allOf": [ + { + "$ref": "#/definitions/ProtectionPolicy" + } + ], "x-ms-discriminator-value": "AzureIaasVM" }, - "AzureSqlProtectedItem": { - "description": "Azure SQL workload-specific backup item.", + "AzureRecoveryServiceVaultProtectionIntent": { "type": "object", + "description": "Azure Recovery Services Vault specific protection intent item.", "allOf": [ { - "$ref": "#/definitions/ProtectedItem" + "$ref": "#/definitions/ProtectionIntent" + } + ], + "x-ms-discriminator-value": "RecoveryServiceVaultItem" + }, + "AzureResourceProtectionIntent": { + "type": "object", + "description": "IaaS VM specific backup protection intent item.", + "properties": { + "friendlyName": { + "type": "string", + "description": "Friendly name of the VM represented by this backup item." + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProtectionIntent" + } + ], + "x-ms-discriminator-value": "AzureResourceItem" + }, + "AzureSQLAGWorkloadContainerProtectionContainer": { + "type": "object", + "description": "Container for SQL workloads under SQL Availability Group.", + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadContainer" + } + ], + "x-ms-discriminator-value": "SQLAGWorkLoadContainer" + }, + "AzureSqlContainer": { + "type": "object", + "description": "Azure Sql workload-specific container.", + "allOf": [ + { + "$ref": "#/definitions/ProtectionContainer" } ], + "x-ms-discriminator-value": "AzureSqlContainer" + }, + "AzureSqlProtectedItem": { + "type": "object", + "description": "Azure SQL workload-specific backup item.", "properties": { "protectedItemDataId": { - "description": "Internal ID of a backup item. Used by Azure SQL Backup engine to contact Recovery Services.", - "type": "string" + "type": "string", + "description": "Internal ID of a backup item. Used by Azure SQL Backup engine to contact Recovery Services." }, "protectionState": { - "description": "Backup state of the backed up item.", - "enum": [ - "Invalid", - "IRPending", - "Protected", - "ProtectionError", - "ProtectionStopped", - "ProtectionPaused", - "BackupsSuspended" - ], - "type": "string", - "x-ms-enum": { - "name": "ProtectedItemState", - "modelAsString": true - } + "$ref": "#/definitions/ProtectedItemState", + "description": "Backup state of the backed up item." }, "extendedInfo": { "$ref": "#/definitions/AzureSqlProtectedItemExtendedInfo", "description": "Additional information for this backup item." } }, + "allOf": [ + { + "$ref": "#/definitions/ProtectedItem" + } + ], "x-ms-discriminator-value": "Microsoft.Sql/servers/databases" }, "AzureSqlProtectedItemExtendedInfo": { - "description": "Additional information on Azure Sql specific protected item.", "type": "object", + "description": "Additional information on Azure Sql specific protected item.", "properties": { "oldestRecoveryPoint": { + "type": "string", "format": "date-time", - "description": "The oldest backup copy available for this item in the service.", - "type": "string" + "description": "The oldest backup copy available for this item in the service." }, "recoveryPointCount": { + "type": "integer", "format": "int32", - "description": "Number of available backup copies associated with this backup item.", - "type": "integer" + "description": "Number of available backup copies associated with this backup item." }, "policyState": { - "description": "State of the backup policy associated with this backup item.", - "type": "string" + "type": "string", + "description": "State of the backup policy associated with this backup item." } } }, - "AzureStorageErrorInfo": { - "description": "Azure storage specific error information", + "AzureSqlProtectionPolicy": { "type": "object", + "description": "Azure SQL workload-specific backup policy.", "properties": { - "errorCode": { + "retentionPolicy": { + "$ref": "#/definitions/RetentionPolicy", + "description": "Retention policy details." + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProtectionPolicy" + } + ], + "x-ms-discriminator-value": "AzureSql" + }, + "AzureStorageContainer": { + "type": "object", + "description": "Azure Storage Account workload-specific container.", + "properties": { + "sourceResourceId": { + "type": "string", + "description": "Fully qualified ARM url." + }, + "storageAccountVersion": { + "type": "string", + "description": "Storage account version." + }, + "resourceGroup": { + "type": "string", + "description": "Resource group name of Recovery Services Vault." + }, + "protectedItemCount": { + "type": "integer", + "format": "int64", + "description": "Number of items backed up in this container." + }, + "acquireStorageAccountLock": { + "$ref": "#/definitions/AcquireStorageAccountLock", + "description": "Whether storage account lock is to be acquired for this container or not." + }, + "operationType": { + "$ref": "#/definitions/OperationType", + "description": "Re-Do Operation" + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProtectionContainer" + } + ], + "x-ms-discriminator-value": "StorageContainer" + }, + "AzureStorageErrorInfo": { + "type": "object", + "description": "Azure storage specific error information", + "properties": { + "errorCode": { + "type": "integer", "format": "int32", - "description": "Error code.", - "type": "integer" + "description": "Error code." }, "errorString": { - "description": "Localized error string.", - "type": "string" + "type": "string", + "description": "Localized error string." }, "recommendations": { - "description": "List of localized recommendations for above error code.", "type": "array", + "description": "List of localized recommendations for above error code.", "items": { "type": "string" } } } }, - "AzureSqlProtectionPolicy": { - "description": "Azure SQL workload-specific backup policy.", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ProtectionPolicy" - } - ], - "properties": { - "retentionPolicy": { - "$ref": "#/definitions/RetentionPolicy", - "description": "Retention policy details." - } - }, - "x-ms-discriminator-value": "AzureSql" - }, "AzureStorageJob": { - "description": "Azure storage specific job.", "type": "object", - "allOf": [ - { - "$ref": "#/definitions/Job" - } - ], + "description": "Azure storage specific job.", "properties": { "duration": { + "type": "string", "format": "duration", - "description": "Time elapsed during the execution of this job.", - "type": "string" + "description": "Time elapsed during the execution of this job." }, "actionsInfo": { - "description": "Gets or sets the state/actions applicable on this job like cancel/retry.", "type": "array", + "description": "Gets or sets the state/actions applicable on this job like cancel/retry.", "items": { - "enum": [ - "Invalid", - "Cancellable", - "Retriable" - ], - "type": "string", - "x-ms-enum": { - "name": "JobSupportedAction", - "modelAsString": false - } + "$ref": "#/definitions/JobSupportedAction" } }, "errorDetails": { - "description": "Error details on execution of this job.", "type": "array", + "description": "Error details on execution of this job.", "items": { "$ref": "#/definitions/AzureStorageErrorInfo" }, @@ -6022,31 +6098,36 @@ ] }, "storageAccountName": { - "description": "Specifies friendly name of the storage account.", - "type": "string" + "type": "string", + "description": "Specifies friendly name of the storage account." }, "storageAccountVersion": { - "description": "Specifies whether the Storage account is a Classic or an Azure Resource Manager Storage account.", - "type": "string" + "type": "string", + "description": "Specifies whether the Storage account is a Classic or an Azure Resource Manager Storage account." }, "extendedInfo": { "$ref": "#/definitions/AzureStorageJobExtendedInfo", "description": "Additional information about the job." }, "isUserTriggered": { - "description": "Indicated that whether the job is adhoc(true) or scheduled(false)", - "type": "boolean" + "type": "boolean", + "description": "Indicated that whether the job is adhoc(true) or scheduled(false)" } }, + "allOf": [ + { + "$ref": "#/definitions/Job" + } + ], "x-ms-discriminator-value": "AzureStorageJob" }, "AzureStorageJobExtendedInfo": { - "description": "Azure Storage workload-specific additional information for job.", "type": "object", + "description": "Azure Storage workload-specific additional information for job.", "properties": { "tasksList": { - "description": "List of tasks for this job", "type": "array", + "description": "List of tasks for this job", "items": { "$ref": "#/definitions/AzureStorageJobTaskDetails" }, @@ -6055,186 +6136,338 @@ ] }, "propertyBag": { - "description": "Job properties.", "type": "object", + "description": "Job properties.", "additionalProperties": { "type": "string" } }, "dynamicErrorMessage": { - "description": "Non localized error message on job execution.", - "type": "string" + "type": "string", + "description": "Non localized error message on job execution." } } }, "AzureStorageJobTaskDetails": { - "description": "Azure storage workload specific job task details.", "type": "object", + "description": "Azure storage workload specific job task details.", "properties": { "taskId": { - "description": "The task display name.", - "type": "string" + "type": "string", + "description": "The task display name." }, "status": { - "description": "The status.", - "type": "string" + "type": "string", + "description": "The status." } } }, - "AzureVmWorkloadProtectedItem": { - "description": "Azure VM workload-specific protected item.", + "AzureStorageProtectableContainer": { + "type": "object", + "description": "Azure Storage-specific protectable containers", + "allOf": [ + { + "$ref": "#/definitions/ProtectableContainer" + } + ], + "x-ms-discriminator-value": "StorageContainer" + }, + "AzureVMAppContainerProtectableContainer": { "type": "object", + "description": "Azure workload-specific container", "allOf": [ { - "$ref": "#/definitions/ProtectedItem" + "$ref": "#/definitions/ProtectableContainer" + } + ], + "x-ms-discriminator-value": "VMAppContainer" + }, + "AzureVMAppContainerProtectionContainer": { + "type": "object", + "description": "Container for SQL workloads under Azure Virtual Machines.", + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadContainer" + } + ], + "x-ms-discriminator-value": "VMAppContainer" + }, + "AzureVMResourceFeatureSupportRequest": { + "type": "object", + "description": "AzureResource(IaaS VM) Specific feature support request", + "properties": { + "vmSize": { + "type": "string", + "description": "Size of the resource: VM size(A/D series etc) in case of IaasVM" + }, + "vmSku": { + "type": "string", + "description": "SKUs (Premium/Managed etc) in case of IaasVM" + } + }, + "allOf": [ + { + "$ref": "#/definitions/FeatureSupportRequest" + } + ], + "x-ms-discriminator-value": "AzureVMResourceBackup" + }, + "AzureVMResourceFeatureSupportResponse": { + "type": "object", + "description": "Response for feature support requests for Azure IaasVm", + "properties": { + "supportStatus": { + "$ref": "#/definitions/SupportStatus", + "description": "Support status of feature" + } + } + }, + "AzureVmWorkloadItem": { + "type": "object", + "description": "Azure VM workload-specific workload item.", + "properties": { + "parentName": { + "type": "string", + "description": "Name for instance or AG" + }, + "serverName": { + "type": "string", + "description": "Host/Cluster Name for instance or AG" + }, + "isAutoProtectable": { + "type": "boolean", + "description": "Indicates if workload item is auto-protectable" + }, + "subinquireditemcount": { + "type": "integer", + "format": "int32", + "description": "For instance or AG, indicates number of DB's present" + }, + "subWorkloadItemCount": { + "type": "integer", + "format": "int32", + "description": "For instance or AG, indicates number of DB's to be protected" + } + }, + "allOf": [ + { + "$ref": "#/definitions/WorkloadItem" + } + ], + "x-ms-discriminator-value": "AzureVmWorkloadItem" + }, + "AzureVmWorkloadProtectableItem": { + "type": "object", + "description": "Azure VM workload-specific protectable item.", + "properties": { + "parentName": { + "type": "string", + "description": "Name for instance or AG" + }, + "parentUniqueName": { + "type": "string", + "description": "Parent Unique Name is added to provide the service formatted URI Name of the Parent\nOnly Applicable for data bases where the parent would be either Instance or a SQL AG." + }, + "serverName": { + "type": "string", + "description": "Host/Cluster Name for instance or AG" + }, + "isAutoProtectable": { + "type": "boolean", + "description": "Indicates if protectable item is auto-protectable" + }, + "isAutoProtected": { + "type": "boolean", + "description": "Indicates if protectable item is auto-protected" + }, + "subinquireditemcount": { + "type": "integer", + "format": "int32", + "description": "For instance or AG, indicates number of DB's present" + }, + "subprotectableitemcount": { + "type": "integer", + "format": "int32", + "description": "For instance or AG, indicates number of DB's to be protected" + }, + "prebackupvalidation": { + "$ref": "#/definitions/PreBackupValidation", + "description": "Pre-backup validation for protectable objects" + }, + "isProtectable": { + "type": "boolean", + "description": "Indicates if item is protectable" + } + }, + "allOf": [ + { + "$ref": "#/definitions/WorkloadProtectableItem" } ], + "x-ms-discriminator-value": "AzureVmWorkloadProtectableItem" + }, + "AzureVmWorkloadProtectedItem": { + "type": "object", + "description": "Azure VM workload-specific protected item.", "properties": { "friendlyName": { - "description": "Friendly name of the DB represented by this backup item.", "type": "string", + "description": "Friendly name of the DB represented by this backup item.", "readOnly": true }, "serverName": { - "description": "Host/Cluster Name for instance or AG", - "type": "string" + "type": "string", + "description": "Host/Cluster Name for instance or AG" }, "parentName": { - "description": "Parent name of the DB such as Instance or Availability Group.", - "type": "string" + "type": "string", + "description": "Parent name of the DB such as Instance or Availability Group." }, "parentType": { - "description": "Parent type of protected item, example: for a DB, standalone server or distributed", - "type": "string" + "type": "string", + "description": "Parent type of protected item, example: for a DB, standalone server or distributed" }, "protectionStatus": { - "description": "Backup status of this backup item.", "type": "string", + "description": "Backup status of this backup item.", "readOnly": true }, "protectionState": { - "description": "Backup state of this backup item.", - "enum": [ - "Invalid", - "IRPending", - "Protected", - "ProtectionError", - "ProtectionStopped", - "ProtectionPaused", - "BackupsSuspended" - ], - "type": "string", - "x-ms-enum": { - "name": "ProtectionState", - "modelAsString": true - } + "$ref": "#/definitions/ProtectionState", + "description": "Backup state of this backup item." }, "lastBackupStatus": { - "description": "Last backup operation status. Possible values: Healthy, Unhealthy.", - "enum": [ - "Invalid", - "Healthy", - "Unhealthy", - "IRPending" - ], - "type": "string", - "x-ms-enum": { - "name": "LastBackupStatus", - "modelAsString": true - } + "$ref": "#/definitions/LastBackupStatus", + "description": "Last backup operation status. Possible values: Healthy, Unhealthy." }, "lastBackupTime": { + "type": "string", "format": "date-time", - "description": "Timestamp of the last backup operation on this backup item.", - "type": "string" + "description": "Timestamp of the last backup operation on this backup item." }, "lastBackupErrorDetail": { "$ref": "#/definitions/ErrorDetail", "description": "Error details in last backup" }, "protectedItemDataSourceId": { - "description": "Data ID of the protected item.", - "type": "string" + "type": "string", + "description": "Data ID of the protected item." }, "protectedItemHealthStatus": { - "description": "Health status of the backup item, evaluated based on last heartbeat received", - "enum": [ - "Invalid", - "Healthy", - "Unhealthy", - "NotReachable", - "IRPending" - ], - "type": "string", - "x-ms-enum": { - "name": "ProtectedItemHealthStatus", - "modelAsString": true - } + "$ref": "#/definitions/ProtectedItemHealthStatus", + "description": "Health status of the backup item, evaluated based on last heartbeat received" }, "extendedInfo": { "$ref": "#/definitions/AzureVmWorkloadProtectedItemExtendedInfo", "description": "Additional information for this backup item." }, "kpisHealths": { - "description": "Health details of different KPIs", "type": "object", + "description": "Health details of different KPIs", "additionalProperties": { "$ref": "#/definitions/KPIResourceHealthDetails" } }, "nodesList": { - "description": "List of the nodes in case of distributed container.", "type": "array", + "description": "List of the nodes in case of distributed container.", "items": { "$ref": "#/definitions/DistributedNodesInfo" }, "x-ms-identifiers": [] } }, + "allOf": [ + { + "$ref": "#/definitions/ProtectedItem" + } + ], "x-ms-discriminator-value": "AzureVmWorkloadProtectedItem" }, "AzureVmWorkloadProtectedItemExtendedInfo": { - "description": "Additional information on Azure Workload for SQL specific backup item.", "type": "object", + "description": "Additional information on Azure Workload for SQL specific backup item.", "properties": { "oldestRecoveryPoint": { + "type": "string", "format": "date-time", - "description": "The oldest backup copy available for this backup item across all tiers.", - "type": "string" + "description": "The oldest backup copy available for this backup item across all tiers." }, "oldestRecoveryPointInVault": { + "type": "string", "format": "date-time", - "description": "The oldest backup copy available for this backup item in vault tier", - "type": "string" + "description": "The oldest backup copy available for this backup item in vault tier" }, "oldestRecoveryPointInArchive": { + "type": "string", "format": "date-time", - "description": "The oldest backup copy available for this backup item in archive tier", - "type": "string" + "description": "The oldest backup copy available for this backup item in archive tier" }, "newestRecoveryPointInArchive": { + "type": "string", "format": "date-time", - "description": "The latest backup copy available for this backup item in archive tier", - "type": "string" + "description": "The latest backup copy available for this backup item in archive tier" }, "recoveryPointCount": { + "type": "integer", "format": "int32", - "description": "Number of backup copies available for this backup item.", - "type": "integer" + "description": "Number of backup copies available for this backup item." }, "policyState": { - "description": "Indicates consistency of policy object and policy applied to this backup item.", - "type": "string" + "type": "string", + "description": "Indicates consistency of policy object and policy applied to this backup item." }, "recoveryModel": { - "description": "Indicates consistency of policy object and policy applied to this backup item.", - "type": "string" + "type": "string", + "description": "Indicates consistency of policy object and policy applied to this backup item." } } }, + "AzureVmWorkloadProtectionPolicy": { + "type": "object", + "description": "Azure VM (Mercury) workload-specific backup policy.", + "properties": { + "workLoadType": { + "$ref": "#/definitions/WorkloadType", + "description": "Type of workload for the backup management" + }, + "settings": { + "$ref": "#/definitions/Settings", + "description": "Common settings for the backup management" + }, + "subProtectionPolicy": { + "type": "array", + "description": "List of sub-protection policies which includes schedule and retention", + "items": { + "$ref": "#/definitions/SubProtectionPolicy" + }, + "x-ms-identifiers": [] + }, + "makePolicyConsistent": { + "type": "boolean", + "description": "Fix the policy inconsistency" + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProtectionPolicy" + } + ], + "x-ms-discriminator-value": "AzureWorkload" + }, + "AzureVmWorkloadSAPAseDatabaseProtectableItem": { + "type": "object", + "description": "Azure VM workload-specific protectable item representing SAP ASE Database.", + "allOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadProtectableItem" + } + ], + "x-ms-discriminator-value": "SAPAseDatabase" + }, "AzureVmWorkloadSAPAseDatabaseProtectedItem": { - "description": "Azure VM workload-specific protected item representing SAP ASE Database.", "type": "object", + "description": "Azure VM workload-specific protected item representing SAP ASE Database.", "allOf": [ { "$ref": "#/definitions/AzureVmWorkloadProtectedItem" @@ -6242,19 +6475,49 @@ ], "x-ms-discriminator-value": "AzureVmWorkloadSAPAseDatabase" }, - "AzureVmWorkloadSAPHanaDatabaseProtectedItem": { - "description": "Azure VM workload-specific protected item representing SAP HANA Database.", + "AzureVmWorkloadSAPAseDatabaseWorkloadItem": { "type": "object", + "description": "Azure VM workload-specific workload item representing SAP ASE Database.", "allOf": [ { - "$ref": "#/definitions/AzureVmWorkloadProtectedItem" + "$ref": "#/definitions/AzureVmWorkloadItem" } ], - "x-ms-discriminator-value": "AzureVmWorkloadSAPHanaDatabase" + "x-ms-discriminator-value": "SAPAseDatabase" + }, + "AzureVmWorkloadSAPAseSystemProtectableItem": { + "type": "object", + "description": "Azure VM workload-specific protectable item representing SAP ASE System.", + "allOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadProtectableItem" + } + ], + "x-ms-discriminator-value": "SAPAseSystem" + }, + "AzureVmWorkloadSAPAseSystemWorkloadItem": { + "type": "object", + "description": "Azure VM workload-specific workload item representing SAP ASE System.", + "allOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadItem" + } + ], + "x-ms-discriminator-value": "SAPAseSystem" + }, + "AzureVmWorkloadSAPHanaDBInstance": { + "type": "object", + "description": "Azure VM workload-specific protectable item representing SAP HANA Dbinstance.", + "allOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadProtectableItem" + } + ], + "x-ms-discriminator-value": "SAPHanaDBInstance" }, "AzureVmWorkloadSAPHanaDBInstanceProtectedItem": { - "description": "Azure VM workload-specific protected item representing SAP HANA DBInstance.", "type": "object", + "description": "Azure VM workload-specific protected item representing SAP HANA DBInstance.", "allOf": [ { "$ref": "#/definitions/AzureVmWorkloadProtectedItem" @@ -6262,7394 +6525,8566 @@ ], "x-ms-discriminator-value": "AzureVmWorkloadSAPHanaDBInstance" }, - "AzureVmWorkloadSQLDatabaseProtectedItem": { - "description": "Azure VM workload-specific protected item representing SQL Database.", + "AzureVmWorkloadSAPHanaDatabaseProtectableItem": { "type": "object", + "description": "Azure VM workload-specific protectable item representing SAP HANA Database.", "allOf": [ { - "$ref": "#/definitions/AzureVmWorkloadProtectedItem" + "$ref": "#/definitions/AzureVmWorkloadProtectableItem" } ], - "x-ms-discriminator-value": "AzureVmWorkloadSQLDatabase" + "x-ms-discriminator-value": "SAPHanaDatabase" }, - "AzureWorkloadErrorInfo": { - "description": "Azure storage specific error information", + "AzureVmWorkloadSAPHanaDatabaseProtectedItem": { "type": "object", - "properties": { - "errorCode": { - "format": "int32", - "description": "Error code.", - "type": "integer" - }, - "errorString": { - "description": "Localized error string.", - "type": "string" - }, - "errorTitle": { - "description": "Title: Typically, the entity that the error pertains to.", - "type": "string" - }, - "recommendations": { - "description": "List of localized recommendations for above error code.", - "type": "array", - "items": { - "type": "string" - } - }, - "additionalDetails": { - "description": "Additional details for above error code.", - "type": "string" + "description": "Azure VM workload-specific protected item representing SAP HANA Database.", + "allOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadProtectedItem" } - } + ], + "x-ms-discriminator-value": "AzureVmWorkloadSAPHanaDatabase" }, - "AzureWorkloadJob": { - "description": "Azure storage specific job.", + "AzureVmWorkloadSAPHanaDatabaseWorkloadItem": { "type": "object", + "description": "Azure VM workload-specific workload item representing SAP HANA Database.", "allOf": [ { - "$ref": "#/definitions/Job" + "$ref": "#/definitions/AzureVmWorkloadItem" } ], - "properties": { - "workloadType": { - "description": "Workload type of the job", - "type": "string" - }, - "duration": { - "format": "duration", - "description": "Time elapsed during the execution of this job.", - "type": "string" - }, - "actionsInfo": { - "description": "Gets or sets the state/actions applicable on this job like cancel/retry.", - "type": "array", - "items": { - "enum": [ - "Invalid", - "Cancellable", - "Retriable" - ], - "type": "string", - "x-ms-enum": { - "name": "JobSupportedAction", - "modelAsString": false - } - } - }, - "errorDetails": { - "description": "Error details on execution of this job.", - "type": "array", - "items": { - "$ref": "#/definitions/AzureWorkloadErrorInfo" - }, - "x-ms-identifiers": [ - "errorCode" - ] - }, - "extendedInfo": { - "$ref": "#/definitions/AzureWorkloadJobExtendedInfo", - "description": "Additional information about the job." - } - }, - "x-ms-discriminator-value": "AzureWorkloadJob" + "x-ms-discriminator-value": "SAPHanaDatabase" }, - "AzureWorkloadJobExtendedInfo": { - "description": "Azure VM workload-specific additional information for job.", + "AzureVmWorkloadSAPHanaHSRProtectableItem": { "type": "object", - "properties": { - "tasksList": { - "description": "List of tasks for this job", - "type": "array", - "items": { - "$ref": "#/definitions/AzureWorkloadJobTaskDetails" - }, - "x-ms-identifiers": [ - "taskId" - ] - }, - "propertyBag": { - "description": "Job properties.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "dynamicErrorMessage": { - "description": "Non localized error message on job execution.", - "type": "string" + "description": "Azure VM workload-specific protectable item representing HANA HSR.", + "allOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadProtectableItem" } - } + ], + "x-ms-discriminator-value": "HanaHSRContainer" }, - "AzureWorkloadJobTaskDetails": { - "description": "Azure VM workload specific job task details.", + "AzureVmWorkloadSAPHanaSystemProtectableItem": { "type": "object", - "properties": { - "taskId": { - "description": "The task display name.", - "type": "string" - }, - "status": { - "description": "The status.", - "type": "string" + "description": "Azure VM workload-specific protectable item representing SAP HANA System.", + "allOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadProtectableItem" } - } + ], + "x-ms-discriminator-value": "SAPHanaSystem" }, - "AzureWorkloadPointInTimeRecoveryPoint": { - "description": "Recovery point specific to PointInTime", + "AzureVmWorkloadSAPHanaSystemWorkloadItem": { "type": "object", + "description": "Azure VM workload-specific workload item representing SAP HANA System.", "allOf": [ { - "$ref": "#/definitions/AzureWorkloadRecoveryPoint" + "$ref": "#/definitions/AzureVmWorkloadItem" } ], + "x-ms-discriminator-value": "SAPHanaSystem" + }, + "AzureVmWorkloadSQLAvailabilityGroupProtectableItem": { + "type": "object", + "description": "Azure VM workload-specific protectable item representing SQL Availability Group.", "properties": { - "timeRanges": { - "description": "List of log ranges", + "nodesList": { "type": "array", + "description": "List of the nodes in case of distributed container.", "items": { - "$ref": "#/definitions/PointInTimeRange" + "$ref": "#/definitions/DistributedNodesInfo" }, "x-ms-identifiers": [] } }, - "x-ms-discriminator-value": "AzureWorkloadPointInTimeRecoveryPoint" + "allOf": [ + { + "$ref": "#/definitions/AzureVmWorkloadProtectableItem" + } + ], + "x-ms-discriminator-value": "SQLAvailabilityGroupContainer" }, - "AzureWorkloadPointInTimeRestoreRequest": { - "description": "AzureWorkload SAP Hana -specific restore. Specifically for PointInTime/Log restore", + "AzureVmWorkloadSQLDatabaseProtectableItem": { "type": "object", + "description": "Azure VM workload-specific protectable item representing SQL Database.", "allOf": [ { - "$ref": "#/definitions/AzureWorkloadRestoreRequest" + "$ref": "#/definitions/AzureVmWorkloadProtectableItem" } ], - "properties": { - "pointInTime": { - "format": "date-time", - "description": "PointInTime value", - "type": "string" - } - }, - "x-ms-discriminator-value": "AzureWorkloadPointInTimeRestoreRequest" + "x-ms-discriminator-value": "SQLDataBase" }, - "AzureWorkloadRecoveryPoint": { - "description": "Workload specific recovery point, specifically encapsulates full/diff recovery point", + "AzureVmWorkloadSQLDatabaseProtectedItem": { "type": "object", + "description": "Azure VM workload-specific protected item representing SQL Database.", "allOf": [ { - "$ref": "#/definitions/RecoveryPoint" + "$ref": "#/definitions/AzureVmWorkloadProtectedItem" } ], - "properties": { - "recoveryPointTimeInUTC": { - "format": "date-time", - "description": "UTC time at which recovery point was created", - "type": "string" - }, - "type": { - "description": "Type of restore point", - "enum": [ - "Invalid", - "Full", - "Log", - "Differential", - "Incremental", - "SnapshotFull", - "SnapshotCopyOnlyFull" - ], - "type": "string", - "x-ms-enum": { - "name": "RestorePointType", - "modelAsString": true - } - }, - "recoveryPointTierDetails": { - "description": "Recovery point tier information.", - "type": "array", - "items": { - "$ref": "#/definitions/RecoveryPointTierInformationV2" - }, - "x-ms-identifiers": [] - }, - "recoveryPointMoveReadinessInfo": { - "description": "Eligibility of RP to be moved to another tier", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/RecoveryPointMoveReadinessInfo" - } - }, - "recoveryPointProperties": { - "description": "Properties of Recovery Point", - "$ref": "#/definitions/RecoveryPointProperties" - } - }, - "x-ms-discriminator-value": "AzureWorkloadRecoveryPoint" + "x-ms-discriminator-value": "AzureVmWorkloadSQLDatabase" }, - "AzureWorkloadRestoreRequest": { - "description": "AzureWorkload-specific restore.", + "AzureVmWorkloadSQLDatabaseWorkloadItem": { "type": "object", + "description": "Azure VM workload-specific workload item representing SQL Database.", "allOf": [ { - "$ref": "#/definitions/RestoreRequest" + "$ref": "#/definitions/AzureVmWorkloadItem" } ], - "properties": { - "recoveryType": { - "description": "Type of this recovery.", - "enum": [ - "Invalid", - "OriginalLocation", - "AlternateLocation", - "RestoreDisks", - "Offline" - ], - "type": "string", - "x-ms-enum": { - "name": "RecoveryType", - "modelAsString": true - } - }, - "sourceResourceId": { - "description": "Fully qualified ARM ID of the VM on which workload that was running is being recovered.", - "type": "string" - }, - "propertyBag": { - "description": "Workload specific property bag.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "targetInfo": { - "$ref": "#/definitions/TargetRestoreInfo", - "description": "Details of target database" - }, - "recoveryMode": { - "description": "Defines whether the current recovery mode is file restore or database restore", - "enum": [ - "Invalid", - "FileRecovery", - "WorkloadRecovery", - "SnapshotAttach", - "RecoveryUsingSnapshot", - "SnapshotAttachAndRecover" - ], - "type": "string", - "x-ms-enum": { - "name": "RecoveryMode", - "modelAsString": true - } - }, - "targetResourceGroupName": { - "description": "Defines the Resource group of the Target VM", - "type": "string" - }, - "userAssignedManagedIdentityDetails": { - "$ref": "#/definitions/UserAssignedManagedIdentityDetails", - "description": "User Assigned managed identity details\r\nCurrently used for snapshot." - }, - "snapshotRestoreParameters": { - "$ref": "#/definitions/SnapshotRestoreParameters", - "description": "Additional details for snapshot recovery\r\nCurrently used for snapshot for SAP Hana." - }, - "targetVirtualMachineId": { - "description": "This is the complete ARM Id of the target VM\r\nFor e.g. /subscriptions/{subId}/resourcegroups/{rg}/provider/Microsoft.Compute/virtualmachines/{vm}", - "type": "string" - } - }, - "x-ms-discriminator-value": "AzureWorkloadRestoreRequest" + "x-ms-discriminator-value": "SQLDataBase" }, - "AzureWorkloadSAPHanaPointInTimeRecoveryPoint": { - "description": "Recovery point specific to PointInTime in SAPHana", + "AzureVmWorkloadSQLInstanceProtectableItem": { "type": "object", + "description": "Azure VM workload-specific protectable item representing SQL Instance.", "allOf": [ { - "$ref": "#/definitions/AzureWorkloadPointInTimeRecoveryPoint" + "$ref": "#/definitions/AzureVmWorkloadProtectableItem" } ], - "x-ms-discriminator-value": "AzureWorkloadSAPHanaPointInTimeRecoveryPoint" + "x-ms-discriminator-value": "SQLInstance" }, - "AzureWorkloadSAPHanaPointInTimeRestoreRequest": { - "description": "AzureWorkload SAP Hana -specific restore. Specifically for PointInTime/Log restore", + "AzureVmWorkloadSQLInstanceWorkloadItem": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureWorkloadSAPHanaRestoreRequest" - } - ], + "description": "Azure VM workload-specific workload item representing SQL Instance.", "properties": { - "pointInTime": { - "format": "date-time", - "description": "PointInTime value", - "type": "string" + "dataDirectoryPaths": { + "type": "array", + "description": "Data Directory Paths for default directories", + "items": { + "$ref": "#/definitions/SQLDataDirectory" + }, + "x-ms-identifiers": [] } }, - "x-ms-discriminator-value": "AzureWorkloadSAPHanaPointInTimeRestoreRequest" - }, - "AzureWorkloadSAPHanaRecoveryPoint": { - "description": "SAPHana specific recoverypoint, specifically encapsulates full/diff recoverypoints", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureWorkloadRecoveryPoint" - } - ], - "x-ms-discriminator-value": "AzureWorkloadSAPHanaRecoveryPoint" - }, - "AzureWorkloadSAPHanaRestoreRequest": { - "description": "AzureWorkload SAP Hana-specific restore.", - "type": "object", "allOf": [ { - "$ref": "#/definitions/AzureWorkloadRestoreRequest" + "$ref": "#/definitions/AzureVmWorkloadItem" } ], - "x-ms-discriminator-value": "AzureWorkloadSAPHanaRestoreRequest" + "x-ms-discriminator-value": "SQLInstance" }, - "AzureWorkloadSAPAsePointInTimeRecoveryPoint": { - "description": "Recovery point specific to PointInTime in SAPAse", + "AzureWorkloadAutoProtectionIntent": { "type": "object", + "description": "Azure Recovery Services Vault specific protection intent item.", "allOf": [ { - "$ref": "#/definitions/AzureWorkloadPointInTimeRecoveryPoint" + "$ref": "#/definitions/AzureRecoveryServiceVaultProtectionIntent" } ], - "x-ms-discriminator-value": "AzureWorkloadSAPAsePointInTimeRecoveryPoint" + "x-ms-discriminator-value": "AzureWorkloadAutoProtectionIntent" }, - "AzureWorkloadSAPAsePointInTimeRestoreRequest": { - "description": "AzureWorkload SAP Ase-specific restore. Specifically for PointInTime/Log restore", + "AzureWorkloadBackupRequest": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureWorkloadSAPAseRestoreRequest" - } - ], + "description": "AzureWorkload workload-specific backup request.", "properties": { - "pointInTime": { + "backupType": { + "$ref": "#/definitions/BackupType", + "description": "Type of backup, viz. Full, Differential, Log or CopyOnlyFull" + }, + "enableCompression": { + "type": "boolean", + "description": "Bool for Compression setting" + }, + "recoveryPointExpiryTimeInUTC": { + "type": "string", "format": "date-time", - "description": "PointInTime value", - "type": "string" + "description": "Backup copy will expire after the time specified (UTC)." } }, - "x-ms-discriminator-value": "AzureWorkloadSAPAsePointInTimeRestoreRequest" - }, - "AzureWorkloadSAPAseRecoveryPoint": { - "description": "SAPAse specific recoverypoint, specifically encapsulates full/diff recoverypoints", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureWorkloadRecoveryPoint" - } - ], - "x-ms-discriminator-value": "AzureWorkloadSAPAseRecoveryPoint" - }, - "AzureWorkloadSAPAseRestoreRequest": { - "description": "AzureWorkload SAP Ase-specific restore.", - "type": "object", "allOf": [ { - "$ref": "#/definitions/AzureWorkloadRestoreRequest" + "$ref": "#/definitions/BackupRequest" } ], - "x-ms-discriminator-value": "AzureWorkloadSAPAseRestoreRequest" + "x-ms-discriminator-value": "AzureWorkloadBackupRequest" }, - "AzureWorkloadSQLPointInTimeRecoveryPoint": { - "description": "Recovery point specific to PointInTime", + "AzureWorkloadContainer": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureWorkloadSQLRecoveryPoint" - } - ], + "description": "Container for the workloads running inside Azure Compute or Classic Compute.", "properties": { - "timeRanges": { - "description": "List of log ranges", - "type": "array", - "items": { - "$ref": "#/definitions/PointInTimeRange" - }, - "x-ms-identifiers": [] + "sourceResourceId": { + "type": "string", + "description": "ARM ID of the virtual machine represented by this Azure Workload Container" + }, + "lastUpdatedTime": { + "type": "string", + "format": "date-time", + "description": "Time stamp when this container was updated." + }, + "extendedInfo": { + "$ref": "#/definitions/AzureWorkloadContainerExtendedInfo", + "description": "Additional details of a workload container." + }, + "workloadType": { + "$ref": "#/definitions/WorkloadType", + "description": "Workload type for which registration was sent." + }, + "operationType": { + "$ref": "#/definitions/OperationType", + "description": "Re-Do Operation" } }, - "x-ms-discriminator-value": "AzureWorkloadSQLPointInTimeRecoveryPoint" - }, - "AzureWorkloadSQLPointInTimeRestoreRequest": { - "description": "AzureWorkload SQL -specific restore. Specifically for PointInTime/Log restore", - "type": "object", "allOf": [ { - "$ref": "#/definitions/AzureWorkloadSQLRestoreRequest" + "$ref": "#/definitions/ProtectionContainer" } ], - "properties": { - "pointInTime": { - "format": "date-time", - "description": "PointInTime value", - "type": "string" - } - }, - "x-ms-discriminator-value": "AzureWorkloadSQLPointInTimeRestoreRequest" + "x-ms-discriminator-value": "AzureWorkloadContainer" }, - "AzureWorkloadSQLRecoveryPoint": { - "description": "SQL specific recoverypoint, specifically encapsulates full/diff recoverypoint along with extended info", + "AzureWorkloadContainerAutoProtectionIntent": { "type": "object", + "description": "Azure workload specific protection intent item.", "allOf": [ { - "$ref": "#/definitions/AzureWorkloadRecoveryPoint" + "$ref": "#/definitions/ProtectionIntent" } ], - "properties": { - "extendedInfo": { - "$ref": "#/definitions/AzureWorkloadSQLRecoveryPointExtendedInfo", - "description": "Extended Info that provides data directory details. Will be populated in two cases:\r\nWhen a specific recovery point is accessed using GetRecoveryPoint\r\nOr when ListRecoveryPoints is called for Log RP only with ExtendedInfo query filter" - } - }, - "x-ms-discriminator-value": "AzureWorkloadSQLRecoveryPoint" + "x-ms-discriminator-value": "AzureWorkloadContainerAutoProtectionIntent" }, - "AzureWorkloadSQLRecoveryPointExtendedInfo": { - "description": "Extended info class details", + "AzureWorkloadContainerExtendedInfo": { "type": "object", + "description": "Extended information of the container.", "properties": { - "dataDirectoryTimeInUTC": { - "format": "date-time", - "description": "UTC time at which data directory info was captured", - "type": "string" + "hostServerName": { + "type": "string", + "description": "Host Os Name in case of Stand Alone and Cluster Name in case of distributed container." }, - "dataDirectoryPaths": { - "description": "List of data directory paths during restore operation.", + "inquiryInfo": { + "$ref": "#/definitions/InquiryInfo", + "description": "Inquiry Status for the container." + }, + "nodesList": { "type": "array", + "description": "List of the nodes in case of distributed container.", "items": { - "$ref": "#/definitions/SQLDataDirectory" + "$ref": "#/definitions/DistributedNodesInfo" }, "x-ms-identifiers": [] } } }, - "AzureWorkloadSQLRestoreRequest": { - "description": "AzureWorkload SQL -specific restore. Specifically for full/diff restore", + "AzureWorkloadErrorInfo": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureWorkloadRestoreRequest" - } - ], + "description": "Azure storage specific error information", "properties": { - "shouldUseAlternateTargetLocation": { - "description": "Default option set to true. If this is set to false, alternate data directory must be provided", - "type": "boolean" + "errorCode": { + "type": "integer", + "format": "int32", + "description": "Error code." }, - "isNonRecoverable": { - "description": "SQL specific property where user can chose to set no-recovery when restore operation is tried", - "type": "boolean" + "errorString": { + "type": "string", + "description": "Localized error string." }, - "alternateDirectoryPaths": { - "description": "Data directory details", + "errorTitle": { + "type": "string", + "description": "Title: Typically, the entity that the error pertains to." + }, + "recommendations": { "type": "array", + "description": "List of localized recommendations for above error code.", "items": { - "$ref": "#/definitions/SQLDataDirectoryMapping" - }, - "x-ms-identifiers": [] - } - }, - "x-ms-discriminator-value": "AzureWorkloadSQLRestoreRequest" - }, - "BEKDetails": { - "description": "BEK is bitlocker encryption key.", - "type": "object", - "properties": { - "secretUrl": { - "description": "Secret is BEK.", - "type": "string" - }, - "secretVaultId": { - "description": "ID of the Key Vault where this Secret is stored.", - "type": "string" + "type": "string" + } }, - "secretData": { - "description": "BEK data.", - "type": "string" + "additionalDetails": { + "type": "string", + "description": "Additional details for above error code." } } }, - "BMSRPQueryObject": { - "description": "Filters to list backup copies.", + "AzureWorkloadJob": { "type": "object", + "description": "Azure storage specific job.", "properties": { - "startDate": { - "format": "date-time", - "description": "Backup copies created after this time.", - "type": "string" + "workloadType": { + "type": "string", + "description": "Workload type of the job" }, - "endDate": { - "format": "date-time", - "description": "Backup copies created before this time.", - "type": "string" + "duration": { + "type": "string", + "format": "duration", + "description": "Time elapsed during the execution of this job." }, - "restorePointQueryType": { - "description": "RestorePoint type", - "enum": [ - "Invalid", - "Full", - "Log", - "Differential", - "FullAndDifferential", - "All", - "Incremental", - "SnapshotFull", - "SnapshotCopyOnlyFull" - ], - "type": "string", - "x-ms-enum": { - "name": "RestorePointQueryType", - "modelAsString": true + "actionsInfo": { + "type": "array", + "description": "Gets or sets the state/actions applicable on this job like cancel/retry.", + "items": { + "$ref": "#/definitions/JobSupportedAction" } }, - "extendedInfo": { - "description": "In Get Recovery Point, it tells whether extended information about recovery point is asked.", - "type": "boolean" - }, - "moveReadyRPOnly": { - "description": "Whether the RP can be moved to another tier", - "type": "boolean" + "errorDetails": { + "type": "array", + "description": "Error details on execution of this job.", + "items": { + "$ref": "#/definitions/AzureWorkloadErrorInfo" + }, + "x-ms-identifiers": [ + "errorCode" + ] }, - "includeSoftDeletedRP": { - "description": "Flag to indicate whether Soft Deleted RPs should be included/excluded from result.", - "type": "boolean" + "extendedInfo": { + "$ref": "#/definitions/AzureWorkloadJobExtendedInfo", + "description": "Additional information about the job." } - } + }, + "allOf": [ + { + "$ref": "#/definitions/Job" + } + ], + "x-ms-discriminator-value": "AzureWorkloadJob" }, - "DiskExclusionProperties": { + "AzureWorkloadJobExtendedInfo": { "type": "object", + "description": "Azure VM workload-specific additional information for job.", "properties": { - "diskLunList": { - "description": "List of Disks' Logical Unit Numbers (LUN) to be used for VM Protection.", + "tasksList": { "type": "array", + "description": "List of tasks for this job", "items": { - "format": "int32", - "type": "integer" + "$ref": "#/definitions/AzureWorkloadJobTaskDetails" + }, + "x-ms-identifiers": [ + "taskId" + ] + }, + "propertyBag": { + "type": "object", + "description": "Job properties.", + "additionalProperties": { + "type": "string" } }, - "isInclusionList": { - "description": "Flag to indicate whether DiskLunList is to be included/ excluded from backup.", - "type": "boolean" + "dynamicErrorMessage": { + "type": "string", + "description": "Non localized error message on job execution." } } }, - "ClientDiscoveryDisplay": { - "description": "Localized display information of an operation.", + "AzureWorkloadJobTaskDetails": { "type": "object", + "description": "Azure VM workload specific job task details.", "properties": { - "provider": { - "description": "Name of the provider for display purposes", - "type": "string" - }, - "resource": { - "description": "ResourceType for which this Operation can be performed.", - "type": "string" - }, - "operation": { - "description": "Operations Name itself.", - "type": "string" + "taskId": { + "type": "string", + "description": "The task display name." }, - "description": { - "description": "Description of the operation having details of what operation is about.", - "type": "string" + "status": { + "type": "string", + "description": "The status." } } }, - "ClientDiscoveryForLogSpecification": { - "description": "Class to represent shoebox log specification in json client discovery.", + "AzureWorkloadPointInTimeRecoveryPoint": { "type": "object", + "description": "Recovery point specific to PointInTime", "properties": { - "name": { - "description": "Name for shoebox log specification.", - "type": "string" - }, - "displayName": { - "description": "Localized display name", - "type": "string" - }, - "blobDuration": { - "description": "blob duration of shoebox log specification", - "type": "string" + "timeRanges": { + "type": "array", + "description": "List of log ranges", + "items": { + "$ref": "#/definitions/PointInTimeRange" + }, + "x-ms-identifiers": [] } - } - }, - "ClientDiscoveryForProperties": { - "description": "Class to represent shoebox properties in json client discovery.", - "type": "object", - "properties": { - "serviceSpecification": { - "$ref": "#/definitions/ClientDiscoveryForServiceSpecification", - "description": "Operation properties." + }, + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadRecoveryPoint" } - } + ], + "x-ms-discriminator-value": "AzureWorkloadPointInTimeRecoveryPoint" }, - "ClientDiscoveryForServiceSpecification": { - "description": "Class to represent shoebox service specification in json client discovery.", + "AzureWorkloadPointInTimeRestoreRequest": { "type": "object", + "description": "AzureWorkload SAP Hana -specific restore. Specifically for PointInTime/Log restore", "properties": { - "logSpecifications": { - "description": "List of log specifications of this operation.", - "type": "array", - "items": { - "$ref": "#/definitions/ClientDiscoveryForLogSpecification" - }, - "x-ms-identifiers": [] + "pointInTime": { + "type": "string", + "format": "date-time", + "description": "PointInTime value" } - } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadRestoreRequest" + } + ], + "x-ms-discriminator-value": "AzureWorkloadPointInTimeRestoreRequest" }, - "ClientDiscoveryResponse": { - "description": "Operations List response which contains list of available APIs.", + "AzureWorkloadRecoveryPoint": { "type": "object", + "description": "Workload specific recovery point, specifically encapsulates full/diff recovery point", "properties": { - "value": { - "description": "List of available operations.", + "recoveryPointTimeInUTC": { + "type": "string", + "format": "date-time", + "description": "UTC time at which recovery point was created" + }, + "type": { + "$ref": "#/definitions/RestorePointType", + "description": "Type of restore point" + }, + "recoveryPointTierDetails": { "type": "array", + "description": "Recovery point tier information.", "items": { - "$ref": "#/definitions/ClientDiscoveryValueForSingleApi" + "$ref": "#/definitions/RecoveryPointTierInformationV2" }, "x-ms-identifiers": [] }, - "nextLink": { - "description": "Link to the next chunk of Response.", - "type": "string" + "recoveryPointMoveReadinessInfo": { + "type": "object", + "description": "Eligibility of RP to be moved to another tier", + "additionalProperties": { + "$ref": "#/definitions/RecoveryPointMoveReadinessInfo" + } + }, + "recoveryPointProperties": { + "$ref": "#/definitions/RecoveryPointProperties", + "description": "Properties of Recovery Point" } - } + }, + "allOf": [ + { + "$ref": "#/definitions/RecoveryPoint" + } + ], + "x-ms-discriminator-value": "AzureWorkloadRecoveryPoint" }, - "ClientDiscoveryValueForSingleApi": { - "description": "Available operation details.", + "AzureWorkloadRestoreRequest": { "type": "object", + "description": "AzureWorkload-specific restore.", "properties": { - "name": { - "description": "Name of the Operation.", - "type": "string" + "recoveryType": { + "$ref": "#/definitions/RecoveryType", + "description": "Type of this recovery." }, - "display": { - "$ref": "#/definitions/ClientDiscoveryDisplay", - "description": "Contains the localized display information for this particular operation" + "sourceResourceId": { + "type": "string", + "description": "Fully qualified ARM ID of the VM on which workload that was running is being recovered." }, - "origin": { - "description": "The intended executor of the operation;governs the display of the operation in the RBAC UX and the audit logs UX", - "type": "string" + "propertyBag": { + "type": "object", + "description": "Workload specific property bag.", + "additionalProperties": { + "type": "string" + } }, - "properties": { - "$ref": "#/definitions/ClientDiscoveryForProperties", - "description": "ShoeBox properties for the given operation." - } - } - }, - "DiskInformation": { - "description": "Disk information", - "type": "object", - "properties": { - "lun": { - "format": "int32", - "type": "integer" + "targetInfo": { + "$ref": "#/definitions/TargetRestoreInfo", + "description": "Details of target database" }, - "name": { - "type": "string" + "recoveryMode": { + "$ref": "#/definitions/RecoveryMode", + "description": "Defines whether the current recovery mode is file restore or database restore" + }, + "targetResourceGroupName": { + "type": "string", + "description": "Defines the Resource group of the Target VM" + }, + "userAssignedManagedIdentityDetails": { + "$ref": "#/definitions/UserAssignedManagedIdentityDetails", + "description": "User Assigned managed identity details\nCurrently used for snapshot." + }, + "snapshotRestoreParameters": { + "$ref": "#/definitions/SnapshotRestoreParameters", + "description": "Additional details for snapshot recovery\nCurrently used for snapshot for SAP Hana." + }, + "targetVirtualMachineId": { + "type": "string", + "description": "This is the complete ARM Id of the target VM\nFor e.g. /subscriptions/{subId}/resourcegroups/{rg}/provider/Microsoft.Compute/virtualmachines/{vm}" + } + }, + "allOf": [ + { + "$ref": "#/definitions/RestoreRequest" + } + ], + "x-ms-discriminator-value": "AzureWorkloadRestoreRequest" + }, + "AzureWorkloadSAPAsePointInTimeRecoveryPoint": { + "type": "object", + "description": "Recovery point specific to PointInTime in SAPAse", + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadPointInTimeRecoveryPoint" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSAPAsePointInTimeRecoveryPoint" + }, + "AzureWorkloadSAPAsePointInTimeRestoreRequest": { + "type": "object", + "description": "AzureWorkload SAP Ase-specific restore. Specifically for PointInTime/Log restore", + "properties": { + "pointInTime": { + "type": "string", + "format": "date-time", + "description": "PointInTime value" + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadSAPAseRestoreRequest" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSAPAsePointInTimeRestoreRequest" + }, + "AzureWorkloadSAPAseRecoveryPoint": { + "type": "object", + "description": "SAPAse specific recoverypoint, specifically encapsulates full/diff recoverypoints", + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadRecoveryPoint" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSAPAseRecoveryPoint" + }, + "AzureWorkloadSAPAseRestoreRequest": { + "type": "object", + "description": "AzureWorkload SAP Ase-specific restore.", + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadRestoreRequest" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSAPAseRestoreRequest" + }, + "AzureWorkloadSAPHanaPointInTimeRecoveryPoint": { + "type": "object", + "description": "Recovery point specific to PointInTime in SAPHana", + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadPointInTimeRecoveryPoint" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSAPHanaPointInTimeRecoveryPoint" + }, + "AzureWorkloadSAPHanaPointInTimeRestoreRequest": { + "type": "object", + "description": "AzureWorkload SAP Hana -specific restore. Specifically for PointInTime/Log restore", + "properties": { + "pointInTime": { + "type": "string", + "format": "date-time", + "description": "PointInTime value" + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadSAPHanaRestoreRequest" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSAPHanaPointInTimeRestoreRequest" + }, + "AzureWorkloadSAPHanaPointInTimeRestoreWithRehydrateRequest": { + "type": "object", + "description": "AzureWorkload SAP Hana-specific restore with integrated rehydration of recovery point.", + "properties": { + "recoveryPointRehydrationInfo": { + "$ref": "#/definitions/RecoveryPointRehydrationInfo", + "description": "RP Rehydration Info" + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadSAPHanaPointInTimeRestoreRequest" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSAPHanaPointInTimeRestoreWithRehydrateRequest" + }, + "AzureWorkloadSAPHanaRecoveryPoint": { + "type": "object", + "description": "SAPHana specific recoverypoint, specifically encapsulates full/diff recoverypoints", + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadRecoveryPoint" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSAPHanaRecoveryPoint" + }, + "AzureWorkloadSAPHanaRestoreRequest": { + "type": "object", + "description": "AzureWorkload SAP Hana-specific restore.", + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadRestoreRequest" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSAPHanaRestoreRequest" + }, + "AzureWorkloadSAPHanaRestoreWithRehydrateRequest": { + "type": "object", + "description": "AzureWorkload SAP Hana-specific restore with integrated rehydration of recovery point.", + "properties": { + "recoveryPointRehydrationInfo": { + "$ref": "#/definitions/RecoveryPointRehydrationInfo", + "description": "RP Rehydration Info" + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadSAPHanaRestoreRequest" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSAPHanaRestoreWithRehydrateRequest" + }, + "AzureWorkloadSQLAutoProtectionIntent": { + "type": "object", + "description": "Azure Workload SQL Auto Protection intent item.", + "properties": { + "workloadItemType": { + "$ref": "#/definitions/WorkloadItemType", + "description": "Workload item type of the item for which intent is to be set" + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadAutoProtectionIntent" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSQLAutoProtectionIntent" + }, + "AzureWorkloadSQLPointInTimeRecoveryPoint": { + "type": "object", + "description": "Recovery point specific to PointInTime", + "properties": { + "timeRanges": { + "type": "array", + "description": "List of log ranges", + "items": { + "$ref": "#/definitions/PointInTimeRange" + }, + "x-ms-identifiers": [] + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadSQLRecoveryPoint" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSQLPointInTimeRecoveryPoint" + }, + "AzureWorkloadSQLPointInTimeRestoreRequest": { + "type": "object", + "description": "AzureWorkload SQL -specific restore. Specifically for PointInTime/Log restore", + "properties": { + "pointInTime": { + "type": "string", + "format": "date-time", + "description": "PointInTime value" + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadSQLRestoreRequest" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSQLPointInTimeRestoreRequest" + }, + "AzureWorkloadSQLPointInTimeRestoreWithRehydrateRequest": { + "type": "object", + "description": "AzureWorkload SQL-specific restore with integrated rehydration of recovery point.", + "properties": { + "recoveryPointRehydrationInfo": { + "$ref": "#/definitions/RecoveryPointRehydrationInfo", + "description": "RP Rehydration Info" + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadSQLPointInTimeRestoreRequest" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSQLPointInTimeRestoreWithRehydrateRequest" + }, + "AzureWorkloadSQLRecoveryPoint": { + "type": "object", + "description": "SQL specific recoverypoint, specifically encapsulates full/diff recoverypoint along with extended info", + "properties": { + "extendedInfo": { + "$ref": "#/definitions/AzureWorkloadSQLRecoveryPointExtendedInfo", + "description": "Extended Info that provides data directory details. Will be populated in two cases:\nWhen a specific recovery point is accessed using GetRecoveryPoint\nOr when ListRecoveryPoints is called for Log RP only with ExtendedInfo query filter" + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadRecoveryPoint" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSQLRecoveryPoint" + }, + "AzureWorkloadSQLRecoveryPointExtendedInfo": { + "type": "object", + "description": "Extended info class details", + "properties": { + "dataDirectoryTimeInUTC": { + "type": "string", + "format": "date-time", + "description": "UTC time at which data directory info was captured" + }, + "dataDirectoryPaths": { + "type": "array", + "description": "List of data directory paths during restore operation.", + "items": { + "$ref": "#/definitions/SQLDataDirectory" + }, + "x-ms-identifiers": [] + } + } + }, + "AzureWorkloadSQLRestoreRequest": { + "type": "object", + "description": "AzureWorkload SQL -specific restore. Specifically for full/diff restore", + "properties": { + "shouldUseAlternateTargetLocation": { + "type": "boolean", + "description": "Default option set to true. If this is set to false, alternate data directory must be provided" + }, + "isNonRecoverable": { + "type": "boolean", + "description": "SQL specific property where user can chose to set no-recovery when restore operation is tried" + }, + "alternateDirectoryPaths": { + "type": "array", + "description": "Data directory details", + "items": { + "$ref": "#/definitions/SQLDataDirectoryMapping" + }, + "x-ms-identifiers": [] + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadRestoreRequest" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSQLRestoreRequest" + }, + "AzureWorkloadSQLRestoreWithRehydrateRequest": { + "type": "object", + "description": "AzureWorkload SQL-specific restore with integrated rehydration of recovery point", + "properties": { + "recoveryPointRehydrationInfo": { + "$ref": "#/definitions/RecoveryPointRehydrationInfo", + "description": "RP Rehydration Info" + } + }, + "allOf": [ + { + "$ref": "#/definitions/AzureWorkloadSQLRestoreRequest" + } + ], + "x-ms-discriminator-value": "AzureWorkloadSQLRestoreWithRehydrateRequest" + }, + "BEKDetails": { + "type": "object", + "description": "BEK is bitlocker encryption key.", + "properties": { + "secretUrl": { + "type": "string", + "description": "Secret is BEK." + }, + "secretVaultId": { + "type": "string", + "description": "ID of the Key Vault where this Secret is stored." + }, + "secretData": { + "type": "string", + "description": "BEK data." + } + } + }, + "BMSBackupEngineQueryObject": { + "type": "object", + "description": "Query parameters to fetch list of backup engines.", + "properties": { + "expand": { + "type": "string", + "description": "attribute to add extended info" + } + } + }, + "BMSBackupEnginesQueryObject": { + "type": "object", + "description": "Query parameters to fetch list of backup engines.", + "properties": { + "backupManagementType": { + "$ref": "#/definitions/BackupManagementType", + "description": "Backup management type for the backup engine." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of the backup engine." + }, + "expand": { + "type": "string", + "description": "Attribute to add extended info." + } + } + }, + "BMSBackupSummariesQueryObject": { + "type": "object", + "description": "Query parameters to fetch backup summaries.", + "properties": { + "type": { + "$ref": "#/definitions/Type", + "description": "Backup management type for this container." + } + } + }, + "BMSContainerQueryObject": { + "type": "object", + "description": "The query filters that can be used with the list containers API.", + "properties": { + "backupManagementType": { + "$ref": "#/definitions/BackupManagementType", + "description": "Backup management type for this container." + }, + "containerType": { + "$ref": "#/definitions/ContainerType", + "description": "Type of container for filter" + }, + "backupEngineName": { + "type": "string", + "description": "Backup engine name" + }, + "fabricName": { + "type": "string", + "description": "Fabric name for filter" + }, + "status": { + "type": "string", + "description": "Status of registration of this container with the Recovery Services Vault." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of this container." + } + }, + "required": [ + "backupManagementType" + ] + }, + "BMSContainersInquiryQueryObject": { + "type": "object", + "description": "The query filters that can be used with the inquire container API.", + "properties": { + "backupManagementType": { + "$ref": "#/definitions/BackupManagementType", + "description": "Backup management type for this container." + }, + "workloadType": { + "$ref": "#/definitions/WorkloadType", + "description": "Workload type for this container." + } + } + }, + "BMSRefreshContainersQueryObject": { + "type": "object", + "description": "The query filters that can be used with the refresh container API.", + "properties": { + "backupManagementType": { + "$ref": "#/definitions/BackupManagementType", + "description": "Backup management type for this container." + } + } + }, + "BMSWorkloadItemQueryObject": { + "type": "object", + "description": "Filters to list items that can be backed up.", + "properties": { + "backupManagementType": { + "$ref": "#/definitions/BackupManagementType", + "description": "Backup management type." + }, + "workloadItemType": { + "$ref": "#/definitions/WorkloadItemType", + "description": "Workload Item type" + }, + "workloadType": { + "$ref": "#/definitions/WorkloadType", + "description": "Workload type" + }, + "protectionStatus": { + "$ref": "#/definitions/ProtectionStatus", + "description": "Backup status query parameter." + } + } + }, + "BackupEngineBase": { + "type": "object", + "description": "The base backup engine class. All workload specific backup engines derive from this class.", + "properties": { + "friendlyName": { + "type": "string", + "description": "Friendly name of the backup engine." + }, + "backupManagementType": { + "$ref": "#/definitions/BackupManagementType", + "description": "Type of backup management for the backup engine." + }, + "registrationStatus": { + "type": "string", + "description": "Registration status of the backup engine with the Recovery Services Vault." + }, + "backupEngineState": { + "type": "string", + "description": "Status of the backup engine with the Recovery Services Vault. = {Active/Deleting/DeleteFailed}" + }, + "healthStatus": { + "type": "string", + "description": "Backup status of the backup engine." + }, + "backupEngineType": { + "$ref": "#/definitions/BackupEngineType", + "description": "Type of the backup engine." + }, + "canReRegister": { + "type": "boolean", + "description": "Flag indicating if the backup engine be registered, once already registered." + }, + "backupEngineId": { + "type": "string", + "description": "ID of the backup engine." + }, + "dpmVersion": { + "type": "string", + "description": "Backup engine version" + }, + "azureBackupAgentVersion": { + "type": "string", + "description": "Backup agent version" + }, + "isAzureBackupAgentUpgradeAvailable": { + "type": "boolean", + "description": "To check if backup agent upgrade available" + }, + "isDpmUpgradeAvailable": { + "type": "boolean", + "description": "To check if backup engine upgrade available" + }, + "extendedInfo": { + "$ref": "#/definitions/BackupEngineExtendedInfo", + "description": "Extended info of the backupengine" } - } + }, + "discriminator": "backupEngineType", + "required": [ + "backupEngineType" + ] }, - "DailyRetentionFormat": { - "description": "Daily retention format.", + "BackupEngineBaseResource": { "type": "object", + "description": "The base backup engine class. All workload specific backup engines derive from this class.", "properties": { - "daysOfTheMonth": { - "description": "List of days of the month.", - "type": "array", - "items": { - "$ref": "#/definitions/Day" - }, - "x-ms-identifiers": [] + "properties": { + "$ref": "#/definitions/BackupEngineBase", + "description": "BackupEngineBaseResource properties" + }, + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "eTag": { + "type": "string", + "description": "Optional ETag." } - } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" + } + ] }, - "DailyRetentionSchedule": { - "description": "Daily retention schedule.", + "BackupEngineBaseResourceList": { "type": "object", + "description": "List of BackupEngineBase resources", "properties": { - "retentionTimes": { - "description": "Retention times of retention policy.", + "value": { "type": "array", + "description": "List of resources.", "items": { - "format": "date-time", - "type": "string" + "$ref": "#/definitions/BackupEngineBaseResource" } - }, - "retentionDuration": { - "$ref": "#/definitions/RetentionDuration", - "description": "Retention duration of retention Policy." } - } + }, + "allOf": [ + { + "$ref": "#/definitions/ResourceList" + } + ] }, - "Day": { - "description": "Day of the week.", + "BackupEngineExtendedInfo": { "type": "object", + "description": "Additional information on backup engine.", "properties": { - "date": { + "databaseName": { + "type": "string", + "description": "Database name of backup engine." + }, + "protectedItemsCount": { + "type": "integer", "format": "int32", - "description": "Date of the month", - "type": "integer" + "description": "Number of protected items in the backup engine." }, - "isLast": { - "description": "Whether Date is last date of month", - "type": "boolean" + "protectedServersCount": { + "type": "integer", + "format": "int32", + "description": "Number of protected servers in the backup engine." + }, + "diskCount": { + "type": "integer", + "format": "int32", + "description": "Number of disks in the backup engine." + }, + "usedDiskSpace": { + "type": "number", + "format": "double", + "description": "Disk space used in the backup engine." + }, + "availableDiskSpace": { + "type": "number", + "format": "double", + "description": "Disk space currently available in the backup engine." + }, + "refreshedAt": { + "type": "string", + "format": "date-time", + "description": "Last refresh time in the backup engine." + }, + "azureProtectedInstances": { + "type": "integer", + "format": "int32", + "description": "Protected instances in the backup engine." } } }, - "DpmErrorInfo": { - "description": "DPM workload-specific error information.", - "type": "object", - "properties": { - "errorString": { - "description": "Localized error string.", - "type": "string" - }, - "recommendations": { - "description": "List of localized recommendations for above error code.", - "type": "array", - "items": { - "type": "string" + "BackupEngineType": { + "type": "string", + "description": "Type of the backup engine.", + "enum": [ + "Invalid", + "DpmBackupEngine", + "AzureBackupServerEngine" + ], + "x-ms-enum": { + "name": "BackupEngineType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "DpmBackupEngine", + "value": "DpmBackupEngine" + }, + { + "name": "AzureBackupServerEngine", + "value": "AzureBackupServerEngine" } - } + ] } }, - "DpmJob": { - "description": "DPM workload-specific job object.", + "BackupFabricResource": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/Job" + "description": "Backup Fabric virtual resource.", + "properties": { + "name": { + "type": "string", + "description": "The name of the BackupFabricResource", + "readOnly": true } + }, + "required": [ + "name" + ] + }, + "BackupItemType": { + "type": "string", + "description": "Type of backup items associated with this container.", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare", + "SAPHanaDatabase", + "SAPAseDatabase", + "SAPHanaDBInstance" + ], + "x-ms-enum": { + "name": "BackupItemType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "VM", + "value": "VM" + }, + { + "name": "FileFolder", + "value": "FileFolder" + }, + { + "name": "AzureSqlDb", + "value": "AzureSqlDb" + }, + { + "name": "SQLDB", + "value": "SQLDB" + }, + { + "name": "Exchange", + "value": "Exchange" + }, + { + "name": "Sharepoint", + "value": "Sharepoint" + }, + { + "name": "VMwareVM", + "value": "VMwareVM" + }, + { + "name": "SystemState", + "value": "SystemState" + }, + { + "name": "Client", + "value": "Client" + }, + { + "name": "GenericDataSource", + "value": "GenericDataSource" + }, + { + "name": "SQLDataBase", + "value": "SQLDataBase" + }, + { + "name": "AzureFileShare", + "value": "AzureFileShare" + }, + { + "name": "SAPHanaDatabase", + "value": "SAPHanaDatabase" + }, + { + "name": "SAPAseDatabase", + "value": "SAPAseDatabase" + }, + { + "name": "SAPHanaDBInstance", + "value": "SAPHanaDBInstance" + } + ] + } + }, + "BackupManagementType": { + "type": "string", + "description": "Backup management type to execute the current job.", + "enum": [ + "Invalid", + "AzureIaasVM", + "MAB", + "DPM", + "AzureBackupServer", + "AzureSql", + "AzureStorage", + "AzureWorkload", + "DefaultBackup" ], + "x-ms-enum": { + "name": "BackupManagementType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "AzureIaasVM", + "value": "AzureIaasVM" + }, + { + "name": "MAB", + "value": "MAB" + }, + { + "name": "DPM", + "value": "DPM" + }, + { + "name": "AzureBackupServer", + "value": "AzureBackupServer" + }, + { + "name": "AzureSql", + "value": "AzureSql" + }, + { + "name": "AzureStorage", + "value": "AzureStorage" + }, + { + "name": "AzureWorkload", + "value": "AzureWorkload" + }, + { + "name": "DefaultBackup", + "value": "DefaultBackup" + } + ] + } + }, + "BackupManagementUsage": { + "type": "object", + "description": "Backup management usages of a vault.", "properties": { - "duration": { - "format": "duration", - "description": "Time elapsed for job.", - "type": "string" - }, - "dpmServerName": { - "description": "DPM server name managing the backup item or backup job.", - "type": "string" - }, - "containerName": { - "description": "Name of cluster/server protecting current backup item, if any.", - "type": "string" + "unit": { + "$ref": "#/definitions/UsagesUnit", + "description": "Unit of the usage." }, - "containerType": { - "description": "Type of container.", - "type": "string" + "quotaPeriod": { + "type": "string", + "description": "Quota period of usage." }, - "workloadType": { - "description": "Type of backup item.", - "type": "string" + "nextResetTime": { + "type": "string", + "format": "date-time", + "description": "Next reset time of usage." }, - "actionsInfo": { - "description": "The state/actions applicable on this job like cancel/retry.", - "type": "array", - "items": { - "enum": [ - "Invalid", - "Cancellable", - "Retriable" - ], - "type": "string", - "x-ms-enum": { - "name": "JobSupportedAction", - "modelAsString": false - } - } + "currentValue": { + "type": "integer", + "format": "int64", + "description": "Current value of usage." }, - "errorDetails": { - "description": "The errors.", + "limit": { + "type": "integer", + "format": "int64", + "description": "Limit of usage." + }, + "name": { + "$ref": "#/definitions/NameInfo", + "description": "Name of usage." + } + } + }, + "BackupManagementUsageList": { + "type": "object", + "description": "Backup management usage for vault.", + "properties": { + "value": { "type": "array", + "description": "The list of backup management usages for the given vault.", "items": { - "$ref": "#/definitions/DpmErrorInfo" + "$ref": "#/definitions/BackupManagementUsage" }, "x-ms-identifiers": [] - }, - "extendedInfo": { - "$ref": "#/definitions/DpmJobExtendedInfo", - "description": "Additional information for this job." } }, - "x-ms-discriminator-value": "DpmJob" - }, - "BackupResourceConfigResource": { - "description": "The resource storage details.", "allOf": [ { - "$ref": "#/definitions/Resource" + "$ref": "#/definitions/ResourceList" } - ], + ] + }, + "BackupRequest": { + "type": "object", + "description": "Base class for backup request. Workload-specific backup requests are derived from this class.", + "properties": { + "objectType": { + "type": "string", + "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types." + } + }, + "discriminator": "objectType", + "required": [ + "objectType" + ] + }, + "BackupRequestResource": { + "type": "object", + "description": "Base class for backup request. Workload-specific backup requests are derived from this class.", "properties": { + "location": { + "type": "string", + "description": "Resource location." + }, + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, "properties": { - "$ref": "#/definitions/BackupResourceConfig", - "description": "BackupResourceConfigResource properties" + "$ref": "#/definitions/BackupRequest", + "description": "BackupRequestResource properties" } - } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" + } + ] }, "BackupResourceConfig": { - "description": "The resource storage details.", "type": "object", + "description": "The resource storage details.", "properties": { "storageModelType": { - "description": "Storage type", - "enum": [ - "Invalid", - "GeoRedundant", - "LocallyRedundant", - "ZoneRedundant", - "ReadAccessGeoZoneRedundant" - ], - "type": "string", - "x-ms-enum": { - "name": "StorageType", - "modelAsString": true - } + "$ref": "#/definitions/StorageType", + "description": "Storage type" }, "storageType": { - "description": "Storage type.", - "enum": [ - "Invalid", - "GeoRedundant", - "LocallyRedundant", - "ZoneRedundant", - "ReadAccessGeoZoneRedundant" - ], - "type": "string", - "x-ms-enum": { - "name": "StorageType", - "modelAsString": true - } + "$ref": "#/definitions/StorageType", + "description": "Storage type." }, "storageTypeState": { - "description": "Locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked.", - "enum": [ - "Invalid", - "Locked", - "Unlocked" - ], - "type": "string", - "x-ms-enum": { - "name": "StorageTypeState", - "modelAsString": true - } + "$ref": "#/definitions/StorageTypeState", + "description": "Locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked." }, "crossRegionRestoreFlag": { - "description": "Opt in details of Cross Region Restore feature.", - "type": "boolean" + "type": "boolean", + "description": "Opt in details of Cross Region Restore feature." }, "dedupState": { - "description": "Vault Dedup state", - "enum": [ - "Invalid", - "Enabled", - "Disabled" - ], - "type": "string", - "x-ms-enum": { - "name": "dedupState", - "modelAsString": true - } + "$ref": "#/definitions/DedupState", + "description": "Vault Dedup state" }, "xcoolState": { - "description": "Vault x-cool state", - "enum": [ - "Invalid", - "Enabled", - "Disabled" - ], - "type": "string", - "x-ms-enum": { - "name": "xcoolState", - "modelAsString": true - } + "$ref": "#/definitions/XcoolState", + "description": "Vault x-cool state" } } }, - "DpmJobExtendedInfo": { - "description": "Additional information on the DPM workload-specific job.", + "BackupResourceConfigResource": { "type": "object", + "description": "The resource storage details.", "properties": { - "tasksList": { - "description": "List of tasks associated with this job.", - "type": "array", - "items": { - "$ref": "#/definitions/DpmJobTaskDetails" - }, - "x-ms-identifiers": [ - "taskId" - ] + "properties": { + "$ref": "#/definitions/BackupResourceConfig", + "description": "BackupResourceConfigResource properties" }, - "propertyBag": { - "description": "The job properties.", + "tags": { "type": "object", + "description": "Resource tags.", "additionalProperties": { "type": "string" } }, - "dynamicErrorMessage": { - "description": "Non localized error message on job execution.", - "type": "string" + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "eTag": { + "type": "string", + "description": "Optional ETag." } - } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" + } + ] }, - "DpmJobTaskDetails": { - "description": "DPM workload-specific job task details.", + "BackupResourceEncryptionConfig": { "type": "object", "properties": { - "taskId": { - "description": "The task display name.", - "type": "string" + "encryptionAtRestType": { + "$ref": "#/definitions/EncryptionAtRestType", + "description": "Encryption At Rest Type" }, - "startTime": { - "format": "date-time", - "description": "The start time.", - "type": "string" + "keyUri": { + "type": "string", + "description": "Key Vault Key URI" }, - "endTime": { - "format": "date-time", - "description": "The end time.", - "type": "string" + "subscriptionId": { + "type": "string", + "description": "Key Vault Subscription Id" }, - "duration": { - "format": "duration", - "description": "Time elapsed for task.", - "type": "string" + "lastUpdateStatus": { + "$ref": "#/definitions/LastUpdateStatus" }, - "status": { - "description": "The status.", - "type": "string" + "infrastructureEncryptionState": { + "$ref": "#/definitions/InfrastructureEncryptionState" } } }, - "DPMProtectedItem": { - "description": "Additional information on Backup engine specific backup item.", + "BackupResourceEncryptionConfigExtended": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ProtectedItem" - } - ], "properties": { - "friendlyName": { - "description": "Friendly name of the managed item", - "type": "string" - }, - "backupEngineName": { - "description": "Backup Management server protecting this backup item", - "type": "string" - }, - "protectionState": { - "description": "Protection state of the backup engine", - "enum": [ - "Invalid", - "IRPending", - "Protected", - "ProtectionError", - "ProtectionStopped", - "ProtectionPaused", - "BackupsSuspended" - ], - "type": "string", - "x-ms-enum": { - "name": "ProtectedItemState", - "modelAsString": true - } + "userAssignedIdentity": { + "type": "string", + "description": "User Assigned Identity Id" }, - "extendedInfo": { - "$ref": "#/definitions/DPMProtectedItemExtendedInfo", - "description": "Extended info of the backup item." + "useSystemAssignedIdentity": { + "type": "boolean", + "description": "bool to indicate whether to use system Assigned Identity or not" } }, - "x-ms-discriminator-value": "DPMProtectedItem" + "allOf": [ + { + "$ref": "#/definitions/BackupResourceEncryptionConfig" + } + ] }, - "DPMProtectedItemExtendedInfo": { - "description": "Additional information of DPM Protected item.", + "BackupResourceEncryptionConfigExtendedResource": { "type": "object", + "description": "", "properties": { - "protectableObjectLoadPath": { - "description": "Attribute to provide information on various DBs.", + "properties": { + "$ref": "#/definitions/BackupResourceEncryptionConfigExtended", + "description": "BackupResourceEncryptionConfigExtendedResource properties" + }, + "tags": { "type": "object", + "description": "Resource tags.", "additionalProperties": { "type": "string" } }, - "protected": { - "description": "To check if backup item is disk protected.", - "type": "boolean" - }, - "isPresentOnCloud": { - "description": "To check if backup item is cloud protected.", - "type": "boolean" - }, - "lastBackupStatus": { - "description": "Last backup status information on backup item.", - "type": "string" - }, - "lastRefreshedAt": { - "format": "date-time", - "description": "Last refresh time on backup item.", - "type": "string" - }, - "oldestRecoveryPoint": { - "format": "date-time", - "description": "Oldest cloud recovery point time.", - "type": "string" - }, - "recoveryPointCount": { - "format": "int32", - "description": "cloud recovery point count.", - "type": "integer" - }, - "onPremiseOldestRecoveryPoint": { - "format": "date-time", - "description": "Oldest disk recovery point time.", - "type": "string" - }, - "onPremiseLatestRecoveryPoint": { - "format": "date-time", - "description": "latest disk recovery point time.", - "type": "string" - }, - "onPremiseRecoveryPointCount": { - "format": "int32", - "description": "disk recovery point count.", - "type": "integer" - }, - "isCollocated": { - "description": "To check if backup item is collocated.", - "type": "boolean" - }, - "protectionGroupName": { - "description": "Protection group name of the backup item.", - "type": "string" - }, - "diskStorageUsedInBytes": { - "description": "Used Disk storage in bytes.", - "type": "string" + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] }, - "totalDiskStorageSizeInBytes": { - "description": "total Disk storage in bytes.", - "type": "string" + "eTag": { + "type": "string", + "description": "Optional ETag." } - } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" + } + ] }, - "EncryptionDetails": { - "description": "Details needed if the VM was encrypted at the time of backup.", + "BackupResourceEncryptionConfigResource": { "type": "object", + "description": "", "properties": { - "encryptionEnabled": { - "description": "Identifies whether this backup copy represents an encrypted VM at the time of backup.", - "type": "boolean" - }, - "kekUrl": { - "description": "Key Url.", - "type": "string" + "properties": { + "$ref": "#/definitions/BackupResourceEncryptionConfig", + "description": "BackupResourceEncryptionConfigResource properties" }, - "secretKeyUrl": { - "description": "Secret Url.", - "type": "string" + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } }, - "kekVaultId": { - "description": "ID of Key Vault where KEK is stored.", - "type": "string" + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] }, - "secretKeyVaultId": { - "description": "ID of Key Vault where Secret is stored.", - "type": "string" + "eTag": { + "type": "string", + "description": "Optional ETag." + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" } - } + ] }, - "ErrorDetail": { - "description": "Error Detail class which encapsulates Code, Message and Recommendations.", + "BackupResourceVaultConfig": { "type": "object", + "description": "Backup resource vault config details.", "properties": { - "code": { - "description": "Error code.", - "type": "string", - "readOnly": true + "storageModelType": { + "$ref": "#/definitions/StorageType", + "description": "Storage type." }, - "message": { - "description": "Error Message related to the Code.", - "type": "string", - "readOnly": true + "storageType": { + "$ref": "#/definitions/StorageType", + "description": "Storage type." }, - "recommendations": { - "description": "List of recommendation strings.", + "storageTypeState": { + "$ref": "#/definitions/StorageTypeState", + "description": "Locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked." + }, + "enhancedSecurityState": { + "$ref": "#/definitions/EnhancedSecurityState", + "description": "Enabled or Disabled." + }, + "softDeleteFeatureState": { + "$ref": "#/definitions/SoftDeleteFeatureState", + "description": "Soft Delete feature state" + }, + "softDeleteRetentionPeriodInDays": { + "type": "integer", + "format": "int32", + "description": "Soft delete retention period in days" + }, + "resourceGuardOperationRequests": { "type": "array", + "description": "ResourceGuard Operation Requests", "items": { "type": "string" - }, - "readOnly": true + } + }, + "isSoftDeleteFeatureStateEditable": { + "type": "boolean", + "description": "This flag is no longer in use. Please use 'softDeleteFeatureState' to set the soft delete state for the vault" } } }, - "ExportJobsOperationResultInfo": { - "description": "This class is used to send blob details after exporting jobs.", + "BackupResourceVaultConfigResource": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/OperationResultInfoBase" - } - ], + "description": "Backup resource vault config details.", "properties": { - "blobUrl": { - "description": "URL of the blob into which the serialized string of list of jobs is exported.", - "type": "string" + "properties": { + "$ref": "#/definitions/BackupResourceVaultConfig", + "description": "BackupResourceVaultConfigResource properties" }, - "blobSasKey": { - "description": "SAS key to access the blob. It expires in 15 mins.", - "type": "string" + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } }, - "excelFileBlobUrl": { - "description": "URL of the blob into which the ExcelFile is uploaded.", - "type": "string" + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] }, - "excelFileBlobSasKey": { - "description": "SAS key to access the blob. It expires in 15 mins.", - "type": "string" + "eTag": { + "type": "string", + "description": "Optional ETag." } }, - "x-ms-discriminator-value": "ExportJobsOperationResultInfo" + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" + } + ] }, - "ExtendedProperties": { - "description": "Extended Properties for Azure IaasVM Backup.", + "BackupStatusRequest": { "type": "object", + "description": "BackupStatus request.", "properties": { - "diskExclusionProperties": { - "$ref": "#/definitions/DiskExclusionProperties", - "description": "Extended Properties for Disk Exclusion." + "resourceType": { + "$ref": "#/definitions/DataSourceType", + "description": "Container Type - VM, SQLPaaS, DPM, AzureFileShare..." }, - "linuxVmApplicationName": { - "description": "Linux VM name", - "type": "string" + "resourceId": { + "type": "string", + "description": "Entire ARM resource id of the resource" + }, + "poLogicalName": { + "type": "string", + "description": "Protectable Item Logical Name" } } }, - "GenericProtectionPolicy": { - "description": "Azure VM (Mercury) workload-specific backup policy.", + "BackupStatusResponse": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ProtectionPolicy" - } - ], + "description": "BackupStatus response.", "properties": { - "subProtectionPolicy": { - "description": "List of sub-protection policies which includes schedule and retention", - "type": "array", - "items": { - "$ref": "#/definitions/SubProtectionPolicy" - }, - "x-ms-identifiers": [] + "protectionStatus": { + "$ref": "#/definitions/ProtectionStatus", + "description": "Specifies whether the container is registered or not" }, - "timeZone": { - "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\".", - "type": "string" + "vaultId": { + "type": "string", + "description": "Specifies the arm resource id of the vault" }, "fabricName": { - "description": "Name of this policy's fabric.", - "type": "string" + "$ref": "#/definitions/FabricName", + "description": "Specifies the fabric name - Azure or AD" + }, + "containerName": { + "type": "string", + "description": "Specifies the product specific container name. E.g. iaasvmcontainer;iaasvmcontainer;csname;vmname." + }, + "protectedItemName": { + "type": "string", + "description": "Specifies the product specific ds name. E.g. vm;iaasvmcontainer;csname;vmname." + }, + "errorCode": { + "type": "string", + "description": "ErrorCode in case of intent failed" + }, + "errorMessage": { + "type": "string", + "description": "ErrorMessage in case of intent failed." + }, + "policyName": { + "type": "string", + "description": "Specifies the policy name which is used for protection" + }, + "registrationStatus": { + "type": "string", + "description": "Container registration status" + }, + "protectedItemsCount": { + "type": "integer", + "format": "int32", + "description": "Number of protected items" + }, + "acquireStorageAccountLock": { + "$ref": "#/definitions/AcquireStorageAccountLock", + "description": "Specifies whether the storage account lock has been acquired or not" } - }, - "x-ms-discriminator-value": "GenericProtectionPolicy" + } }, - "HourlySchedule": { + "BackupType": { + "type": "string", + "description": "Type of backup, viz. Full, Differential, Log or CopyOnlyFull", + "enum": [ + "Invalid", + "Full", + "Differential", + "Log", + "CopyOnlyFull", + "Incremental", + "SnapshotFull", + "SnapshotCopyOnlyFull" + ], + "x-ms-enum": { + "name": "BackupType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Full", + "value": "Full" + }, + { + "name": "Differential", + "value": "Differential" + }, + { + "name": "Log", + "value": "Log" + }, + { + "name": "CopyOnlyFull", + "value": "CopyOnlyFull" + }, + { + "name": "Incremental", + "value": "Incremental" + }, + { + "name": "SnapshotFull", + "value": "SnapshotFull" + }, + { + "name": "SnapshotCopyOnlyFull", + "value": "SnapshotCopyOnlyFull" + } + ] + } + }, + "BmspoQueryObject": { "type": "object", + "description": "Filters to list items that can be backed up.", "properties": { - "interval": { - "format": "int32", - "description": "Interval at which backup needs to be triggered. For hourly the value\r\n can be 4/6/8/12", - "type": "integer" + "backupManagementType": { + "$ref": "#/definitions/BackupManagementType", + "description": "Backup management type." }, - "scheduleWindowStartTime": { - "format": "date-time", - "description": "To specify start time of the backup window", - "type": "string" + "workloadType": { + "$ref": "#/definitions/WorkloadType", + "description": "Workload type" }, - "scheduleWindowDuration": { - "format": "int32", - "description": "To specify duration of the backup window", - "type": "integer" + "containerName": { + "type": "string", + "description": "Full name of the container whose Protectable Objects should be returned." + }, + "status": { + "type": "string", + "description": "Backup status query parameter." + }, + "friendlyName": { + "type": "string", + "description": "Friendly name." } } }, - "DailySchedule": { + "BmsrpQueryObject": { "type": "object", + "description": "Filters to list backup copies.", "properties": { - "scheduleRunTimes": { - "description": "List of times of day this schedule has to be run.", - "type": "array", - "items": { - "format": "date-time", - "type": "string" - } + "startDate": { + "type": "string", + "format": "date-time", + "description": "Backup copies created after this time." + }, + "endDate": { + "type": "string", + "format": "date-time", + "description": "Backup copies created before this time." + }, + "restorePointQueryType": { + "$ref": "#/definitions/RestorePointQueryType", + "description": "RestorePoint type" + }, + "extendedInfo": { + "type": "boolean", + "description": "In Get Recovery Point, it tells whether extended information about recovery point is asked." + }, + "moveReadyRPOnly": { + "type": "boolean", + "description": "Whether the RP can be moved to another tier" + }, + "includeSoftDeletedRP": { + "type": "boolean", + "description": "Flag to indicate whether Soft Deleted RPs should be included/excluded from result." } } }, - "WeeklySchedule": { + "ClientDiscoveryDisplay": { "type": "object", + "description": "Localized display information of an operation.", "properties": { - "scheduleRunDays": { - "type": "array", - "items": { - "enum": [ - "Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday" - ], - "type": "string", - "x-ms-enum": { - "name": "DayOfWeek", - "modelAsString": false - } - } + "provider": { + "type": "string", + "description": "Name of the provider for display purposes" }, - "scheduleRunTimes": { - "description": "List of times of day this schedule has to be run.", - "type": "array", - "items": { - "format": "date-time", - "type": "string" - } + "resource": { + "type": "string", + "description": "ResourceType for which this Operation can be performed." + }, + "operation": { + "type": "string", + "description": "Operations Name itself." + }, + "description": { + "type": "string", + "description": "Description of the operation having details of what operation is about." } } }, - "IdentityBasedRestoreDetails": { - "description": "IaaS VM workload specific restore details for restores using managed identity", + "ClientDiscoveryForLogSpecification": { "type": "object", + "description": "Class to represent shoebox log specification in json client discovery.", "properties": { - "objectType": { - "description": "Gets the class type.", - "type": "string" + "name": { + "type": "string", + "description": "Name for shoebox log specification." }, - "targetStorageAccountId": { - "description": "Fully qualified ARM ID of the target storage account.", - "type": "string" + "displayName": { + "type": "string", + "description": "Localized display name" + }, + "blobDuration": { + "type": "string", + "description": "blob duration of shoebox log specification" } } }, - "IdentityInfo": { - "description": "Encapsulates Managed Identity related information", + "ClientDiscoveryForProperties": { "type": "object", + "description": "Class to represent shoebox properties in json client discovery.", "properties": { - "isSystemAssignedIdentity": { - "description": "To differentiate if the managed identity is system assigned or user assigned", - "type": "boolean" - }, - "managedIdentityResourceId": { - "description": "Managed Identity Resource Id\r\nOptional: Might not be required in the case of system assigned managed identity", - "type": "string" + "serviceSpecification": { + "$ref": "#/definitions/ClientDiscoveryForServiceSpecification", + "description": "Operation properties." + } + } + }, + "ClientDiscoveryForServiceSpecification": { + "type": "object", + "description": "Class to represent shoebox service specification in json client discovery.", + "properties": { + "logSpecifications": { + "type": "array", + "description": "List of log specifications of this operation.", + "items": { + "$ref": "#/definitions/ClientDiscoveryForLogSpecification" + }, + "x-ms-identifiers": [] } } }, - "InstantRPAdditionalDetails": { + "ClientDiscoveryResponse": { "type": "object", + "description": "Operations List response which contains list of available APIs.", "properties": { - "azureBackupRGNamePrefix": { - "type": "string" + "value": { + "type": "array", + "description": "List of available operations.", + "items": { + "$ref": "#/definitions/ClientDiscoveryValueForSingleApi" + }, + "x-ms-identifiers": [] }, - "azureBackupRGNameSuffix": { - "type": "string" + "nextLink": { + "type": "string", + "description": "Link to the next chunk of Response." } } }, - "GenericProtectedItem": { - "description": "Base class for backup items.", + "ClientDiscoveryValueForSingleApi": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ProtectedItem" - } - ], + "description": "Available operation details.", "properties": { - "friendlyName": { - "description": "Friendly name of the container.", - "type": "string" - }, - "policyState": { - "description": "Indicates consistency of policy object and policy applied to this backup item.", - "type": "string" - }, - "protectionState": { - "description": "Backup state of this backup item.", - "enum": [ - "Invalid", - "IRPending", - "Protected", - "ProtectionError", - "ProtectionStopped", - "ProtectionPaused", - "BackupsSuspended" - ], - "type": "string", - "x-ms-enum": { - "name": "ProtectionState", - "modelAsString": true - } + "name": { + "type": "string", + "description": "Name of the Operation." }, - "protectedItemId": { - "format": "int64", - "description": "Data Plane Service ID of the protected item.", - "type": "integer" + "display": { + "$ref": "#/definitions/ClientDiscoveryDisplay", + "description": "Contains the localized display information for this particular operation" }, - "sourceAssociations": { - "description": "Loosely coupled (type, value) associations (example - parent of a protected item)", - "type": "object", - "additionalProperties": { - "type": "string" - } + "origin": { + "type": "string", + "description": "The intended executor of the operation;governs the display of the operation in the RBAC UX and the audit logs UX" }, - "fabricName": { - "description": "Name of this backup item's fabric.", - "type": "string" + "properties": { + "$ref": "#/definitions/ClientDiscoveryForProperties", + "description": "ShoeBox properties for the given operation." } - }, - "x-ms-discriminator-value": "GenericProtectedItem" + } }, - "GenericRecoveryPoint": { - "description": "Generic backup copy.", + "ClientScriptForConnect": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/RecoveryPoint" - } - ], + "description": "Client script details for file / folder restore.", "properties": { - "friendlyName": { - "description": "Friendly name of the backup copy.", - "type": "string" + "scriptContent": { + "type": "string", + "description": "File content of the client script for file / folder restore." }, - "recoveryPointType": { - "description": "Type of the backup copy.", - "type": "string" + "scriptExtension": { + "type": "string", + "description": "File extension of the client script for file / folder restore - .ps1 , .sh , etc." }, - "recoveryPointTime": { - "format": "date-time", - "description": "Time at which this backup copy was created.", - "type": "string" + "osType": { + "type": "string", + "description": "OS type - Windows, Linux etc. for which this file / folder restore client script works." }, - "recoveryPointAdditionalInfo": { - "description": "Additional information associated with this backup copy.", - "type": "string" + "url": { + "type": "string", + "description": "URL of Executable from where to source the content. If this is not null then ScriptContent should not be used" }, - "recoveryPointProperties": { - "description": "Properties of Recovery Point", - "$ref": "#/definitions/RecoveryPointProperties" + "scriptNameSuffix": { + "type": "string", + "description": "Mandatory suffix that should be added to the name of script that is given for download to user.\nIf its null or empty then , ignore it." } - }, - "x-ms-discriminator-value": "GenericRecoveryPoint" + } }, - "GetProtectedItemQueryObject": { - "description": "Filters to list backup items.", + "CloudError": { "type": "object", + "description": "An error response from the Container Instance service.", "properties": { - "expand": { - "description": "Specifies if the additional information should be provided for this item.", - "type": "string" + "error": { + "$ref": "#/definitions/CloudErrorBody", + "description": "The error object." } } }, - "IaasVMRecoveryPoint": { - "description": "IaaS VM workload specific backup copy.", + "CloudErrorBody": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/RecoveryPoint" - } - ], + "description": "An error response from the Container Instance service.", "properties": { - "recoveryPointType": { - "description": "Type of the backup copy.", - "type": "string" - }, - "recoveryPointTime": { - "format": "date-time", - "description": "Time at which this backup copy was created.", - "type": "string" - }, - "recoveryPointAdditionalInfo": { - "description": "Additional information associated with this backup copy.", - "type": "string" - }, - "sourceVMStorageType": { - "description": "Storage type of the VM whose backup copy is created.", - "type": "string" - }, - "isSourceVMEncrypted": { - "description": "Identifies whether the VM was encrypted when the backup copy is created.", - "type": "boolean" + "code": { + "type": "string", + "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically.", + "readOnly": true }, - "keyAndSecret": { - "$ref": "#/definitions/KeyAndSecretDetails", - "description": "Required details for recovering an encrypted VM. Applicable only when IsSourceVMEncrypted is true." + "message": { + "type": "string", + "description": "A message describing the error, intended to be suitable for display in a user interface.", + "readOnly": true }, - "isInstantIlrSessionActive": { - "description": "Is the session to recover items from this backup copy still active.", - "type": "boolean" + "target": { + "type": "string", + "description": "The target of the particular error. For example, the name of the property in error.", + "readOnly": true }, - "recoveryPointTierDetails": { - "description": "Recovery point tier information.", + "details": { "type": "array", + "description": "A list of additional details about the error.", "items": { - "$ref": "#/definitions/RecoveryPointTierInformationV2" + "$ref": "#/definitions/CloudErrorBody" }, - "x-ms-identifiers": [] - }, - "isManagedVirtualMachine": { - "description": "Whether VM is with Managed Disks", - "type": "boolean" - }, - "virtualMachineSize": { - "description": "Virtual Machine Size", - "type": "string" - }, - "originalStorageAccountOption": { - "description": "Original Storage Account Option", - "type": "boolean" - }, - "osType": { - "description": "OS type", - "type": "string" - }, - "recoveryPointDiskConfiguration": { - "$ref": "#/definitions/RecoveryPointDiskConfiguration", - "description": "Disk configuration" + "readOnly": true, + "x-ms-identifiers": [ + "code" + ] }, - "zones": { - "description": "Identifies the zone of the VM at the time of backup. Applicable only for zone-pinned Vms", + "additionalInfo": { "type": "array", + "description": "The error additional info.", "items": { - "type": "string" - } - }, - "recoveryPointMoveReadinessInfo": { - "description": "Eligibility of RP to be moved to another tier", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/RecoveryPointMoveReadinessInfo" - } - }, - "securityType": { - "description": "Security Type of the Disk", - "type": "string" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorAdditionalInfo" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + } + }, + "ContainerIdentityInfo": { + "type": "object", + "description": "Container identity information", + "properties": { + "uniqueName": { + "type": "string", + "description": "Unique name of the container" }, - "recoveryPointProperties": { - "description": "Properties of Recovery Point", - "$ref": "#/definitions/RecoveryPointProperties" + "aadTenantId": { + "type": "string", + "description": "Protection container identity - AAD Tenant" }, - "isPrivateAccessEnabledOnAnyDisk": { - "description": "This flag denotes if any of the disks in the VM are using Private access network setting", - "type": "boolean" + "servicePrincipalClientId": { + "type": "string", + "description": "Protection container identity - AAD Service Principal" }, - "extendedLocation": { - "$ref": "#/definitions/ExtendedLocation", - "description": "Extended location of the VM recovery point,\r\nshould be null if VM is in public cloud" + "audience": { + "type": "string", + "description": "Protection container identity - Audience" } - }, - "x-ms-discriminator-value": "IaasVMRecoveryPoint" + } + }, + "ContainerType": { + "type": "string", + "description": "Type of container for filter", + "enum": [ + "Invalid", + "Unknown", + "IaasVMContainer", + "IaasVMServiceContainer", + "DPMContainer", + "AzureBackupServerContainer", + "MABContainer", + "Cluster", + "AzureSqlContainer", + "Windows", + "VCenter", + "VMAppContainer", + "SQLAGWorkLoadContainer", + "StorageContainer", + "GenericContainer", + "HanaHSRContainer" + ], + "x-ms-enum": { + "name": "ContainerType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Unknown", + "value": "Unknown" + }, + { + "name": "IaasVMContainer", + "value": "IaasVMContainer" + }, + { + "name": "IaasVMServiceContainer", + "value": "IaasVMServiceContainer" + }, + { + "name": "DPMContainer", + "value": "DPMContainer" + }, + { + "name": "AzureBackupServerContainer", + "value": "AzureBackupServerContainer" + }, + { + "name": "MABContainer", + "value": "MABContainer" + }, + { + "name": "Cluster", + "value": "Cluster" + }, + { + "name": "AzureSqlContainer", + "value": "AzureSqlContainer" + }, + { + "name": "Windows", + "value": "Windows" + }, + { + "name": "VCenter", + "value": "VCenter" + }, + { + "name": "VMAppContainer", + "value": "VMAppContainer" + }, + { + "name": "SQLAGWorkLoadContainer", + "value": "SQLAGWorkLoadContainer" + }, + { + "name": "StorageContainer", + "value": "StorageContainer" + }, + { + "name": "GenericContainer", + "value": "GenericContainer" + }, + { + "name": "HanaHSRContainer", + "value": "HanaHSRContainer" + } + ] + } + }, + "CopyOptions": { + "type": "string", + "description": "Options to resolve copy conflicts.", + "enum": [ + "Invalid", + "CreateCopy", + "Skip", + "Overwrite", + "FailOnConflict" + ], + "x-ms-enum": { + "name": "CopyOptions", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "CreateCopy", + "value": "CreateCopy" + }, + { + "name": "Skip", + "value": "Skip" + }, + { + "name": "Overwrite", + "value": "Overwrite" + }, + { + "name": "FailOnConflict", + "value": "FailOnConflict" + } + ] + } }, - "ExtendedLocation": { - "description": "The extended location of Recovery point where VM was present.", - "type": "object", - "properties": { - "name": { - "description": "Name of the extended location.", - "type": "string" - }, - "type": { - "description": "Type of the extended location. Possible values include: 'EdgeZone'", - "type": "string" - } + "CreateMode": { + "type": "string", + "description": "Create mode to indicate recovery of existing soft deleted data source or creation of new data source.", + "enum": [ + "Invalid", + "Default", + "Recover" + ], + "x-ms-enum": { + "name": "CreateMode", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Default", + "value": "Default" + }, + { + "name": "Recover", + "value": "Recover" + } + ] } }, - "SecuredVMDetails": { - "description": "Restore request parameters for Secured VMs", + "DPMContainerExtendedInfo": { "type": "object", + "description": "Additional information of the DPMContainer.", "properties": { - "securedVMOsDiskEncryptionSetId": { - "description": "Gets or Sets Disk Encryption Set Id for Secured VM OS Disk", - "type": "string" + "lastRefreshedAt": { + "type": "string", + "format": "date-time", + "description": "Last refresh time of the DPMContainer." } } }, - "TargetDiskNetworkAccessSettings": { - "description": "Specifies target network access settings for disks of VM to be restored.", + "DPMProtectedItem": { "type": "object", + "description": "Additional information on Backup engine specific backup item.", "properties": { - "targetDiskNetworkAccessOption": { - "description": "Network access settings to be used for restored disks", - "enum": [ - "SameAsOnSourceDisks", - "EnablePrivateAccessForAllDisks", - "EnablePublicAccessForAllDisks" - ], + "friendlyName": { "type": "string", - "x-ms-enum": { - "name": "TargetDiskNetworkAccessOption" - } + "description": "Friendly name of the managed item" }, - "targetDiskAccessId": { - "description": "Gets or sets the ARM resource ID of the target disk access to be used when TargetDiskNetworkAccessOption is set to TargetDiskNetworkAccessOption.UseNew", - "type": "string" + "backupEngineName": { + "type": "string", + "description": "Backup Management server protecting this backup item" + }, + "protectionState": { + "$ref": "#/definitions/ProtectedItemState", + "description": "Protection state of the backup engine" + }, + "extendedInfo": { + "$ref": "#/definitions/DPMProtectedItemExtendedInfo", + "description": "Extended info of the backup item." } - } - }, - "IaasVMRestoreRequest": { - "description": "IaaS VM workload-specific restore.", - "type": "object", + }, "allOf": [ { - "$ref": "#/definitions/RestoreRequest" + "$ref": "#/definitions/ProtectedItem" } ], + "x-ms-discriminator-value": "DPMProtectedItem" + }, + "DPMProtectedItemExtendedInfo": { + "type": "object", + "description": "Additional information of DPM Protected item.", "properties": { - "recoveryPointId": { - "description": "ID of the backup copy to be recovered.", - "type": "string" - }, - "recoveryType": { - "description": "Type of this recovery.", - "enum": [ - "Invalid", - "OriginalLocation", - "AlternateLocation", - "RestoreDisks", - "Offline" - ], - "type": "string", - "x-ms-enum": { - "name": "RecoveryType", - "modelAsString": true + "protectableObjectLoadPath": { + "type": "object", + "description": "Attribute to provide information on various DBs.", + "additionalProperties": { + "type": "string" } }, - "sourceResourceId": { - "description": "Fully qualified ARM ID of the VM which is being recovered.", - "type": "string" + "protected": { + "type": "boolean", + "description": "To check if backup item is disk protected." }, - "targetVirtualMachineId": { - "description": "This is the complete ARM Id of the VM that will be created.\r\nFor e.g. /subscriptions/{subId}/resourcegroups/{rg}/provider/Microsoft.Compute/virtualmachines/{vm}", - "type": "string" + "isPresentOnCloud": { + "type": "boolean", + "description": "To check if backup item is cloud protected." }, - "targetResourceGroupId": { - "description": "This is the ARM Id of the resource group that you want to create for this Virtual machine and other artifacts.\r\nFor e.g. /subscriptions/{subId}/resourcegroups/{rg}", - "type": "string" + "lastBackupStatus": { + "type": "string", + "description": "Last backup status information on backup item." }, - "storageAccountId": { - "description": "Fully qualified ARM ID of the storage account to which the VM has to be restored.", - "type": "string" + "lastRefreshedAt": { + "type": "string", + "format": "date-time", + "description": "Last refresh time on backup item." }, - "virtualNetworkId": { - "description": "This is the virtual network Id of the vnet that will be attached to the virtual machine.\r\nUser will be validated for join action permissions in the linked access.", - "type": "string" + "oldestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "Oldest cloud recovery point time." }, - "subnetId": { - "description": "Subnet ID, is the subnet ID associated with the to be restored VM. For Classic VMs it would be\r\n{VnetID}/Subnet/{SubnetName} and, for the Azure Resource Manager VMs it would be ARM resource ID used to represent\r\nthe subnet.", - "type": "string" + "recoveryPointCount": { + "type": "integer", + "format": "int32", + "description": "cloud recovery point count." }, - "targetDomainNameId": { - "description": "Fully qualified ARM ID of the domain name to be associated to the VM being restored. This applies only to Classic\r\nVirtual Machines.", - "type": "string" + "onPremiseOldestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "Oldest disk recovery point time." }, - "region": { - "description": "Region in which the virtual machine is restored.", - "type": "string" + "onPremiseLatestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "latest disk recovery point time." }, - "affinityGroup": { - "description": "Affinity group associated to VM to be restored. Used only for Classic Compute Virtual Machines.", - "type": "string" + "onPremiseRecoveryPointCount": { + "type": "integer", + "format": "int32", + "description": "disk recovery point count." }, - "createNewCloudService": { - "description": "Should a new cloud service be created while restoring the VM. If this is false, VM will be restored to the same\r\ncloud service as it was at the time of backup.", - "type": "boolean" + "isCollocated": { + "type": "boolean", + "description": "To check if backup item is collocated." }, - "originalStorageAccountOption": { - "description": "Original Storage Account Option", - "type": "boolean" + "protectionGroupName": { + "type": "string", + "description": "Protection group name of the backup item." }, - "encryptionDetails": { - "$ref": "#/definitions/EncryptionDetails", - "description": "Details needed if the VM was encrypted at the time of backup." + "diskStorageUsedInBytes": { + "type": "string", + "description": "Used Disk storage in bytes." }, - "restoreDiskLunList": { - "description": "List of Disk LUNs for partial restore", + "totalDiskStorageSizeInBytes": { + "type": "string", + "description": "total Disk storage in bytes." + } + } + }, + "DailyRetentionFormat": { + "type": "object", + "description": "Daily retention format.", + "properties": { + "daysOfTheMonth": { "type": "array", + "description": "List of days of the month.", "items": { - "format": "int32", - "type": "integer" - } - }, - "restoreWithManagedDisks": { - "description": "Flag to denote of an Unmanaged disk VM should be restored with Managed disks.", - "type": "boolean" - }, - "diskEncryptionSetId": { - "description": "DiskEncryptionSet's ID - needed if the VM needs to be encrypted at rest during restore with customer managed key.", - "type": "string" - }, - "zones": { - "description": "Target zone where the VM and its disks should be restored.", + "$ref": "#/definitions/Day" + }, + "x-ms-identifiers": [] + } + } + }, + "DailyRetentionSchedule": { + "type": "object", + "description": "Daily retention schedule.", + "properties": { + "retentionTimes": { "type": "array", + "description": "Retention times of retention policy.", "items": { - "type": "string" + "type": "string", + "format": "date-time" } }, - "identityInfo": { - "$ref": "#/definitions/IdentityInfo", - "description": "Managed Identity information required to access customer storage account." - }, - "identityBasedRestoreDetails": { - "$ref": "#/definitions/IdentityBasedRestoreDetails", - "description": "IaaS VM workload specific restore details for restores using managed identity." - }, - "extendedLocation": { - "$ref": "#/definitions/ExtendedLocation", - "description": "Target extended location where the VM should be restored,\r\nshould be null if restore is to be done in public cloud" - }, - "securedVMDetails": { - "$ref": "#/definitions/SecuredVMDetails", - "description": "Stores Secured VM Details" - }, - "targetDiskNetworkAccessSettings": { - "$ref": "#/definitions/TargetDiskNetworkAccessSettings", - "description": "Specifies target network access settings for disks of VM to be restored," + "retentionDuration": { + "$ref": "#/definitions/RetentionDuration", + "description": "Retention duration of retention Policy." } - }, - "x-ms-discriminator-value": "IaasVMRestoreRequest" + } }, - "Job": { - "description": "Defines workload agnostic properties for a job.", - "required": [ - "jobType" - ], + "DailySchedule": { "type": "object", "properties": { - "entityFriendlyName": { - "description": "Friendly name of the entity on which the current job is executing.", - "type": "string" - }, - "backupManagementType": { - "description": "Backup management type to execute the current job.", - "enum": [ - "Invalid", - "AzureIaasVM", - "MAB", - "DPM", - "AzureBackupServer", - "AzureSql", - "AzureStorage", - "AzureWorkload", - "DefaultBackup" - ], - "type": "string", - "x-ms-enum": { - "name": "BackupManagementType", - "modelAsString": true + "scheduleRunTimes": { + "type": "array", + "description": "List of times of day this schedule has to be run.", + "items": { + "type": "string", + "format": "date-time" } - }, - "operation": { - "description": "The operation name.", - "type": "string" - }, - "status": { - "description": "Job status.", - "type": "string" - }, - "startTime": { - "format": "date-time", - "description": "The start time.", - "type": "string" - }, - "endTime": { - "format": "date-time", - "description": "The end time.", - "type": "string" - }, - "activityId": { - "description": "ActivityId of job.", - "type": "string" - }, - "jobType": { - "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.", - "type": "string" } - }, - "discriminator": "jobType" + } + }, + "DataMoveLevel": { + "type": "string", + "description": "DataMove Level", + "enum": [ + "Invalid", + "Vault", + "Container" + ], + "x-ms-enum": { + "name": "DataMoveLevel", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Vault", + "value": "Vault" + }, + { + "name": "Container", + "value": "Container" + } + ] + } + }, + "DataSourceType": { + "type": "string", + "description": "Type of workload this item represents.", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare", + "SAPHanaDatabase", + "SAPAseDatabase", + "SAPHanaDBInstance" + ], + "x-ms-enum": { + "name": "DataSourceType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "VM", + "value": "VM" + }, + { + "name": "FileFolder", + "value": "FileFolder" + }, + { + "name": "AzureSqlDb", + "value": "AzureSqlDb" + }, + { + "name": "SQLDB", + "value": "SQLDB" + }, + { + "name": "Exchange", + "value": "Exchange" + }, + { + "name": "Sharepoint", + "value": "Sharepoint" + }, + { + "name": "VMwareVM", + "value": "VMwareVM" + }, + { + "name": "SystemState", + "value": "SystemState" + }, + { + "name": "Client", + "value": "Client" + }, + { + "name": "GenericDataSource", + "value": "GenericDataSource" + }, + { + "name": "SQLDataBase", + "value": "SQLDataBase" + }, + { + "name": "AzureFileShare", + "value": "AzureFileShare" + }, + { + "name": "SAPHanaDatabase", + "value": "SAPHanaDatabase" + }, + { + "name": "SAPAseDatabase", + "value": "SAPAseDatabase" + }, + { + "name": "SAPHanaDBInstance", + "value": "SAPHanaDBInstance" + } + ] + } }, - "JobQueryObject": { - "description": "Filters to list the jobs.", + "Day": { "type": "object", + "description": "Day of the week.", "properties": { - "status": { - "description": "Status of the job.", - "enum": [ - "Invalid", - "InProgress", - "Completed", - "Failed", - "CompletedWithWarnings", - "Cancelled", - "Cancelling" - ], - "type": "string", - "x-ms-enum": { - "name": "JobStatus", - "modelAsString": true - } - }, - "backupManagementType": { - "description": "Type of backup management for the job.", - "enum": [ - "Invalid", - "AzureIaasVM", - "MAB", - "DPM", - "AzureBackupServer", - "AzureSql", - "AzureStorage", - "AzureWorkload", - "DefaultBackup" - ], - "type": "string", - "x-ms-enum": { - "name": "BackupManagementType", - "modelAsString": true - } - }, - "operation": { - "description": "Type of operation.", - "enum": [ - "Invalid", - "Register", - "UnRegister", - "ConfigureBackup", - "Backup", - "Restore", - "DisableBackup", - "DeleteBackupData", - "CrossRegionRestore", - "Undelete", - "UpdateCustomerManagedKey" - ], - "type": "string", - "x-ms-enum": { - "name": "JobOperationType", - "modelAsString": true - } - }, - "jobId": { - "description": "JobID represents the job uniquely.", - "type": "string" - }, - "startTime": { - "format": "date-time", - "description": "Job has started at this time. Value is in UTC.", - "type": "string" + "date": { + "type": "integer", + "format": "int32", + "description": "Date of the month" }, - "endTime": { - "format": "date-time", - "description": "Job has ended at this time. Value is in UTC.", - "type": "string" + "isLast": { + "type": "boolean", + "description": "Whether Date is last date of month" } } }, - "JobResource": { - "description": "Defines workload agnostic properties for a job.", - "allOf": [ - { - "$ref": "#/definitions/Resource" - } + "DayOfWeek": { + "type": "string", + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" ], - "properties": { - "properties": { - "$ref": "#/definitions/Job", - "description": "JobResource properties" - } + "x-ms-enum": { + "name": "DayOfWeek", + "modelAsString": false } }, - "JobResourceList": { - "description": "List of Job resources", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ResourceList" - } + "DedupState": { + "type": "string", + "description": "Vault Dedup state", + "enum": [ + "Invalid", + "Enabled", + "Disabled" ], + "x-ms-enum": { + "name": "DedupState", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Enabled", + "value": "Enabled" + }, + { + "name": "Disabled", + "value": "Disabled" + } + ] + } + }, + "DiskExclusionProperties": { + "type": "object", "properties": { - "value": { - "description": "List of resources.", + "diskLunList": { "type": "array", + "description": "List of Disks' Logical Unit Numbers (LUN) to be used for VM Protection.", "items": { - "$ref": "#/definitions/JobResource" + "type": "integer", + "format": "int32" } + }, + "isInclusionList": { + "type": "boolean", + "description": "Flag to indicate whether DiskLunList is to be included/ excluded from backup." } } }, - "KEKDetails": { - "description": "KEK is encryption key for BEK.", + "DiskInformation": { "type": "object", + "description": "Disk information", "properties": { - "keyUrl": { - "description": "Key is KEK.", - "type": "string" - }, - "keyVaultId": { - "description": "Key Vault ID where this Key is stored.", - "type": "string" + "lun": { + "type": "integer", + "format": "int32" }, - "keyBackupData": { - "description": "KEK data.", + "name": { "type": "string" } } }, - "KeyAndSecretDetails": { - "description": "BEK is bitlocker key.\r\nKEK is encryption key for BEK\r\nIf the VM was encrypted then we will store following details :\r\n1. Secret(BEK) - Url + Backup Data + vaultId.\r\n2. Key(KEK) - Url + Backup Data + vaultId.\r\n3. EncryptionMechanism\r\nBEK and KEK can potentially have different vault ids.", + "DistributedNodesInfo": { "type": "object", + "description": "This is used to represent the various nodes of the distributed container.", "properties": { - "kekDetails": { - "$ref": "#/definitions/KEKDetails", - "description": "KEK is encryption key for BEK." + "nodeName": { + "type": "string", + "description": "Name of the node under a distributed container." }, - "bekDetails": { - "$ref": "#/definitions/BEKDetails", - "description": "BEK is bitlocker encryption key." + "status": { + "type": "string", + "description": "Status of this Node.\nFailed | Succeeded" }, - "encryptionMechanism": { - "description": "Encryption mechanism: None/ SinglePass/ DoublePass", - "type": "string" + "errorDetail": { + "$ref": "#/definitions/ErrorDetail", + "description": "Error Details if the Status is non-success." + }, + "sourceResourceId": { + "type": "string", + "description": "ARM resource id of the node" } } }, - "LogSchedulePolicy": { - "description": "Log policy schedule.", + "DpmBackupEngine": { "type": "object", + "description": "Data Protection Manager (DPM) specific backup engine.", "allOf": [ { - "$ref": "#/definitions/SchedulePolicy" + "$ref": "#/definitions/BackupEngineBase" } ], - "properties": { - "scheduleFrequencyInMins": { - "format": "int32", - "description": "Frequency of the log schedule operation of this policy in minutes.", - "type": "integer" - } - }, - "x-ms-discriminator-value": "LogSchedulePolicy" + "x-ms-discriminator-value": "DpmBackupEngine" }, - "LongTermRetentionPolicy": { - "description": "Long term retention policy.", + "DpmContainer": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/RetentionPolicy" - } - ], + "description": "DPM workload-specific protection container.", "properties": { - "dailySchedule": { - "$ref": "#/definitions/DailyRetentionSchedule", - "description": "Daily retention schedule of the protection policy." + "canReRegister": { + "type": "boolean", + "description": "Specifies whether the container is re-registrable." }, - "weeklySchedule": { - "$ref": "#/definitions/WeeklyRetentionSchedule", - "description": "Weekly retention schedule of the protection policy." + "containerId": { + "type": "string", + "description": "ID of container." }, - "monthlySchedule": { - "$ref": "#/definitions/MonthlyRetentionSchedule", - "description": "Monthly retention schedule of the protection policy." + "protectedItemCount": { + "type": "integer", + "format": "int64", + "description": "Number of protected items in the BackupEngine" }, - "yearlySchedule": { - "$ref": "#/definitions/YearlyRetentionSchedule", - "description": "Yearly retention schedule of the protection policy." + "dpmAgentVersion": { + "type": "string", + "description": "Backup engine Agent version" + }, + "dpmServers": { + "type": "array", + "description": "List of BackupEngines protecting the container", + "items": { + "type": "string" + } + }, + "upgradeAvailable": { + "type": "boolean", + "description": "To check if upgrade available" + }, + "protectionStatus": { + "type": "string", + "description": "Protection status of the container." + }, + "extendedInfo": { + "$ref": "#/definitions/DPMContainerExtendedInfo", + "description": "Extended Info of the container." } }, - "x-ms-discriminator-value": "LongTermRetentionPolicy" - }, - "LongTermSchedulePolicy": { - "description": "Long term policy schedule.", - "type": "object", "allOf": [ { - "$ref": "#/definitions/SchedulePolicy" + "$ref": "#/definitions/ProtectionContainer" } ], - "x-ms-discriminator-value": "LongTermSchedulePolicy" + "x-ms-discriminator-value": "DPMContainer" }, - "MabErrorInfo": { - "description": "MAB workload-specific error information.", + "DpmErrorInfo": { "type": "object", + "description": "DPM workload-specific error information.", "properties": { "errorString": { - "description": "Localized error string.", "type": "string", - "readOnly": true + "description": "Localized error string." }, "recommendations": { - "description": "List of localized recommendations.", "type": "array", + "description": "List of localized recommendations for above error code.", "items": { "type": "string" - }, - "readOnly": true - } - } - }, - "MabFileFolderProtectedItem": { - "description": "MAB workload-specific backup item.", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ProtectedItem" - } - ], - "properties": { - "friendlyName": { - "description": "Friendly name of this backup item.", - "type": "string" - }, - "computerName": { - "description": "Name of the computer associated with this backup item.", - "type": "string" - }, - "lastBackupStatus": { - "description": "Status of last backup operation.", - "type": "string" - }, - "lastBackupTime": { - "format": "date-time", - "description": "Timestamp of the last backup operation on this backup item.", - "type": "string" - }, - "protectionState": { - "description": "Protected, ProtectionStopped, IRPending or ProtectionError", - "type": "string" - }, - "deferredDeleteSyncTimeInUTC": { - "format": "int64", - "description": "Sync time for deferred deletion in UTC", - "type": "integer" - }, - "extendedInfo": { - "$ref": "#/definitions/MabFileFolderProtectedItemExtendedInfo", - "description": "Additional information with this backup item." - } - }, - "x-ms-discriminator-value": "MabFileFolderProtectedItem" - }, - "MabFileFolderProtectedItemExtendedInfo": { - "description": "Additional information on the backed up item.", - "type": "object", - "properties": { - "lastRefreshedAt": { - "format": "date-time", - "description": "Last time when the agent data synced to service.", - "type": "string" - }, - "oldestRecoveryPoint": { - "format": "date-time", - "description": "The oldest backup copy available.", - "type": "string" - }, - "recoveryPointCount": { - "format": "int32", - "description": "Number of backup copies associated with the backup item.", - "type": "integer" + } } } }, - "MabJob": { - "description": "MAB workload-specific job.", + "DpmJob": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/Job" - } - ], + "description": "DPM workload-specific job object.", "properties": { "duration": { + "type": "string", "format": "duration", - "description": "Time taken by job to run.", - "type": "string" + "description": "Time elapsed for job." }, - "actionsInfo": { - "description": "The state/actions applicable on jobs like cancel/retry.", - "type": "array", - "items": { - "enum": [ - "Invalid", - "Cancellable", - "Retriable" - ], - "type": "string", - "x-ms-enum": { - "name": "JobSupportedAction", - "modelAsString": false - } - } + "dpmServerName": { + "type": "string", + "description": "DPM server name managing the backup item or backup job." }, - "mabServerName": { - "description": "Name of server protecting the DS.", - "type": "string" + "containerName": { + "type": "string", + "description": "Name of cluster/server protecting current backup item, if any." }, - "mabServerType": { - "description": "Server type of MAB container.", - "enum": [ - "Invalid", - "Unknown", - "IaasVMContainer", - "IaasVMServiceContainer", - "DPMContainer", - "AzureBackupServerContainer", - "MABContainer", - "Cluster", - "AzureSqlContainer", - "Windows", - "VCenter", - "VMAppContainer", - "SQLAGWorkLoadContainer", - "StorageContainer", - "GenericContainer" - ], - "type": "string", - "x-ms-enum": { - "name": "MabServerType", - "modelAsString": true - } + "containerType": { + "type": "string", + "description": "Type of container." }, "workloadType": { - "description": "Workload type of backup item.", - "enum": [ - "Invalid", - "VM", - "FileFolder", - "AzureSqlDb", - "SQLDB", - "Exchange", - "Sharepoint", - "VMwareVM", - "SystemState", - "Client", - "GenericDataSource", - "SQLDataBase", - "AzureFileShare", - "SAPHanaDatabase", - "SAPAseDatabase", - "SAPHanaDBInstance" - ], - "type": "string", - "x-ms-enum": { - "name": "WorkloadType", - "modelAsString": true + "type": "string", + "description": "Type of backup item." + }, + "actionsInfo": { + "type": "array", + "description": "The state/actions applicable on this job like cancel/retry.", + "items": { + "$ref": "#/definitions/JobSupportedAction" } }, "errorDetails": { - "description": "The errors.", "type": "array", + "description": "The errors.", "items": { - "$ref": "#/definitions/MabErrorInfo" + "$ref": "#/definitions/DpmErrorInfo" }, "x-ms-identifiers": [] }, "extendedInfo": { - "$ref": "#/definitions/MabJobExtendedInfo", - "description": "Additional information on the job." + "$ref": "#/definitions/DpmJobExtendedInfo", + "description": "Additional information for this job." } }, - "x-ms-discriminator-value": "MabJob" + "allOf": [ + { + "$ref": "#/definitions/Job" + } + ], + "x-ms-discriminator-value": "DpmJob" }, - "MabJobExtendedInfo": { - "description": "Additional information for the MAB workload-specific job.", + "DpmJobExtendedInfo": { "type": "object", + "description": "Additional information on the DPM workload-specific job.", "properties": { "tasksList": { - "description": "List of tasks for this job.", "type": "array", + "description": "List of tasks associated with this job.", "items": { - "$ref": "#/definitions/MabJobTaskDetails" + "$ref": "#/definitions/DpmJobTaskDetails" }, "x-ms-identifiers": [ "taskId" ] }, "propertyBag": { - "description": "The job properties.", "type": "object", + "description": "The job properties.", "additionalProperties": { "type": "string" } }, "dynamicErrorMessage": { - "description": "Non localized error message specific to this job.", - "type": "string" + "type": "string", + "description": "Non localized error message on job execution." } } }, - "MabJobTaskDetails": { - "description": "MAB workload-specific job task details.", + "DpmJobTaskDetails": { "type": "object", + "description": "DPM workload-specific job task details.", "properties": { "taskId": { - "description": "The task display name.", - "type": "string" + "type": "string", + "description": "The task display name." }, "startTime": { + "type": "string", "format": "date-time", - "description": "The start time.", - "type": "string" + "description": "The start time." }, "endTime": { + "type": "string", "format": "date-time", - "description": "The end time.", - "type": "string" + "description": "The end time." }, "duration": { + "type": "string", "format": "duration", - "description": "Time elapsed for task.", - "type": "string" + "description": "Time elapsed for task." }, "status": { - "description": "The status.", - "type": "string" + "type": "string", + "description": "The status." } } }, - "MabProtectionPolicy": { - "description": "Mab container-specific backup policy.", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ProtectionPolicy" - } + "EncryptionAtRestType": { + "type": "string", + "description": "Encryption At Rest Type", + "enum": [ + "Invalid", + "MicrosoftManaged", + "CustomerManaged" ], + "x-ms-enum": { + "name": "EncryptionAtRestType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "MicrosoftManaged", + "value": "MicrosoftManaged" + }, + { + "name": "CustomerManaged", + "value": "CustomerManaged" + } + ] + } + }, + "EncryptionDetails": { + "type": "object", + "description": "Details needed if the VM was encrypted at the time of backup.", "properties": { - "schedulePolicy": { - "$ref": "#/definitions/SchedulePolicy", - "description": "Backup schedule of backup policy." + "encryptionEnabled": { + "type": "boolean", + "description": "Identifies whether this backup copy represents an encrypted VM at the time of backup." }, - "retentionPolicy": { - "$ref": "#/definitions/RetentionPolicy", - "description": "Retention policy details." + "kekUrl": { + "type": "string", + "description": "Key Url." + }, + "secretKeyUrl": { + "type": "string", + "description": "Secret Url." + }, + "kekVaultId": { + "type": "string", + "description": "ID of Key Vault where KEK is stored." + }, + "secretKeyVaultId": { + "type": "string", + "description": "ID of Key Vault where Secret is stored." } - }, - "x-ms-discriminator-value": "MAB" + } }, - "MonthlyRetentionSchedule": { - "description": "Monthly retention schedule.", + "EnhancedSecurityState": { + "type": "string", + "description": "Enabled or Disabled.", + "enum": [ + "Invalid", + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "EnhancedSecurityState", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Enabled", + "value": "Enabled" + }, + { + "name": "Disabled", + "value": "Disabled" + } + ] + } + }, + "ErrorDetail": { "type": "object", + "description": "Error Detail class which encapsulates Code, Message and Recommendations.", "properties": { - "retentionScheduleFormatType": { - "description": "Retention schedule format type for monthly retention policy.", - "enum": [ - "Invalid", - "Daily", - "Weekly" - ], + "code": { "type": "string", - "x-ms-enum": { - "name": "RetentionScheduleFormat", - "modelAsString": true - } - }, - "retentionScheduleDaily": { - "$ref": "#/definitions/DailyRetentionFormat", - "description": "Daily retention format for monthly retention policy." + "description": "Error code.", + "readOnly": true }, - "retentionScheduleWeekly": { - "$ref": "#/definitions/WeeklyRetentionFormat", - "description": "Weekly retention format for monthly retention policy." + "message": { + "type": "string", + "description": "Error Message related to the Code.", + "readOnly": true }, - "retentionTimes": { - "description": "Retention times of retention policy.", + "recommendations": { "type": "array", + "description": "List of recommendation strings.", "items": { - "format": "date-time", "type": "string" - } - }, - "retentionDuration": { - "$ref": "#/definitions/RetentionDuration", - "description": "Retention duration of retention Policy." + }, + "readOnly": true } } }, - "OperationResultInfo": { - "description": "Operation result info.", + "ExportJobsOperationResultInfo": { "type": "object", + "description": "This class is used to send blob details after exporting jobs.", + "properties": { + "blobUrl": { + "type": "string", + "description": "URL of the blob into which the serialized string of list of jobs is exported." + }, + "blobSasKey": { + "type": "string", + "description": "SAS key to access the blob. It expires in 15 mins." + }, + "excelFileBlobUrl": { + "type": "string", + "description": "URL of the blob into which the ExcelFile is uploaded." + }, + "excelFileBlobSasKey": { + "type": "string", + "description": "SAS key to access the blob. It expires in 15 mins." + } + }, "allOf": [ { "$ref": "#/definitions/OperationResultInfoBase" } ], - "properties": { - "jobList": { - "description": "List of jobs created by this operation.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "x-ms-discriminator-value": "OperationResultInfo" + "x-ms-discriminator-value": "ExportJobsOperationResultInfo" }, - "OperationResultInfoBase": { - "description": "Base class for operation result info.", - "required": [ - "objectType" - ], + "ExtendedLocation": { "type": "object", + "description": "The extended location of Recovery point where VM was present.", "properties": { - "objectType": { - "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.", - "type": "string" + "name": { + "type": "string", + "description": "Name of the extended location." + }, + "type": { + "type": "string", + "description": "Type of the extended location. Possible values include: 'EdgeZone'" } - }, - "discriminator": "objectType" + } }, - "KPIResourceHealthDetails": { - "description": "KPI Resource Health Details", + "ExtendedProperties": { "type": "object", + "description": "Extended Properties for Azure IaasVM Backup.", "properties": { - "resourceHealthStatus": { - "description": "Resource Health Status", - "enum": [ - "Healthy", - "TransientDegraded", - "PersistentDegraded", - "TransientUnhealthy", - "PersistentUnhealthy", - "Invalid" - ], - "type": "string", - "x-ms-enum": { - "name": "ResourceHealthStatus", - "modelAsString": true - } + "diskExclusionProperties": { + "$ref": "#/definitions/DiskExclusionProperties", + "description": "Extended Properties for Disk Exclusion." }, - "resourceHealthDetails": { - "description": "Resource Health Status", - "type": "array", - "items": { - "$ref": "#/definitions/ResourceHealthDetails" - }, - "x-ms-identifiers": [ - "code" - ] + "linuxVmApplicationName": { + "type": "string", + "description": "Linux VM name" } } }, - "PrepareDataMoveRequest": { - "description": "Prepare DataMove Request", - "required": [ - "targetResourceId", - "targetRegion", - "dataMoveLevel" + "FabricName": { + "type": "string", + "description": "Specifies the fabric name - Azure or AD", + "enum": [ + "Invalid", + "Azure" ], + "x-ms-enum": { + "name": "FabricName", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Azure", + "value": "Azure" + } + ] + } + }, + "FeatureSupportRequest": { "type": "object", + "description": "Base class for feature request", "properties": { - "targetResourceId": { - "description": "ARM Id of target vault", - "type": "string" - }, - "targetRegion": { - "description": "Target Region", - "type": "string" + "featureType": { + "type": "string", + "description": "backup support feature type." + } + }, + "discriminator": "featureType", + "required": [ + "featureType" + ] + }, + "FetchTieringCostInfoForRehydrationRequest": { + "type": "object", + "description": "Request parameters for fetching cost info of rehydration", + "properties": { + "containerName": { + "type": "string", + "description": "Name of the protected item container" }, - "dataMoveLevel": { - "description": "DataMove Level", - "enum": [ - "Invalid", - "Vault", - "Container" - ], + "protectedItemName": { "type": "string", - "x-ms-enum": { - "name": "DataMoveLevel", - "modelAsString": true - } + "description": "Name of the protectedItemName" }, - "sourceContainerArmIds": { - "description": "Source Container ArmIds\r\nThis needs to be populated only if DataMoveLevel is set to container", - "type": "array", - "items": { - "type": "string" - } + "recoveryPointId": { + "type": "string", + "description": "ID of the backup copy for rehydration cost info needs to be fetched." }, - "ignoreMoved": { - "description": "Ignore the artifacts which are already moved.", - "type": "boolean" + "rehydrationPriority": { + "$ref": "#/definitions/RehydrationPriority", + "description": "Rehydration Priority" } - } - }, - "PrepareDataMoveResponse": { - "description": "Prepare DataMove Response", - "type": "object", + }, + "required": [ + "containerName", + "protectedItemName", + "recoveryPointId", + "rehydrationPriority" + ], "allOf": [ { - "$ref": "#/definitions/VaultStorageConfigOperationResultResponse" + "$ref": "#/definitions/FetchTieringCostInfoRequest" } ], + "x-ms-discriminator-value": "FetchTieringCostInfoForRehydrationRequest" + }, + "FetchTieringCostInfoRequest": { + "type": "object", + "description": "Base class for tiering cost request.\nSpecific cost request types are derived from this class.", "properties": { - "correlationId": { - "description": "Co-relationId for move operation", - "type": "string" + "sourceTierType": { + "$ref": "#/definitions/RecoveryPointTierType", + "description": "Source tier for the request" }, - "sourceVaultProperties": { - "description": "Source Vault Properties", - "type": "object", - "additionalProperties": { - "type": "string" - } + "targetTierType": { + "$ref": "#/definitions/RecoveryPointTierType", + "description": "target tier for the request" + }, + "objectType": { + "type": "string", + "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types." } }, - "x-ms-discriminator-value": "PrepareDataMoveResponse" - }, - "VaultStorageConfigOperationResultResponse": { - "description": "Operation result response for Vault Storage Config", + "discriminator": "objectType", "required": [ + "sourceTierType", + "targetTierType", "objectType" - ], + ] + }, + "FetchTieringCostSavingsInfoForPolicyRequest": { "type": "object", + "description": "Request parameters for tiering cost info for policy", "properties": { - "objectType": { - "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.", - "type": "string" + "policyName": { + "type": "string", + "description": "Name of the backup policy for which the cost savings information is requested" } }, - "discriminator": "objectType" - }, - "TriggerDataMoveRequest": { - "description": "Trigger DataMove Request", "required": [ - "sourceResourceId", - "sourceRegion", - "dataMoveLevel", - "correlationId" + "policyName" + ], + "allOf": [ + { + "$ref": "#/definitions/FetchTieringCostInfoRequest" + } ], + "x-ms-discriminator-value": "FetchTieringCostSavingsInfoForPolicyRequest" + }, + "FetchTieringCostSavingsInfoForProtectedItemRequest": { "type": "object", + "description": "Request parameters for tiering cost info for protected item", "properties": { - "sourceResourceId": { - "description": "ARM Id of source vault", - "type": "string" - }, - "sourceRegion": { - "description": "Source Region", - "type": "string" - }, - "dataMoveLevel": { - "description": "DataMove Level", - "enum": [ - "Invalid", - "Vault", - "Container" - ], + "containerName": { "type": "string", - "x-ms-enum": { - "name": "DataMoveLevel", - "modelAsString": true - } - }, - "correlationId": { - "description": "Correlation Id", - "type": "string" - }, - "sourceContainerArmIds": { - "description": "Source Container ArmIds", - "type": "array", - "items": { - "type": "string" - } + "description": "Name of the protected item container" }, - "pauseGC": { - "description": "Pause GC", - "type": "boolean" + "protectedItemName": { + "type": "string", + "description": "Name of the protectedItemName" } - } + }, + "required": [ + "containerName", + "protectedItemName" + ], + "allOf": [ + { + "$ref": "#/definitions/FetchTieringCostInfoRequest" + } + ], + "x-ms-discriminator-value": "FetchTieringCostSavingsInfoForProtectedItemRequest" }, - "OperationResultInfoBaseResource": { - "description": "Base class for operation result info.", + "FetchTieringCostSavingsInfoForVaultRequest": { + "type": "object", + "description": "Request parameters for tiering cost info for vault", "allOf": [ { - "$ref": "#/definitions/OperationWorkerResponse" + "$ref": "#/definitions/FetchTieringCostInfoRequest" } ], + "x-ms-discriminator-value": "FetchTieringCostSavingsInfoForVaultRequest" + }, + "GenericContainer": { + "type": "object", + "description": "Base class for generic container of backup items", "properties": { - "operation": { - "$ref": "#/definitions/OperationResultInfoBase", - "description": "OperationResultInfoBaseResource operation" + "fabricName": { + "type": "string", + "description": "Name of the container's fabric" + }, + "extendedInformation": { + "$ref": "#/definitions/GenericContainerExtendedInfo", + "description": "Extended information (not returned in List container API calls)" } - } + }, + "allOf": [ + { + "$ref": "#/definitions/ProtectionContainer" + } + ], + "x-ms-discriminator-value": "GenericContainer" }, - "OperationWorkerResponse": { - "description": "This is the base class for operation result responses.", + "GenericContainerExtendedInfo": { "type": "object", + "description": "Container extended information", "properties": { - "statusCode": { - "description": "HTTP Status Code of the operation.", - "enum": [ - "Continue", - "SwitchingProtocols", - "OK", - "Created", - "Accepted", - "NonAuthoritativeInformation", - "NoContent", - "ResetContent", - "PartialContent", - "MultipleChoices", - "Ambiguous", - "MovedPermanently", - "Moved", - "Found", - "Redirect", - "SeeOther", - "RedirectMethod", - "NotModified", - "UseProxy", - "Unused", - "TemporaryRedirect", - "RedirectKeepVerb", - "BadRequest", - "Unauthorized", - "PaymentRequired", - "Forbidden", - "NotFound", - "MethodNotAllowed", - "NotAcceptable", - "ProxyAuthenticationRequired", - "RequestTimeout", - "Conflict", - "Gone", - "LengthRequired", - "PreconditionFailed", - "RequestEntityTooLarge", - "RequestUriTooLong", - "UnsupportedMediaType", - "RequestedRangeNotSatisfiable", - "ExpectationFailed", - "UpgradeRequired", - "InternalServerError", - "NotImplemented", - "BadGateway", - "ServiceUnavailable", - "GatewayTimeout", - "HttpVersionNotSupported" - ], - "type": "string", - "x-ms-enum": { - "name": "HttpStatusCode", - "modelAsString": false - } + "rawCertData": { + "type": "string", + "description": "Public key of container cert" }, - "headers": { - "description": "HTTP headers associated with this operation.", + "containerIdentityInfo": { + "$ref": "#/definitions/ContainerIdentityInfo", + "description": "Container identity information" + }, + "serviceEndpoints": { "type": "object", + "description": "Azure Backup Service Endpoints for the container", "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } + "type": "string" } } } }, - "PointInTimeRange": { - "description": "Provides details for log ranges", + "GenericProtectedItem": { "type": "object", - "properties": { - "startTime": { - "format": "date-time", - "description": "Start time of the time range for log recovery.", - "type": "string" - }, - "endTime": { - "format": "date-time", - "description": "End time of the time range for log recovery.", - "type": "string" - } - } - }, - "ProtectedItem": { "description": "Base class for backup items.", - "required": [ - "protectedItemType" - ], - "type": "object", "properties": { - "protectedItemType": { - "description": "backup item type.", - "type": "string" - }, - "backupManagementType": { - "description": "Type of backup management for the backed up item.", - "enum": [ - "Invalid", - "AzureIaasVM", - "MAB", - "DPM", - "AzureBackupServer", - "AzureSql", - "AzureStorage", - "AzureWorkload", - "DefaultBackup" - ], - "type": "string", - "x-ms-enum": { - "name": "BackupManagementType", - "modelAsString": true - }, - "readOnly": true - }, - "workloadType": { - "description": "Type of workload this item represents.", - "enum": [ - "Invalid", - "VM", - "FileFolder", - "AzureSqlDb", - "SQLDB", - "Exchange", - "Sharepoint", - "VMwareVM", - "SystemState", - "Client", - "GenericDataSource", - "SQLDataBase", - "AzureFileShare", - "SAPHanaDatabase", - "SAPAseDatabase", - "SAPHanaDBInstance" - ], - "type": "string", - "x-ms-enum": { - "name": "DataSourceType", - "modelAsString": true - }, - "readOnly": true - }, - "containerName": { - "description": "Unique name of container", - "type": "string" - }, - "sourceResourceId": { - "description": "ARM ID of the resource to be backed up.", - "type": "string" - }, - "policyId": { - "description": "ID of the backup policy with which this item is backed up.", - "type": "string" - }, - "lastRecoveryPoint": { - "format": "date-time", - "description": "Timestamp when the last (latest) backup copy was created for this backup item.", - "type": "string" - }, - "backupSetName": { - "description": "Name of the backup set the backup item belongs to", - "type": "string" - }, - "createMode": { - "description": "Create mode to indicate recovery of existing soft deleted data source or creation of new data source.", - "enum": [ - "Invalid", - "Default", - "Recover" - ], + "friendlyName": { "type": "string", - "x-ms-enum": { - "name": "CreateMode", - "modelAsString": true - } - }, - "deferredDeleteTimeInUTC": { - "format": "date-time", - "description": "Time for deferred deletion in UTC", - "type": "string" - }, - "isScheduledForDeferredDelete": { - "description": "Flag to identify whether the DS is scheduled for deferred delete", - "type": "boolean" + "description": "Friendly name of the container." }, - "deferredDeleteTimeRemaining": { - "description": "Time remaining before the DS marked for deferred delete is permanently deleted", - "type": "string" + "policyState": { + "type": "string", + "description": "Indicates consistency of policy object and policy applied to this backup item." }, - "isDeferredDeleteScheduleUpcoming": { - "description": "Flag to identify whether the deferred deleted DS is to be purged soon", - "type": "boolean" + "protectionState": { + "$ref": "#/definitions/ProtectionState", + "description": "Backup state of this backup item." }, - "isRehydrate": { - "description": "Flag to identify that deferred deleted DS is to be moved into Pause state", - "type": "boolean" + "protectedItemId": { + "type": "integer", + "format": "int64", + "description": "Data Plane Service ID of the protected item." }, - "resourceGuardOperationRequests": { - "description": "ResourceGuardOperationRequests on which LAC check will be performed", - "type": "array", - "items": { + "sourceAssociations": { + "type": "object", + "description": "Loosely coupled (type, value) associations (example - parent of a protected item)", + "additionalProperties": { "type": "string" } }, - "isArchiveEnabled": { - "description": "Flag to identify whether datasource is protected in archive", - "type": "boolean" - }, - "policyName": { - "description": "Name of the policy used for protection", - "type": "string" + "fabricName": { + "type": "string", + "description": "Name of this backup item's fabric." + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProtectedItem" + } + ], + "x-ms-discriminator-value": "GenericProtectedItem" + }, + "GenericProtectionPolicy": { + "type": "object", + "description": "Azure VM (Mercury) workload-specific backup policy.", + "properties": { + "subProtectionPolicy": { + "type": "array", + "description": "List of sub-protection policies which includes schedule and retention", + "items": { + "$ref": "#/definitions/SubProtectionPolicy" + }, + "x-ms-identifiers": [] }, - "softDeleteRetentionPeriodInDays": { - "format": "int32", - "description": "Soft delete retention period in days", - "type": "integer" + "timeZone": { + "type": "string", + "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\"." }, - "vaultId": { - "description": "ID of the vault which protects this item", + "fabricName": { "type": "string", - "readOnly": true + "description": "Name of this policy's fabric." + } + }, + "allOf": [ + { + "$ref": "#/definitions/ProtectionPolicy" } - }, - "discriminator": "protectedItemType" + ], + "x-ms-discriminator-value": "GenericProtectionPolicy" }, - "ProtectedItemQueryObject": { - "description": "Filters to list backup items.", + "GenericRecoveryPoint": { "type": "object", + "description": "Generic backup copy.", "properties": { - "healthState": { - "description": "Health State for the backed up item.", - "enum": [ - "Passed", - "ActionRequired", - "ActionSuggested", - "Invalid" - ], + "friendlyName": { "type": "string", - "x-ms-enum": { - "name": "HealthState", - "modelAsString": true - } - }, - "backupManagementType": { - "description": "Backup management type for the backed up item.", - "enum": [ - "Invalid", - "AzureIaasVM", - "MAB", - "DPM", - "AzureBackupServer", - "AzureSql", - "AzureStorage", - "AzureWorkload", - "DefaultBackup" - ], - "type": "string", - "x-ms-enum": { - "name": "BackupManagementType", - "modelAsString": true - } - }, - "itemType": { - "description": "Type of workload this item represents.", - "enum": [ - "Invalid", - "VM", - "FileFolder", - "AzureSqlDb", - "SQLDB", - "Exchange", - "Sharepoint", - "VMwareVM", - "SystemState", - "Client", - "GenericDataSource", - "SQLDataBase", - "AzureFileShare", - "SAPHanaDatabase", - "SAPAseDatabase", - "SAPHanaDBInstance" - ], - "type": "string", - "x-ms-enum": { - "name": "DataSourceType", - "modelAsString": true - } - }, - "policyName": { - "description": "Backup policy name associated with the backup item.", - "type": "string" - }, - "containerName": { - "description": "Name of the container.", - "type": "string" + "description": "Friendly name of the backup copy." }, - "backupEngineName": { - "description": "Backup Engine name", - "type": "string" + "recoveryPointType": { + "type": "string", + "description": "Type of the backup copy." }, - "friendlyName": { - "description": "Friendly name of protected item", - "type": "string" + "recoveryPointTime": { + "type": "string", + "format": "date-time", + "description": "Time at which this backup copy was created." }, - "fabricName": { - "description": "Name of the fabric.", - "type": "string" + "recoveryPointAdditionalInfo": { + "type": "string", + "description": "Additional information associated with this backup copy." }, - "backupSetName": { - "description": "Name of the backup set.", - "type": "string" + "recoveryPointProperties": { + "$ref": "#/definitions/RecoveryPointProperties", + "description": "Properties of Recovery Point" } - } - }, - "ProtectedItemResource": { - "description": "Base class for backup items.", + }, "allOf": [ { - "$ref": "#/definitions/Resource" + "$ref": "#/definitions/RecoveryPoint" } ], + "x-ms-discriminator-value": "GenericRecoveryPoint" + }, + "GetProtectedItemQueryObject": { + "type": "object", + "description": "Filters to list backup items.", "properties": { - "properties": { - "$ref": "#/definitions/ProtectedItem", - "description": "ProtectedItemResource properties" + "expand": { + "type": "string", + "description": "Specifies if the additional information should be provided for this item." } } }, - "ProtectedItemResourceList": { - "description": "List of ProtectedItem resources", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ResourceList" - } + "HealthState": { + "type": "string", + "description": "Health State for the backed up item.", + "enum": [ + "Passed", + "ActionRequired", + "ActionSuggested", + "Invalid" ], - "properties": { - "value": { - "description": "List of resources.", - "type": "array", - "items": { - "$ref": "#/definitions/ProtectedItemResource" + "x-ms-enum": { + "name": "HealthState", + "modelAsString": true, + "values": [ + { + "name": "Passed", + "value": "Passed" + }, + { + "name": "ActionRequired", + "value": "ActionRequired" + }, + { + "name": "ActionSuggested", + "value": "ActionSuggested" + }, + { + "name": "Invalid", + "value": "Invalid" } - } + ] } }, - "ProtectionPolicy": { - "description": "Base class for backup policy. Workload-specific backup policies are derived from this class.", - "required": [ - "backupManagementType" + "HealthStatus": { + "type": "string", + "description": "Health status of protected item.", + "enum": [ + "Passed", + "ActionRequired", + "ActionSuggested", + "Invalid" ], + "x-ms-enum": { + "name": "HealthStatus", + "modelAsString": true, + "values": [ + { + "name": "Passed", + "value": "Passed" + }, + { + "name": "ActionRequired", + "value": "ActionRequired" + }, + { + "name": "ActionSuggested", + "value": "ActionSuggested" + }, + { + "name": "Invalid", + "value": "Invalid" + } + ] + } + }, + "HourlySchedule": { "type": "object", "properties": { - "protectedItemsCount": { + "interval": { + "type": "integer", "format": "int32", - "description": "Number of items associated with this policy.", - "type": "integer" + "description": "Interval at which backup needs to be triggered. For hourly the value\ncan be 4/6/8/12" }, - "backupManagementType": { - "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.", - "type": "string" + "scheduleWindowStartTime": { + "type": "string", + "format": "date-time", + "description": "To specify start time of the backup window" }, - "resourceGuardOperationRequests": { - "description": "ResourceGuard Operation Requests", - "type": "array", - "items": { - "type": "string" + "scheduleWindowDuration": { + "type": "integer", + "format": "int32", + "description": "To specify duration of the backup window" + } + } + }, + "HttpStatusCode": { + "type": "string", + "description": "HTTP Status Code of the operation.", + "enum": [ + "Continue", + "SwitchingProtocols", + "OK", + "Created", + "Accepted", + "NonAuthoritativeInformation", + "NoContent", + "ResetContent", + "PartialContent", + "MultipleChoices", + "Ambiguous", + "MovedPermanently", + "Moved", + "Found", + "Redirect", + "SeeOther", + "RedirectMethod", + "NotModified", + "UseProxy", + "Unused", + "TemporaryRedirect", + "RedirectKeepVerb", + "BadRequest", + "Unauthorized", + "PaymentRequired", + "Forbidden", + "NotFound", + "MethodNotAllowed", + "NotAcceptable", + "ProxyAuthenticationRequired", + "RequestTimeout", + "Conflict", + "Gone", + "LengthRequired", + "PreconditionFailed", + "RequestEntityTooLarge", + "RequestUriTooLong", + "UnsupportedMediaType", + "RequestedRangeNotSatisfiable", + "ExpectationFailed", + "UpgradeRequired", + "InternalServerError", + "NotImplemented", + "BadGateway", + "ServiceUnavailable", + "GatewayTimeout", + "HttpVersionNotSupported" + ], + "x-ms-enum": { + "name": "HttpStatusCode", + "modelAsString": false + } + }, + "IAASVMPolicyType": { + "type": "string", + "enum": [ + "Invalid", + "V1", + "V2" + ], + "x-ms-enum": { + "name": "IAASVMPolicyType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "V1", + "value": "V1" + }, + { + "name": "V2", + "value": "V2" } + ] + } + }, + "ILRRequest": { + "type": "object", + "description": "Parameters to Provision ILR API.", + "properties": { + "objectType": { + "type": "string", + "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types." } }, - "discriminator": "backupManagementType" + "discriminator": "objectType", + "required": [ + "objectType" + ] }, - "ProtectionPolicyQueryObject": { - "description": "Filters the list backup policies API.", + "ILRRequestResource": { "type": "object", + "description": "Parameters to Provision ILR API.", "properties": { - "backupManagementType": { - "description": "Backup management type for the backup policy.", - "enum": [ - "Invalid", - "AzureIaasVM", - "MAB", - "DPM", - "AzureBackupServer", - "AzureSql", - "AzureStorage", - "AzureWorkload", - "DefaultBackup" - ], - "type": "string", - "x-ms-enum": { - "name": "BackupManagementType", - "modelAsString": true + "location": { + "type": "string", + "description": "Resource location." + }, + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" } }, - "fabricName": { - "description": "Fabric name for filter", - "type": "string" + "eTag": { + "type": "string", + "description": "Optional ETag." }, - "workloadType": { - "description": "Workload type for the backup policy.", - "enum": [ - "Invalid", - "VM", - "FileFolder", - "AzureSqlDb", - "SQLDB", - "Exchange", - "Sharepoint", - "VMwareVM", - "SystemState", - "Client", - "GenericDataSource", - "SQLDataBase", - "AzureFileShare", - "SAPHanaDatabase", - "SAPAseDatabase", - "SAPHanaDBInstance" - ], - "type": "string", - "x-ms-enum": { - "name": "WorkloadType", - "modelAsString": true - } - } - } - }, - "ProtectionPolicyResource": { - "description": "Base class for backup policy. Workload-specific backup policies are derived from this class.", - "allOf": [ - { - "$ref": "#/definitions/Resource" - } - ], - "properties": { "properties": { - "$ref": "#/definitions/ProtectionPolicy", - "description": "ProtectionPolicyResource properties" + "$ref": "#/definitions/ILRRequest", + "description": "ILRRequestResource properties" } - } - }, - "ProtectionPolicyResourceList": { - "description": "List of ProtectionPolicy resources", - "type": "object", + }, "allOf": [ { - "$ref": "#/definitions/ResourceList" - } - ], - "properties": { - "value": { - "description": "List of resources.", - "type": "array", - "items": { - "$ref": "#/definitions/ProtectionPolicyResource" - } + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" } - } + ] }, - "RecoveryPoint": { - "description": "Base class for backup copies. Workload-specific backup copies are derived from this class.", - "required": [ - "objectType" - ], + "IaaSVMContainer": { "type": "object", + "description": "IaaS VM workload-specific container.", "properties": { - "objectType": { - "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.", - "type": "string" + "virtualMachineId": { + "type": "string", + "description": "Fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container." + }, + "virtualMachineVersion": { + "type": "string", + "description": "Specifies whether the container represents a Classic or an Azure Resource Manager VM." + }, + "resourceGroup": { + "type": "string", + "description": "Resource group name of Recovery Services Vault." } }, - "discriminator": "objectType" + "allOf": [ + { + "$ref": "#/definitions/ProtectionContainer" + } + ], + "x-ms-discriminator-value": "IaasVMContainer" }, - "RecoveryPointDiskConfiguration": { - "description": "Disk configuration", + "IaaSVMProtectableItem": { "type": "object", + "description": "IaaS VM workload-specific backup item.", "properties": { - "numberOfDisksIncludedInBackup": { - "format": "int32", - "description": "Number of disks included in backup", - "type": "integer" - }, - "numberOfDisksAttachedToVm": { - "format": "int32", - "description": "Number of disks attached to the VM", - "type": "integer" + "virtualMachineId": { + "type": "string", + "description": "Fully qualified ARM ID of the virtual machine." }, - "includedDiskList": { - "description": "Information of disks included in backup", - "type": "array", - "items": { - "$ref": "#/definitions/DiskInformation" - }, - "x-ms-identifiers": [] + "virtualMachineVersion": { + "type": "string", + "description": "Specifies whether the container represents a Classic or an Azure Resource Manager VM." }, - "excludedDiskList": { - "description": "Information of disks excluded from backup", - "type": "array", - "items": { - "$ref": "#/definitions/DiskInformation" - }, - "x-ms-identifiers": [] + "resourceGroup": { + "type": "string", + "description": "Resource group name of Recovery Services Vault." } - } - }, - "RecoveryPointResource": { - "description": "Base class for backup copies. Workload-specific backup copies are derived from this class.", + }, "allOf": [ { - "$ref": "#/definitions/Resource" + "$ref": "#/definitions/WorkloadProtectableItem" } ], - "properties": { - "properties": { - "$ref": "#/definitions/RecoveryPoint", - "description": "RecoveryPointResource properties" - } - } + "x-ms-discriminator-value": "IaaSVMProtectableItem" }, - "RecoveryPointResourceList": { - "description": "List of RecoveryPoint resources", + "IaasVMBackupRequest": { "type": "object", + "description": "IaaS VM workload-specific backup request.", + "properties": { + "recoveryPointExpiryTimeInUTC": { + "type": "string", + "format": "date-time", + "description": "Backup copy will expire after the time specified (UTC)." + } + }, "allOf": [ { - "$ref": "#/definitions/ResourceList" + "$ref": "#/definitions/BackupRequest" } ], - "properties": { - "value": { - "description": "List of resources.", - "type": "array", - "items": { - "$ref": "#/definitions/RecoveryPointResource" - } - } - } + "x-ms-discriminator-value": "IaasVMBackupRequest" }, - "RecoveryPointTierInformation": { - "description": "Recovery point tier information.", + "IaasVMILRRegistrationRequest": { "type": "object", + "description": "Restore files/folders from a backup copy of IaaS VM.", "properties": { - "type": { - "description": "Recovery point tier type.", - "enum": [ - "Invalid", - "InstantRP", - "HardenedRP", - "ArchivedRP" - ], + "recoveryPointId": { "type": "string", - "x-ms-enum": { - "name": "RecoveryPointTierType", - "modelAsString": false - } + "description": "ID of the IaaS VM backup copy from where the files/folders have to be restored." }, - "status": { - "description": "Recovery point tier status.", - "enum": [ - "Invalid", - "Valid", - "Disabled", - "Deleted", - "Rehydrated" - ], + "virtualMachineId": { "type": "string", - "x-ms-enum": { - "name": "RecoveryPointTierStatus", - "modelAsString": false - } + "description": "Fully qualified ARM ID of the virtual machine whose the files / folders have to be restored." }, - "extendedInfo": { - "description": "Recovery point tier status.", - "type": "object", - "additionalProperties": { - "type": "string" - } + "initiatorName": { + "type": "string", + "description": "iSCSI initiator name." + }, + "renewExistingRegistration": { + "type": "boolean", + "description": "Whether to renew existing registration with the iSCSI server." } - } - }, - "RecoveryPointTierInformationV2": { - "description": "RecoveryPoint Tier Information V2", - "type": "object", + }, "allOf": [ { - "$ref": "#/definitions/RecoveryPointTierInformation" + "$ref": "#/definitions/ILRRequest" } ], + "x-ms-discriminator-value": "IaasVMILRRegistrationRequest" + }, + "IaasVMRecoveryPoint": { + "type": "object", + "description": "IaaS VM workload specific backup copy.", "properties": { - "type": { - "description": "Recovery point tier type.", - "enum": [ - "Invalid", - "InstantRP", - "HardenedRP", - "ArchivedRP" - ], + "recoveryPointType": { "type": "string", - "x-ms-enum": { - "name": "RecoveryPointTierType", - "modelAsString": true - } + "description": "Type of the backup copy." }, - "status": { - "description": "Recovery point tier status.", - "enum": [ - "Invalid", - "Valid", - "Disabled", - "Deleted", - "Rehydrated" - ], + "recoveryPointTime": { "type": "string", - "x-ms-enum": { - "name": "RecoveryPointTierStatus", - "modelAsString": true - } - } - } - }, - "Resource": { - "description": "ARM Resource.", - "type": "object", - "properties": { - "id": { - "description": "Resource Id represents the complete path to the resource.", + "format": "date-time", + "description": "Time at which this backup copy was created." + }, + "recoveryPointAdditionalInfo": { "type": "string", - "readOnly": true + "description": "Additional information associated with this backup copy." }, - "name": { - "description": "Resource name associated with the resource.", + "sourceVMStorageType": { "type": "string", - "readOnly": true + "description": "Storage type of the VM whose backup copy is created." }, - "type": { - "description": "Resource type represents the complete path of the form Namespace/ResourceType/ResourceType/...", + "isSourceVMEncrypted": { + "type": "boolean", + "description": "Identifies whether the VM was encrypted when the backup copy is created." + }, + "keyAndSecret": { + "$ref": "#/definitions/KeyAndSecretDetails", + "description": "Required details for recovering an encrypted VM. Applicable only when IsSourceVMEncrypted is true." + }, + "isInstantIlrSessionActive": { + "type": "boolean", + "description": "Is the session to recover items from this backup copy still active." + }, + "recoveryPointTierDetails": { + "type": "array", + "description": "Recovery point tier information.", + "items": { + "$ref": "#/definitions/RecoveryPointTierInformationV2" + }, + "x-ms-identifiers": [] + }, + "isManagedVirtualMachine": { + "type": "boolean", + "description": "Whether VM is with Managed Disks" + }, + "virtualMachineSize": { "type": "string", - "readOnly": true + "description": "Virtual Machine Size" }, - "location": { - "description": "Resource location.", - "type": "string" + "originalStorageAccountOption": { + "type": "boolean", + "description": "Original Storage Account Option" }, - "tags": { - "description": "Resource tags.", + "osType": { + "type": "string", + "description": "OS type" + }, + "recoveryPointDiskConfiguration": { + "$ref": "#/definitions/RecoveryPointDiskConfiguration", + "description": "Disk configuration" + }, + "zones": { + "type": "array", + "description": "Identifies the zone of the VM at the time of backup. Applicable only for zone-pinned Vms", + "items": { + "type": "string" + } + }, + "recoveryPointMoveReadinessInfo": { "type": "object", + "description": "Eligibility of RP to be moved to another tier", "additionalProperties": { - "type": "string" + "$ref": "#/definitions/RecoveryPointMoveReadinessInfo" } }, - "eTag": { - "description": "Optional ETag.", - "type": "string" + "securityType": { + "type": "string", + "description": "Security Type of the Disk" + }, + "recoveryPointProperties": { + "$ref": "#/definitions/RecoveryPointProperties", + "description": "Properties of Recovery Point" + }, + "isPrivateAccessEnabledOnAnyDisk": { + "type": "boolean", + "description": "This flag denotes if any of the disks in the VM are using Private access network setting" + }, + "extendedLocation": { + "$ref": "#/definitions/ExtendedLocation", + "description": "Extended location of the VM recovery point,\nshould be null if VM is in public cloud" } }, - "x-ms-azure-resource": true - }, - "ResourceList": { - "description": "Base for all lists of resources.", - "type": "object", - "properties": { - "nextLink": { - "description": "The URI to fetch the next page of resources, with each API call returning up to 200 resources per page. Use ListNext() to fetch the next page if the total number of resources exceeds 200.", - "type": "string" + "allOf": [ + { + "$ref": "#/definitions/RecoveryPoint" } - } + ], + "x-ms-discriminator-value": "IaasVMRecoveryPoint" }, - "RestoreFileSpecs": { - "description": "Restore file specs like file path, type and target folder path info.", + "IaasVMRestoreRequest": { "type": "object", + "description": "IaaS VM workload-specific restore.", "properties": { - "path": { - "description": "Source File/Folder path", - "type": "string" + "recoveryPointId": { + "type": "string", + "description": "ID of the backup copy to be recovered." }, - "fileSpecType": { - "description": "Indicates what the Path variable stands for", - "type": "string" + "recoveryType": { + "$ref": "#/definitions/RecoveryType", + "description": "Type of this recovery." }, - "targetFolderPath": { - "description": "Destination folder path in target FileShare", - "type": "string" - } - } - }, - "RestoreRequest": { - "description": "Base class for restore request. Workload-specific restore requests are derived from this class.", - "required": [ - "objectType" - ], - "type": "object", - "properties": { - "objectType": { - "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.", - "type": "string" + "sourceResourceId": { + "type": "string", + "description": "Fully qualified ARM ID of the VM which is being recovered." }, - "resourceGuardOperationRequests": { - "description": "ResourceGuardOperationRequests on which LAC check will be performed", + "targetVirtualMachineId": { + "type": "string", + "description": "This is the complete ARM Id of the VM that will be created.\nFor e.g. /subscriptions/{subId}/resourcegroups/{rg}/provider/Microsoft.Compute/virtualmachines/{vm}" + }, + "targetResourceGroupId": { + "type": "string", + "description": "This is the ARM Id of the resource group that you want to create for this Virtual machine and other artifacts.\nFor e.g. /subscriptions/{subId}/resourcegroups/{rg}" + }, + "storageAccountId": { + "type": "string", + "description": "Fully qualified ARM ID of the storage account to which the VM has to be restored." + }, + "virtualNetworkId": { + "type": "string", + "description": "This is the virtual network Id of the vnet that will be attached to the virtual machine.\nUser will be validated for join action permissions in the linked access." + }, + "subnetId": { + "type": "string", + "description": "Subnet ID, is the subnet ID associated with the to be restored VM. For Classic VMs it would be\n{VnetID}/Subnet/{SubnetName} and, for the Azure Resource Manager VMs it would be ARM resource ID used to represent\nthe subnet." + }, + "targetDomainNameId": { + "type": "string", + "description": "Fully qualified ARM ID of the domain name to be associated to the VM being restored. This applies only to Classic\nVirtual Machines." + }, + "region": { + "type": "string", + "description": "Region in which the virtual machine is restored." + }, + "affinityGroup": { + "type": "string", + "description": "Affinity group associated to VM to be restored. Used only for Classic Compute Virtual Machines." + }, + "createNewCloudService": { + "type": "boolean", + "description": "Should a new cloud service be created while restoring the VM. If this is false, VM will be restored to the same\ncloud service as it was at the time of backup." + }, + "originalStorageAccountOption": { + "type": "boolean", + "description": "Original Storage Account Option" + }, + "encryptionDetails": { + "$ref": "#/definitions/EncryptionDetails", + "description": "Details needed if the VM was encrypted at the time of backup." + }, + "restoreDiskLunList": { + "type": "array", + "description": "List of Disk LUNs for partial restore", + "items": { + "type": "integer", + "format": "int32" + } + }, + "restoreWithManagedDisks": { + "type": "boolean", + "description": "Flag to denote of an Unmanaged disk VM should be restored with Managed disks." + }, + "diskEncryptionSetId": { + "type": "string", + "description": "DiskEncryptionSet's ID - needed if the VM needs to be encrypted at rest during restore with customer managed key." + }, + "zones": { "type": "array", + "description": "Target zone where the VM and its disks should be restored.", "items": { "type": "string" } + }, + "identityInfo": { + "$ref": "#/definitions/IdentityInfo", + "description": "Managed Identity information required to access customer storage account." + }, + "identityBasedRestoreDetails": { + "$ref": "#/definitions/IdentityBasedRestoreDetails", + "description": "IaaS VM workload specific restore details for restores using managed identity." + }, + "extendedLocation": { + "$ref": "#/definitions/ExtendedLocation", + "description": "Target extended location where the VM should be restored,\nshould be null if restore is to be done in public cloud" + }, + "securedVMDetails": { + "$ref": "#/definitions/SecuredVMDetails", + "description": "Stores Secured VM Details" + }, + "targetDiskNetworkAccessSettings": { + "$ref": "#/definitions/TargetDiskNetworkAccessSettings", + "description": "Specifies target network access settings for disks of VM to be restored," } }, - "discriminator": "objectType" - }, - "RestoreRequestResource": { - "description": "Base class for restore request. Workload-specific restore requests are derived from this class.", "allOf": [ { - "$ref": "#/definitions/Resource" + "$ref": "#/definitions/RestoreRequest" } ], + "x-ms-discriminator-value": "IaasVMRestoreRequest" + }, + "IaasVMRestoreWithRehydrationRequest": { + "type": "object", + "description": "IaaS VM workload-specific restore with integrated rehydration of recovery point.", "properties": { - "properties": { - "$ref": "#/definitions/RestoreRequest", - "description": "RestoreRequestResource properties" + "recoveryPointRehydrationInfo": { + "$ref": "#/definitions/RecoveryPointRehydrationInfo", + "description": "RP Rehydration Info" + } + }, + "allOf": [ + { + "$ref": "#/definitions/IaasVMRestoreRequest" } + ], + "x-ms-discriminator-value": "IaasVMRestoreWithRehydrationRequest" + }, + "IaasVMSnapshotConsistencyType": { + "type": "string", + "enum": [ + "OnlyCrashConsistent" + ], + "x-ms-enum": { + "name": "IaasVMSnapshotConsistencyType", + "modelAsString": true, + "values": [ + { + "name": "OnlyCrashConsistent", + "value": "OnlyCrashConsistent" + } + ] } }, - "RetentionDuration": { - "description": "Retention duration.", + "IdentityBasedRestoreDetails": { "type": "object", + "description": "IaaS VM workload specific restore details for restores using managed identity", "properties": { - "count": { - "format": "int32", - "description": "Count of duration types. Retention duration is obtained by the counting the duration type Count times.\r\nFor example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks.", - "type": "integer" + "objectType": { + "type": "string", + "description": "Gets the class type." }, - "durationType": { - "description": "Retention duration type of retention policy.", - "enum": [ - "Invalid", - "Days", - "Weeks", - "Months", - "Years" - ], + "targetStorageAccountId": { "type": "string", - "x-ms-enum": { - "name": "RetentionDurationType", - "modelAsString": true - } + "description": "Fully qualified ARM ID of the target storage account." } } }, - "RetentionPolicy": { - "description": "Base class for retention policy.", - "required": [ - "retentionPolicyType" - ], + "IdentityInfo": { "type": "object", + "description": "Encapsulates Managed Identity related information", "properties": { - "retentionPolicyType": { - "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.", - "type": "string" + "isSystemAssignedIdentity": { + "type": "boolean", + "description": "To differentiate if the managed identity is system assigned or user assigned" + }, + "managedIdentityResourceId": { + "type": "string", + "description": "Managed Identity Resource Id\nOptional: Might not be required in the case of system assigned managed identity" } - }, - "discriminator": "retentionPolicyType" + } }, - "SchedulePolicy": { - "description": "Base class for backup schedule.", - "required": [ - "schedulePolicyType" + "InfrastructureEncryptionState": { + "type": "string", + "enum": [ + "Invalid", + "Disabled", + "Enabled" ], - "type": "object", - "properties": { - "schedulePolicyType": { - "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.", - "type": "string" - } - }, - "discriminator": "schedulePolicyType" + "x-ms-enum": { + "name": "InfrastructureEncryptionState", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Disabled", + "value": "Disabled" + }, + { + "name": "Enabled", + "value": "Enabled" + } + ] + } }, - "Settings": { - "description": "Common settings field for backup management", + "InquiryInfo": { "type": "object", + "description": "Details about inquired protectable items under a given container.", "properties": { - "timeZone": { - "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\".", - "type": "string" + "status": { + "type": "string", + "description": "Inquiry Status for this container such as\nInProgress | Failed | Succeeded" }, - "issqlcompression": { - "description": "SQL compression flag", - "type": "boolean" + "errorDetail": { + "$ref": "#/definitions/ErrorDetail", + "description": "Error Details if the Status is non-success." }, - "isCompression": { - "description": "Workload compression flag. This has been added so that 'isSqlCompression'\r\nwill be deprecated once clients upgrade to consider this flag.", - "type": "boolean" + "inquiryDetails": { + "type": "array", + "description": "Inquiry Details which will have workload specific details.\nFor e.g. - For SQL and oracle this will contain different details.", + "items": { + "$ref": "#/definitions/WorkloadInquiryDetails" + }, + "x-ms-identifiers": [] } } }, - "SimpleRetentionPolicy": { - "description": "Simple policy retention.", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/RetentionPolicy" - } + "InquiryStatus": { + "type": "string", + "description": "Status of protectable item, i.e. InProgress,Succeeded,Failed", + "enum": [ + "Invalid", + "Success", + "Failed" ], - "properties": { - "retentionDuration": { - "$ref": "#/definitions/RetentionDuration", - "description": "Retention duration of the protection policy." - } - }, - "x-ms-discriminator-value": "SimpleRetentionPolicy" + "x-ms-enum": { + "name": "InquiryStatus", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Success", + "value": "Success" + }, + { + "name": "Failed", + "value": "Failed" + } + ] + } }, - "SimpleSchedulePolicy": { - "description": "Simple policy schedule.", + "InquiryValidation": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/SchedulePolicy" - } - ], + "description": "Validation for inquired protectable items under a given container.", "properties": { - "scheduleRunFrequency": { - "description": "Frequency of the schedule operation of this policy.", - "enum": [ - "Invalid", - "Daily", - "Weekly", - "Hourly" - ], + "status": { "type": "string", - "x-ms-enum": { - "name": "ScheduleRunType", - "modelAsString": true - } - }, - "scheduleRunDays": { - "description": "List of days of week this schedule has to be run.", - "type": "array", - "items": { - "enum": [ - "Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday" - ], - "type": "string", - "x-ms-enum": { - "name": "DayOfWeek", - "modelAsString": false - } - } + "description": "Status for the Inquiry Validation." }, - "scheduleRunTimes": { - "description": "List of times of day this schedule has to be run.", - "type": "array", - "items": { - "format": "date-time", - "type": "string" - } + "errorDetail": { + "$ref": "#/definitions/ErrorDetail", + "description": "Error Detail in case the status is non-success." }, - "hourlySchedule": { - "$ref": "#/definitions/HourlySchedule", - "description": "Hourly Schedule of this Policy" + "additionalDetail": { + "type": "string", + "description": "Error Additional Detail in case the status is non-success.", + "readOnly": true }, - "scheduleWeeklyFrequency": { - "format": "int32", - "description": "At every number weeks this schedule has to be run.", - "type": "integer" + "protectableItemCount": { + "description": "Dictionary to store the count of ProtectableItems with key POType.", + "readOnly": true } - }, - "x-ms-discriminator-value": "SimpleSchedulePolicy" + } }, - "SimpleSchedulePolicyV2": { - "description": "The V2 policy schedule for IaaS that supports hourly backups.", + "InstantItemRecoveryTarget": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/SchedulePolicy" - } - ], + "description": "Target details for file / folder restore.", "properties": { - "scheduleRunFrequency": { - "description": "Frequency of the schedule operation of this policy.", - "enum": [ - "Invalid", - "Daily", - "Weekly", - "Hourly" - ], - "type": "string", - "x-ms-enum": { - "name": "ScheduleRunType", - "modelAsString": true - } - }, - "hourlySchedule": { - "$ref": "#/definitions/HourlySchedule", - "description": "hourly schedule of this policy" - }, - "dailySchedule": { - "$ref": "#/definitions/DailySchedule", - "description": "Daily schedule of this policy" - }, - "weeklySchedule": { - "$ref": "#/definitions/WeeklySchedule", - "description": "Weekly schedule of this policy" + "clientScripts": { + "type": "array", + "description": "List of client scripts.", + "items": { + "$ref": "#/definitions/ClientScriptForConnect" + }, + "x-ms-identifiers": [] } - }, - "x-ms-discriminator-value": "SimpleSchedulePolicyV2" + } }, - "SubProtectionPolicy": { - "description": "Sub-protection policy which includes schedule and retention", + "InstantRPAdditionalDetails": { "type": "object", "properties": { - "policyType": { - "description": "Type of backup policy type", - "enum": [ - "Invalid", - "Full", - "Differential", - "Log", - "CopyOnlyFull", - "Incremental", - "SnapshotFull", - "SnapshotCopyOnlyFull" - ], - "type": "string", - "x-ms-enum": { - "name": "PolicyType", - "modelAsString": true - } - }, - "schedulePolicy": { - "$ref": "#/definitions/SchedulePolicy", - "description": "Backup schedule specified as part of backup policy." - }, - "retentionPolicy": { - "$ref": "#/definitions/RetentionPolicy", - "description": "Retention policy with the details on backup copy retention ranges." - }, - "tieringPolicy": { - "description": "Tiering policy to automatically move RPs to another tier.\r\nKey is Target Tier, defined in RecoveryPointTierType enum.\r\nTiering policy specifies the criteria to move RP to the target tier.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/TieringPolicy" - } + "azureBackupRGNamePrefix": { + "type": "string" }, - "snapshotBackupAdditionalDetails": { - "$ref": "#/definitions/SnapshotBackupAdditionalDetails" + "azureBackupRGNameSuffix": { + "type": "string" } } }, - "SnapshotBackupAdditionalDetails": { - "description": "Snapshot Backup related fields for WorkloadType SaPHanaSystem", + "IntentItemType": { + "type": "string", + "description": "Type of workload this item represents", + "enum": [ + "Invalid", + "SQLInstance", + "SQLAvailabilityGroupContainer" + ], + "x-ms-enum": { + "name": "IntentItemType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "SQLInstance", + "value": "SQLInstance" + }, + { + "name": "SQLAvailabilityGroupContainer", + "value": "SQLAvailabilityGroupContainer" + } + ] + } + }, + "Job": { "type": "object", + "description": "Defines workload agnostic properties for a job.", "properties": { - "instantRpRetentionRangeInDays": { - "format": "int32", - "type": "integer" + "entityFriendlyName": { + "type": "string", + "description": "Friendly name of the entity on which the current job is executing." }, - "instantRPDetails": { - "type": "string" + "backupManagementType": { + "$ref": "#/definitions/BackupManagementType", + "description": "Backup management type to execute the current job." }, - "userAssignedManagedIdentityDetails": { - "$ref": "#/definitions/UserAssignedManagedIdentityDetails" + "operation": { + "type": "string", + "description": "The operation name." + }, + "status": { + "type": "string", + "description": "Job status." + }, + "startTime": { + "type": "string", + "format": "date-time", + "description": "The start time." + }, + "endTime": { + "type": "string", + "format": "date-time", + "description": "The end time." + }, + "activityId": { + "type": "string", + "description": "ActivityId of job." + }, + "jobType": { + "type": "string", + "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types." } + }, + "discriminator": "jobType", + "required": [ + "jobType" + ] + }, + "JobOperationType": { + "type": "string", + "description": "Type of operation.", + "enum": [ + "Invalid", + "Register", + "UnRegister", + "ConfigureBackup", + "Backup", + "Restore", + "DisableBackup", + "DeleteBackupData", + "CrossRegionRestore", + "Undelete", + "UpdateCustomerManagedKey" + ], + "x-ms-enum": { + "name": "JobOperationType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Register", + "value": "Register" + }, + { + "name": "UnRegister", + "value": "UnRegister" + }, + { + "name": "ConfigureBackup", + "value": "ConfigureBackup" + }, + { + "name": "Backup", + "value": "Backup" + }, + { + "name": "Restore", + "value": "Restore" + }, + { + "name": "DisableBackup", + "value": "DisableBackup" + }, + { + "name": "DeleteBackupData", + "value": "DeleteBackupData" + }, + { + "name": "CrossRegionRestore", + "value": "CrossRegionRestore" + }, + { + "name": "Undelete", + "value": "Undelete" + }, + { + "name": "UpdateCustomerManagedKey", + "value": "UpdateCustomerManagedKey" + } + ] } }, - "SnapshotRestoreParameters": { - "description": "Encapsulates information regarding snapshot recovery for SAP Hana", + "JobQueryObject": { "type": "object", + "description": "Filters to list the jobs.", "properties": { - "skipAttachAndMount": { - "type": "boolean" + "status": { + "$ref": "#/definitions/JobStatus", + "description": "Status of the job." }, - "logPointInTimeForDBRecovery": { - "type": "string" - } - } - }, - "SQLDataDirectory": { - "description": "SQLDataDirectory info", - "type": "object", - "properties": { - "type": { - "description": "Type of data directory mapping", - "enum": [ - "Invalid", - "Data", - "Log" - ], + "backupManagementType": { + "$ref": "#/definitions/BackupManagementType", + "description": "Type of backup management for the job." + }, + "operation": { + "$ref": "#/definitions/JobOperationType", + "description": "Type of operation." + }, + "jobId": { "type": "string", - "x-ms-enum": { - "name": "SQLDataDirectoryType", - "modelAsString": true - } + "description": "JobID represents the job uniquely." }, - "path": { - "description": "File path", - "type": "string" + "startTime": { + "type": "string", + "format": "date-time", + "description": "Job has started at this time. Value is in UTC." }, - "logicalName": { - "description": "Logical name of the file", - "type": "string" + "endTime": { + "type": "string", + "format": "date-time", + "description": "Job has ended at this time. Value is in UTC." } } }, - "SQLDataDirectoryMapping": { - "description": "Encapsulates information regarding data directory", + "JobResource": { "type": "object", + "description": "Defines workload agnostic properties for a job.", "properties": { - "mappingType": { - "description": "Type of data directory mapping", - "enum": [ - "Invalid", - "Data", - "Log" - ], - "type": "string", - "x-ms-enum": { - "name": "SQLDataDirectoryType", - "modelAsString": true - } + "properties": { + "$ref": "#/definitions/Job", + "description": "JobResource properties" }, - "sourceLogicalName": { - "description": "Restore source logical name path", - "type": "string" + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } }, - "sourcePath": { - "description": "Restore source path", - "type": "string" + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] }, - "targetPath": { - "description": "Target path", - "type": "string" + "eTag": { + "type": "string", + "description": "Optional ETag." } - } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" + } + ] }, - "TargetAFSRestoreInfo": { - "description": "Target Azure File Share Info.", + "JobResourceList": { "type": "object", + "description": "List of Job resources", "properties": { - "name": { - "description": "File share name", - "type": "string" - }, - "targetResourceId": { - "description": "Target file share resource ARM ID", - "type": "string" + "value": { + "type": "array", + "description": "List of resources.", + "items": { + "$ref": "#/definitions/JobResource" + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/ResourceList" } + ] + }, + "JobStatus": { + "type": "string", + "description": "Status of the job.", + "enum": [ + "Invalid", + "InProgress", + "Completed", + "Failed", + "CompletedWithWarnings", + "Cancelled", + "Cancelling" + ], + "x-ms-enum": { + "name": "JobStatus", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "InProgress", + "value": "InProgress" + }, + { + "name": "Completed", + "value": "Completed" + }, + { + "name": "Failed", + "value": "Failed" + }, + { + "name": "CompletedWithWarnings", + "value": "CompletedWithWarnings" + }, + { + "name": "Cancelled", + "value": "Cancelled" + }, + { + "name": "Cancelling", + "value": "Cancelling" + } + ] } }, - "TargetRestoreInfo": { - "description": "Details about target workload during restore operation.", + "JobSupportedAction": { + "type": "string", + "enum": [ + "Invalid", + "Cancellable", + "Retriable" + ], + "x-ms-enum": { + "name": "JobSupportedAction", + "modelAsString": false + } + }, + "KEKDetails": { "type": "object", + "description": "KEK is encryption key for BEK.", "properties": { - "overwriteOption": { - "description": "Can Overwrite if Target DataBase already exists", - "enum": [ - "Invalid", - "FailOnConflict", - "Overwrite" - ], + "keyUrl": { "type": "string", - "x-ms-enum": { - "name": "OverwriteOptions", - "modelAsString": true - } - }, - "containerId": { - "description": "Resource Id name of the container in which Target DataBase resides", - "type": "string" + "description": "Key is KEK." }, - "databaseName": { - "description": "Database name InstanceName/DataBaseName for SQL or System/DbName for SAP Hana", - "type": "string" + "keyVaultId": { + "type": "string", + "description": "Key Vault ID where this Key is stored." }, - "targetDirectoryForFileRestore": { - "description": "Target directory location for restore as files.", - "type": "string" + "keyBackupData": { + "type": "string", + "description": "KEK data." } } }, - "UserAssignedIdentityProperties": { + "KPIResourceHealthDetails": { "type": "object", - "description": "User assigned managed identity properties", + "description": "KPI Resource Health Details", "properties": { - "clientId": { - "description": "The client ID of the assigned identity.", - "type": "string" + "resourceHealthStatus": { + "$ref": "#/definitions/ResourceHealthStatus", + "description": "Resource Health Status" }, - "principalId": { - "description": "The principal ID of the assigned identity.", - "type": "string" + "resourceHealthDetails": { + "type": "array", + "description": "Resource Health Status", + "items": { + "$ref": "#/definitions/ResourceHealthDetails" + }, + "x-ms-identifiers": [ + "code" + ] } } }, - "UserAssignedManagedIdentityDetails": { + "KeyAndSecretDetails": { "type": "object", - "description": "User assigned managed identity details", + "description": "BEK is bitlocker key.\nKEK is encryption key for BEK\nIf the VM was encrypted then we will store following details :\n1. Secret(BEK) - Url + Backup Data + vaultId.\n2. Key(KEK) - Url + Backup Data + vaultId.\n3. EncryptionMechanism\nBEK and KEK can potentially have different vault ids.", "properties": { - "identityArmId": { - "type": "string", - "description": "The ARM id of the assigned identity." + "kekDetails": { + "$ref": "#/definitions/KEKDetails", + "description": "KEK is encryption key for BEK." }, - "identityName": { - "type": "string", - "description": "The name of the assigned identity." + "bekDetails": { + "$ref": "#/definitions/BEKDetails", + "description": "BEK is bitlocker encryption key." }, - "userAssignedIdentityProperties": { - "$ref": "#/definitions/UserAssignedIdentityProperties" + "encryptionMechanism": { + "type": "string", + "description": "Encryption mechanism: None/ SinglePass/ DoublePass" } } }, - "ValidateIaasVMRestoreOperationRequest": { - "description": "AzureRestoreValidation request.", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ValidateRestoreOperationRequest" - } - ], - "x-ms-discriminator-value": "ValidateIaasVMRestoreOperationRequest" - }, - "ValidateOperationRequest": { - "description": "Base class for validate operation request.", - "required": [ - "objectType" + "LastBackupStatus": { + "type": "string", + "description": "Last backup operation status. Possible values: Healthy, Unhealthy.", + "enum": [ + "Invalid", + "Healthy", + "Unhealthy", + "IRPending" ], - "type": "object", - "properties": { - "objectType": { - "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.", - "type": "string" - } - }, - "discriminator": "objectType" + "x-ms-enum": { + "name": "LastBackupStatus", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Healthy", + "value": "Healthy" + }, + { + "name": "Unhealthy", + "value": "Unhealthy" + }, + { + "name": "IRPending", + "value": "IRPending" + } + ] + } }, - "ValidateOperationRequestResource": { - "description": "Base class for validate operation request.", - "required": [ - "id", - "properties" + "LastUpdateStatus": { + "type": "string", + "enum": [ + "Invalid", + "NotEnabled", + "PartiallySucceeded", + "PartiallyFailed", + "Failed", + "Succeeded", + "Initialized", + "FirstInitialization" ], - "type": "object", - "properties": { - "id": { - "description": "Recovery point ID.", - "type": "string" - }, - "properties": { - "$ref": "#/definitions/ValidateOperationRequest", - "description": "ValidateOperationRequestResource properties" - } + "x-ms-enum": { + "name": "LastUpdateStatus", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "NotEnabled", + "value": "NotEnabled" + }, + { + "name": "PartiallySucceeded", + "value": "PartiallySucceeded" + }, + { + "name": "PartiallyFailed", + "value": "PartiallyFailed" + }, + { + "name": "Failed", + "value": "Failed" + }, + { + "name": "Succeeded", + "value": "Succeeded" + }, + { + "name": "Initialized", + "value": "Initialized" + }, + { + "name": "FirstInitialization", + "value": "FirstInitialization" + } + ] } }, - "ValidateOperationResponse": { - "description": "Base class for validate operation response.", + "ListRecoveryPointsRecommendedForMoveRequest": { "type": "object", + "description": "ListRecoveryPointsRecommendedForMoveRequest Request", "properties": { - "validationResults": { - "description": "Gets the validation result", + "objectType": { + "type": "string", + "description": "Gets the class type." + }, + "excludedRPList": { "type": "array", + "description": "List of Recovery Points excluded from Move", "items": { - "$ref": "#/definitions/ErrorDetail" - }, - "x-ms-identifiers": [ - "code" - ] + "type": "string" + } } } }, - "ValidateOperationsResponse": { + "LogSchedulePolicy": { "type": "object", + "description": "Log policy schedule.", "properties": { - "validateOperationResponse": { - "$ref": "#/definitions/ValidateOperationResponse" + "scheduleFrequencyInMins": { + "type": "integer", + "format": "int32", + "description": "Frequency of the log schedule operation of this policy in minutes." } - } - }, - "ValidateRestoreOperationRequest": { - "description": "AzureRestoreValidation request.", - "type": "object", + }, "allOf": [ { - "$ref": "#/definitions/ValidateOperationRequest" + "$ref": "#/definitions/SchedulePolicy" } ], + "x-ms-discriminator-value": "LogSchedulePolicy" + }, + "LongTermRetentionPolicy": { + "type": "object", + "description": "Long term retention policy.", "properties": { - "restoreRequest": { - "$ref": "#/definitions/RestoreRequest", - "description": "Sets restore request to be validated" + "dailySchedule": { + "$ref": "#/definitions/DailyRetentionSchedule", + "description": "Daily retention schedule of the protection policy." + }, + "weeklySchedule": { + "$ref": "#/definitions/WeeklyRetentionSchedule", + "description": "Weekly retention schedule of the protection policy." + }, + "monthlySchedule": { + "$ref": "#/definitions/MonthlyRetentionSchedule", + "description": "Monthly retention schedule of the protection policy." + }, + "yearlySchedule": { + "$ref": "#/definitions/YearlyRetentionSchedule", + "description": "Yearly retention schedule of the protection policy." } }, - "x-ms-discriminator-value": "ValidateRestoreOperationRequest" - }, - "VaultRetentionPolicy": { - "description": "Vault retention policy for AzureFileShare", - "required": [ - "vaultRetention", - "snapshotRetentionInDays" + "allOf": [ + { + "$ref": "#/definitions/RetentionPolicy" + } ], + "x-ms-discriminator-value": "LongTermRetentionPolicy" + }, + "LongTermSchedulePolicy": { "type": "object", - "properties": { - "vaultRetention": { - "$ref": "#/definitions/RetentionPolicy" - }, - "snapshotRetentionInDays": { - "format": "int32", - "type": "integer" + "description": "Long term policy schedule.", + "allOf": [ + { + "$ref": "#/definitions/SchedulePolicy" } - } + ], + "x-ms-discriminator-value": "LongTermSchedulePolicy" }, - "WeeklyRetentionFormat": { - "description": "Weekly retention format.", + "MABContainerHealthDetails": { "type": "object", + "description": "MAB workload-specific Health Details.", "properties": { - "daysOfTheWeek": { - "description": "List of days of the week.", - "type": "array", - "items": { - "enum": [ - "Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday" - ], - "type": "string", - "x-ms-enum": { - "name": "DayOfWeek", - "modelAsString": false - } - } + "code": { + "type": "integer", + "format": "int32", + "description": "Health Code" }, - "weeksOfTheMonth": { - "description": "List of weeks of month.", + "title": { + "type": "string", + "description": "Health Title" + }, + "message": { + "type": "string", + "description": "Health Message" + }, + "recommendations": { "type": "array", + "description": "Health Recommended Actions", "items": { - "enum": [ - "First", - "Second", - "Third", - "Fourth", - "Last", - "Invalid" - ], - "type": "string", - "x-ms-enum": { - "name": "WeekOfMonth", - "modelAsString": false - } + "type": "string" } } } }, - "WeeklyRetentionSchedule": { - "description": "Weekly retention schedule.", + "MabContainer": { "type": "object", + "description": "Container with items backed up using MAB backup engine.", "properties": { - "daysOfTheWeek": { - "description": "List of days of week for weekly retention policy.", - "type": "array", - "items": { - "enum": [ - "Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday" - ], - "type": "string", - "x-ms-enum": { - "name": "DayOfWeek", - "modelAsString": false - } - } + "canReRegister": { + "type": "boolean", + "description": "Can the container be registered one more time." }, - "retentionTimes": { - "description": "Retention times of retention policy.", + "containerId": { + "type": "integer", + "format": "int64", + "description": "ContainerID represents the container." + }, + "protectedItemCount": { + "type": "integer", + "format": "int64", + "description": "Number of items backed up in this container." + }, + "agentVersion": { + "type": "string", + "description": "Agent version of this container." + }, + "extendedInfo": { + "$ref": "#/definitions/MabContainerExtendedInfo", + "description": "Additional information for this container" + }, + "mabContainerHealthDetails": { "type": "array", + "description": "Health details on this mab container.", "items": { - "format": "date-time", - "type": "string" - } + "$ref": "#/definitions/MABContainerHealthDetails" + }, + "x-ms-identifiers": [ + "code" + ] }, - "retentionDuration": { - "$ref": "#/definitions/RetentionDuration", - "description": "Retention duration of retention Policy." + "containerHealthState": { + "type": "string", + "description": "Health state of mab container." } - } - }, - "BackupResourceVaultConfigResource": { - "description": "Backup resource vault config details.", + }, "allOf": [ { - "$ref": "#/definitions/Resource" + "$ref": "#/definitions/ProtectionContainer" } ], - "properties": { - "properties": { - "$ref": "#/definitions/BackupResourceVaultConfig", - "description": "BackupResourceVaultConfigResource properties" - } - } + "x-ms-discriminator-value": "Windows" }, - "BackupResourceVaultConfig": { - "description": "Backup resource vault config details.", + "MabContainerExtendedInfo": { "type": "object", + "description": "Additional information of the container.", "properties": { - "storageModelType": { - "description": "Storage type.", - "enum": [ - "Invalid", - "GeoRedundant", - "LocallyRedundant", - "ZoneRedundant", - "ReadAccessGeoZoneRedundant" - ], + "lastRefreshedAt": { "type": "string", - "x-ms-enum": { - "name": "StorageType", - "modelAsString": true - } + "format": "date-time", + "description": "Time stamp when this container was refreshed." }, - "storageType": { - "description": "Storage type.", - "enum": [ - "Invalid", - "GeoRedundant", - "LocallyRedundant", - "ZoneRedundant", - "ReadAccessGeoZoneRedundant" - ], - "type": "string", - "x-ms-enum": { - "name": "StorageType", - "modelAsString": true - } + "backupItemType": { + "$ref": "#/definitions/BackupItemType", + "description": "Type of backup items associated with this container." }, - "storageTypeState": { - "description": "Locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked.", - "enum": [ - "Invalid", - "Locked", - "Unlocked" - ], - "type": "string", - "x-ms-enum": { - "name": "StorageTypeState", - "modelAsString": true + "backupItems": { + "type": "array", + "description": "List of backup items associated with this container.", + "items": { + "type": "string" } }, - "enhancedSecurityState": { - "description": "Enabled or Disabled.", - "enum": [ - "Invalid", - "Enabled", - "Disabled" - ], + "policyName": { "type": "string", - "x-ms-enum": { - "name": "EnhancedSecurityState", - "modelAsString": true - } + "description": "Backup policy associated with this container." }, - "softDeleteFeatureState": { - "description": "Soft Delete feature state", - "enum": [ - "Invalid", - "Enabled", - "Disabled", - "AlwaysON" - ], + "lastBackupStatus": { "type": "string", - "x-ms-enum": { - "name": "SoftDeleteFeatureState", - "modelAsString": true - } - }, - "softDeleteRetentionPeriodInDays": { - "format": "int32", - "description": "Soft delete retention period in days", - "type": "integer" + "description": "Latest backup status of this container." + } + } + }, + "MabErrorInfo": { + "type": "object", + "description": "MAB workload-specific error information.", + "properties": { + "errorString": { + "type": "string", + "description": "Localized error string.", + "readOnly": true }, - "resourceGuardOperationRequests": { - "description": "ResourceGuard Operation Requests", + "recommendations": { "type": "array", + "description": "List of localized recommendations.", "items": { "type": "string" - } - }, - "isSoftDeleteFeatureStateEditable": { - "description": "This flag is no longer in use. Please use 'softDeleteFeatureState' to set the soft delete state for the vault", - "type": "boolean" + }, + "readOnly": true } } }, - "YearlyRetentionSchedule": { - "description": "Yearly retention schedule.", + "MabFileFolderProtectedItem": { "type": "object", + "description": "MAB workload-specific backup item.", "properties": { - "retentionScheduleFormatType": { - "description": "Retention schedule format for yearly retention policy.", - "enum": [ - "Invalid", - "Daily", - "Weekly" - ], + "friendlyName": { "type": "string", - "x-ms-enum": { - "name": "RetentionScheduleFormat", - "modelAsString": true - } + "description": "Friendly name of this backup item." }, - "monthsOfYear": { - "description": "List of months of year of yearly retention policy.", - "type": "array", - "items": { - "enum": [ - "Invalid", - "January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December" - ], - "type": "string", - "x-ms-enum": { - "name": "MonthOfYear", - "modelAsString": false - } - } + "computerName": { + "type": "string", + "description": "Name of the computer associated with this backup item." }, - "retentionScheduleDaily": { - "$ref": "#/definitions/DailyRetentionFormat", - "description": "Daily retention format for yearly retention policy." + "lastBackupStatus": { + "type": "string", + "description": "Status of last backup operation." }, - "retentionScheduleWeekly": { - "$ref": "#/definitions/WeeklyRetentionFormat", - "description": "Weekly retention format for yearly retention policy." + "lastBackupTime": { + "type": "string", + "format": "date-time", + "description": "Timestamp of the last backup operation on this backup item." }, - "retentionTimes": { - "description": "Retention times of retention policy.", - "type": "array", - "items": { - "format": "date-time", - "type": "string" - } + "protectionState": { + "type": "string", + "description": "Protected, ProtectionStopped, IRPending or ProtectionError" }, - "retentionDuration": { - "$ref": "#/definitions/RetentionDuration", - "description": "Retention duration of retention Policy." + "deferredDeleteSyncTimeInUTC": { + "type": "integer", + "format": "int64", + "description": "Sync time for deferred deletion in UTC" + }, + "extendedInfo": { + "$ref": "#/definitions/MabFileFolderProtectedItemExtendedInfo", + "description": "Additional information with this backup item." } - } - }, - "VaultJob": { - "description": "Vault level Job", - "type": "object", + }, "allOf": [ { - "$ref": "#/definitions/Job" + "$ref": "#/definitions/ProtectedItem" } ], + "x-ms-discriminator-value": "MabFileFolderProtectedItem" + }, + "MabFileFolderProtectedItemExtendedInfo": { + "type": "object", + "description": "Additional information on the backed up item.", + "properties": { + "lastRefreshedAt": { + "type": "string", + "format": "date-time", + "description": "Last time when the agent data synced to service." + }, + "oldestRecoveryPoint": { + "type": "string", + "format": "date-time", + "description": "The oldest backup copy available." + }, + "recoveryPointCount": { + "type": "integer", + "format": "int32", + "description": "Number of backup copies associated with the backup item." + } + } + }, + "MabJob": { + "type": "object", + "description": "MAB workload-specific job.", "properties": { "duration": { + "type": "string", "format": "duration", - "description": "Time elapsed during the execution of this job.", - "type": "string" + "description": "Time taken by job to run." }, "actionsInfo": { - "description": "Gets or sets the state/actions applicable on this job like cancel/retry.", "type": "array", + "description": "The state/actions applicable on jobs like cancel/retry.", "items": { - "enum": [ - "Invalid", - "Cancellable", - "Retriable" - ], - "type": "string", - "x-ms-enum": { - "name": "JobSupportedAction", - "modelAsString": false - } + "$ref": "#/definitions/JobSupportedAction" } }, + "mabServerName": { + "type": "string", + "description": "Name of server protecting the DS." + }, + "mabServerType": { + "$ref": "#/definitions/MabServerType", + "description": "Server type of MAB container." + }, + "workloadType": { + "$ref": "#/definitions/WorkloadType", + "description": "Workload type of backup item." + }, "errorDetails": { - "description": "Error details on execution of this job.", "type": "array", + "description": "The errors.", "items": { - "$ref": "#/definitions/VaultJobErrorInfo" + "$ref": "#/definitions/MabErrorInfo" }, - "x-ms-identifiers": [ - "errorCode" - ] + "x-ms-identifiers": [] }, "extendedInfo": { - "$ref": "#/definitions/VaultJobExtendedInfo", - "description": "Additional information about the job." + "$ref": "#/definitions/MabJobExtendedInfo", + "description": "Additional information on the job." } }, - "x-ms-discriminator-value": "VaultJob" + "allOf": [ + { + "$ref": "#/definitions/Job" + } + ], + "x-ms-discriminator-value": "MabJob" }, - "VaultJobErrorInfo": { - "description": "Vault Job specific error information", + "MabJobExtendedInfo": { "type": "object", + "description": "Additional information for the MAB workload-specific job.", "properties": { - "errorCode": { - "format": "int32", - "description": "Error code.", - "type": "integer" - }, - "errorString": { - "description": "Localized error string.", - "type": "string" - }, - "recommendations": { - "description": "List of localized recommendations for above error code.", + "tasksList": { "type": "array", + "description": "List of tasks for this job.", "items": { - "type": "string" - } - } - } - }, - "VaultJobExtendedInfo": { - "description": "Vault Job for CMK - has CMK specific info.", - "type": "object", - "properties": { + "$ref": "#/definitions/MabJobTaskDetails" + }, + "x-ms-identifiers": [ + "taskId" + ] + }, "propertyBag": { - "description": "Job properties.", "type": "object", + "description": "The job properties.", "additionalProperties": { "type": "string" } + }, + "dynamicErrorMessage": { + "type": "string", + "description": "Non localized error message specific to this job." } } }, - "AzureBackupServerContainer": { - "description": "AzureBackupServer (DPMVenus) workload-specific protection container.", + "MabJobTaskDetails": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/DpmContainer" + "description": "MAB workload-specific job task details.", + "properties": { + "taskId": { + "type": "string", + "description": "The task display name." + }, + "startTime": { + "type": "string", + "format": "date-time", + "description": "The start time." + }, + "endTime": { + "type": "string", + "format": "date-time", + "description": "The end time." + }, + "duration": { + "type": "string", + "format": "duration", + "description": "Time elapsed for task." + }, + "status": { + "type": "string", + "description": "The status." } - ], - "x-ms-discriminator-value": "AzureBackupServerContainer" + } }, - "AzureBackupServerEngine": { - "description": "Backup engine type when Azure Backup Server is used to manage the backups.", + "MabProtectionPolicy": { "type": "object", + "description": "Mab container-specific backup policy.", + "properties": { + "schedulePolicy": { + "$ref": "#/definitions/SchedulePolicy", + "description": "Backup schedule of backup policy." + }, + "retentionPolicy": { + "$ref": "#/definitions/RetentionPolicy", + "description": "Retention policy details." + } + }, "allOf": [ { - "$ref": "#/definitions/BackupEngineBase" + "$ref": "#/definitions/ProtectionPolicy" } ], - "x-ms-discriminator-value": "AzureBackupServerEngine" + "x-ms-discriminator-value": "MAB" }, - "AzureFileShareBackupRequest": { - "description": "AzureFileShare workload-specific backup request.", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/BackupRequest" - } + "MabServerType": { + "type": "string", + "description": "Server type of MAB container.", + "enum": [ + "Invalid", + "Unknown", + "IaasVMContainer", + "IaasVMServiceContainer", + "DPMContainer", + "AzureBackupServerContainer", + "MABContainer", + "Cluster", + "AzureSqlContainer", + "Windows", + "VCenter", + "VMAppContainer", + "SQLAGWorkLoadContainer", + "StorageContainer", + "GenericContainer" ], - "properties": { - "recoveryPointExpiryTimeInUTC": { - "format": "date-time", - "description": "Backup copy will expire after the time specified (UTC).", - "type": "string" - } - }, - "x-ms-discriminator-value": "AzureFileShareBackupRequest" + "x-ms-enum": { + "name": "MabServerType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Unknown", + "value": "Unknown" + }, + { + "name": "IaasVMContainer", + "value": "IaasVMContainer" + }, + { + "name": "IaasVMServiceContainer", + "value": "IaasVMServiceContainer" + }, + { + "name": "DPMContainer", + "value": "DPMContainer" + }, + { + "name": "AzureBackupServerContainer", + "value": "AzureBackupServerContainer" + }, + { + "name": "MABContainer", + "value": "MABContainer" + }, + { + "name": "Cluster", + "value": "Cluster" + }, + { + "name": "AzureSqlContainer", + "value": "AzureSqlContainer" + }, + { + "name": "Windows", + "value": "Windows" + }, + { + "name": "VCenter", + "value": "VCenter" + }, + { + "name": "VMAppContainer", + "value": "VMAppContainer" + }, + { + "name": "SQLAGWorkLoadContainer", + "value": "SQLAGWorkLoadContainer" + }, + { + "name": "StorageContainer", + "value": "StorageContainer" + }, + { + "name": "GenericContainer", + "value": "GenericContainer" + } + ] + } }, - "AzureFileShareProtectableItem": { - "description": "Protectable item for Azure Fileshare workloads.", + "MonthOfYear": { + "type": "string", + "enum": [ + "Invalid", + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ], + "x-ms-enum": { + "name": "MonthOfYear", + "modelAsString": false + } + }, + "MonthlyRetentionSchedule": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/WorkloadProtectableItem" - } - ], + "description": "Monthly retention schedule.", "properties": { - "parentContainerFabricId": { - "description": "Full Fabric ID of container to which this protectable item belongs. For example, ARM ID.", - "type": "string" + "retentionScheduleFormatType": { + "$ref": "#/definitions/RetentionScheduleFormat", + "description": "Retention schedule format type for monthly retention policy." }, - "parentContainerFriendlyName": { - "description": "Friendly name of container to which this protectable item belongs.", - "type": "string" + "retentionScheduleDaily": { + "$ref": "#/definitions/DailyRetentionFormat", + "description": "Daily retention format for monthly retention policy." }, - "azureFileShareType": { - "description": "File Share type XSync or XSMB.", - "enum": [ - "Invalid", - "XSMB", - "XSync" - ], - "type": "string", - "x-ms-enum": { - "name": "AzureFileShareType", - "modelAsString": true + "retentionScheduleWeekly": { + "$ref": "#/definitions/WeeklyRetentionFormat", + "description": "Weekly retention format for monthly retention policy." + }, + "retentionTimes": { + "type": "array", + "description": "Retention times of retention policy.", + "items": { + "type": "string", + "format": "date-time" } + }, + "retentionDuration": { + "$ref": "#/definitions/RetentionDuration", + "description": "Retention duration of retention Policy." } - }, - "x-ms-discriminator-value": "AzureFileShare" + } }, - "AzureFileShareProvisionILRRequest": { - "description": "Update snapshot Uri with the correct friendly Name of the source Azure file share.", + "MoveRPAcrossTiersRequest": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ILRRequest" - } - ], "properties": { - "recoveryPointId": { - "description": "Recovery point ID.", - "type": "string" + "objectType": { + "type": "string", + "description": "Gets the class type." }, - "sourceResourceId": { - "description": "Source Storage account ARM Id", - "type": "string" - } - }, - "x-ms-discriminator-value": "AzureFileShareProvisionILRRequest" - }, - "AzureIaaSClassicComputeVMContainer": { - "description": "IaaS VM workload-specific backup item representing a classic virtual machine.", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/IaaSVMContainer" - } - ], - "x-ms-discriminator-value": "Microsoft.ClassicCompute/virtualMachines" - }, - "AzureIaaSClassicComputeVMProtectableItem": { - "description": "IaaS VM workload-specific backup item representing the Classic Compute VM.", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/IaaSVMProtectableItem" + "sourceTierType": { + "$ref": "#/definitions/RecoveryPointTierType", + "description": "Source tier from where RP needs to be moved" + }, + "targetTierType": { + "$ref": "#/definitions/RecoveryPointTierType", + "description": "Target tier where RP needs to be moved" } - ], - "x-ms-discriminator-value": "Microsoft.ClassicCompute/virtualMachines" + } }, - "AzureIaaSComputeVMContainer": { - "description": "IaaS VM workload-specific backup item representing an Azure Resource Manager virtual machine.", + "NameInfo": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/IaaSVMContainer" + "description": "The name of usage.", + "properties": { + "value": { + "type": "string", + "description": "Value of usage." + }, + "localizedValue": { + "type": "string", + "description": "Localized value of usage." } - ], - "x-ms-discriminator-value": "Microsoft.Compute/virtualMachines" + } }, - "AzureIaaSComputeVMProtectableItem": { - "description": "IaaS VM workload-specific backup item representing the Azure Resource Manager VM.", + "OperationResultInfo": { "type": "object", + "description": "Operation result info.", + "properties": { + "jobList": { + "type": "array", + "description": "List of jobs created by this operation.", + "items": { + "type": "string" + } + } + }, "allOf": [ { - "$ref": "#/definitions/IaaSVMProtectableItem" + "$ref": "#/definitions/OperationResultInfoBase" } ], - "x-ms-discriminator-value": "Microsoft.Compute/virtualMachines" + "x-ms-discriminator-value": "OperationResultInfo" }, - "AzureSQLAGWorkloadContainerProtectionContainer": { - "description": "Container for SQL workloads under SQL Availability Group.", + "OperationResultInfoBase": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureWorkloadContainer" + "description": "Base class for operation result info.", + "properties": { + "objectType": { + "type": "string", + "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types." } - ], - "x-ms-discriminator-value": "SQLAGWorkLoadContainer" + }, + "discriminator": "objectType", + "required": [ + "objectType" + ] }, - "AzureSqlContainer": { - "description": "Azure Sql workload-specific container.", + "OperationResultInfoBaseResource": { "type": "object", + "description": "Base class for operation result info.", + "properties": { + "operation": { + "$ref": "#/definitions/OperationResultInfoBase", + "description": "OperationResultInfoBaseResource operation" + } + }, "allOf": [ { - "$ref": "#/definitions/ProtectionContainer" + "$ref": "#/definitions/OperationWorkerResponse" } - ], - "x-ms-discriminator-value": "AzureSqlContainer" + ] }, - "AzureStorageContainer": { - "description": "Azure Storage Account workload-specific container.", + "OperationStatus": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ProtectionContainer" - } - ], + "description": "Operation status.", "properties": { - "sourceResourceId": { - "description": "Fully qualified ARM url.", - "type": "string" - }, - "storageAccountVersion": { - "description": "Storage account version.", - "type": "string" + "id": { + "type": "string", + "description": "ID of the operation." }, - "resourceGroup": { - "description": "Resource group name of Recovery Services Vault.", - "type": "string" + "name": { + "type": "string", + "description": "Name of the operation." }, - "protectedItemCount": { - "format": "int64", - "description": "Number of items backed up in this container.", - "type": "integer" + "status": { + "$ref": "#/definitions/OperationStatusValues", + "description": "Operation status." }, - "acquireStorageAccountLock": { - "description": "Whether storage account lock is to be acquired for this container or not.", - "enum": [ - "Acquire", - "NotAcquire" - ], + "startTime": { "type": "string", - "x-ms-enum": { - "name": "AcquireStorageAccountLock", - "modelAsString": true - } + "format": "date-time", + "description": "Operation start time. Format: ISO-8601." }, - "operationType": { - "description": "Re-Do Operation", - "enum": [ - "Invalid", - "Register", - "Reregister", - "Rehydrate" - ], + "endTime": { "type": "string", - "x-ms-enum": { - "name": "OperationType", - "modelAsString": true - } + "format": "date-time", + "description": "Operation end time. Format: ISO-8601." + }, + "error": { + "$ref": "#/definitions/OperationStatusError", + "description": "Error information related to this operation." + }, + "properties": { + "$ref": "#/definitions/OperationStatusExtendedInfo", + "description": "Additional information associated with this operation." } - }, - "x-ms-discriminator-value": "StorageContainer" + } }, - "AzureStorageProtectableContainer": { - "description": "Azure Storage-specific protectable containers", + "OperationStatusError": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ProtectableContainer" + "description": "Error information associated with operation status call.", + "properties": { + "code": { + "type": "string", + "description": "Error code of the operation failure." + }, + "message": { + "type": "string", + "description": "Error message displayed if the operation failure." } - ], - "x-ms-discriminator-value": "StorageContainer" + } }, - "AzureVMAppContainerProtectableContainer": { - "description": "Azure workload-specific container", + "OperationStatusExtendedInfo": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ProtectableContainer" + "description": "Base class for additional information of operation status.", + "properties": { + "objectType": { + "type": "string", + "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types." } - ], - "x-ms-discriminator-value": "VMAppContainer" + }, + "discriminator": "objectType", + "required": [ + "objectType" + ] }, - "AzureVMAppContainerProtectionContainer": { - "description": "Container for SQL workloads under Azure Virtual Machines.", + "OperationStatusJobExtendedInfo": { "type": "object", + "description": "Operation status job extended info.", + "properties": { + "jobId": { + "type": "string", + "description": "ID of the job created for this protected item." + } + }, "allOf": [ { - "$ref": "#/definitions/AzureWorkloadContainer" + "$ref": "#/definitions/OperationStatusExtendedInfo" } ], - "x-ms-discriminator-value": "VMAppContainer" + "x-ms-discriminator-value": "OperationStatusJobExtendedInfo" }, - "AzureVmWorkloadItem": { - "description": "Azure VM workload-specific workload item.", + "OperationStatusJobsExtendedInfo": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/WorkloadItem" - } - ], + "description": "Operation status extended info for list of jobs.", "properties": { - "parentName": { - "description": "Name for instance or AG", - "type": "string" - }, - "serverName": { - "description": "Host/Cluster Name for instance or AG", - "type": "string" - }, - "isAutoProtectable": { - "description": "Indicates if workload item is auto-protectable", - "type": "boolean" - }, - "subinquireditemcount": { - "format": "int32", - "description": "For instance or AG, indicates number of DB's present", - "type": "integer" + "jobIds": { + "type": "array", + "description": "IDs of the jobs created for the protected item.", + "items": { + "type": "string" + } }, - "subWorkloadItemCount": { - "format": "int32", - "description": "For instance or AG, indicates number of DB's to be protected", - "type": "integer" + "failedJobsError": { + "type": "object", + "description": "Stores all the failed jobs along with the corresponding error codes.", + "additionalProperties": { + "type": "string" + } } }, - "x-ms-discriminator-value": "AzureVmWorkloadItem" - }, - "AzureVmWorkloadProtectableItem": { - "description": "Azure VM workload-specific protectable item.", - "type": "object", "allOf": [ { - "$ref": "#/definitions/WorkloadProtectableItem" + "$ref": "#/definitions/OperationStatusExtendedInfo" } ], + "x-ms-discriminator-value": "OperationStatusJobsExtendedInfo" + }, + "OperationStatusProvisionILRExtendedInfo": { + "type": "object", + "description": "Operation status extended info for ILR provision action.", "properties": { - "parentName": { - "description": "Name for instance or AG", - "type": "string" - }, - "parentUniqueName": { - "description": "Parent Unique Name is added to provide the service formatted URI Name of the Parent\r\nOnly Applicable for data bases where the parent would be either Instance or a SQL AG.", - "type": "string" - }, - "serverName": { - "description": "Host/Cluster Name for instance or AG", - "type": "string" - }, - "isAutoProtectable": { - "description": "Indicates if protectable item is auto-protectable", - "type": "boolean" - }, - "isAutoProtected": { - "description": "Indicates if protectable item is auto-protected", - "type": "boolean" - }, - "subinquireditemcount": { - "format": "int32", - "description": "For instance or AG, indicates number of DB's present", - "type": "integer" - }, - "subprotectableitemcount": { - "format": "int32", - "description": "For instance or AG, indicates number of DB's to be protected", - "type": "integer" - }, - "prebackupvalidation": { - "$ref": "#/definitions/PreBackupValidation", - "description": "Pre-backup validation for protectable objects" - }, - "isProtectable": { - "description": "Indicates if item is protectable", - "type": "boolean" + "recoveryTarget": { + "$ref": "#/definitions/InstantItemRecoveryTarget", + "description": "Target details for file / folder restore." } }, - "x-ms-discriminator-value": "AzureVmWorkloadProtectableItem" - }, - "AzureVmWorkloadSAPAseDatabaseProtectableItem": { - "description": "Azure VM workload-specific protectable item representing SAP ASE Database.", - "type": "object", "allOf": [ { - "$ref": "#/definitions/AzureVmWorkloadProtectableItem" + "$ref": "#/definitions/OperationStatusExtendedInfo" } ], - "x-ms-discriminator-value": "SAPAseDatabase" + "x-ms-discriminator-value": "OperationStatusProvisionILRExtendedInfo" }, - "AzureVmWorkloadSAPAseDatabaseWorkloadItem": { - "description": "Azure VM workload-specific workload item representing SAP ASE Database.", + "OperationStatusValidateOperationExtendedInfo": { "type": "object", + "description": "Operation status extended info for ValidateOperation action.", + "properties": { + "validateOperationResponse": { + "$ref": "#/definitions/ValidateOperationResponse", + "description": "Gets the validation operation response" + } + }, "allOf": [ { - "$ref": "#/definitions/AzureVmWorkloadItem" + "$ref": "#/definitions/OperationStatusExtendedInfo" } ], - "x-ms-discriminator-value": "SAPAseDatabase" + "x-ms-discriminator-value": "OperationStatusValidateOperationExtendedInfo" }, - "AzureVmWorkloadSAPAseSystemProtectableItem": { - "description": "Azure VM workload-specific protectable item representing SAP ASE System.", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureVmWorkloadProtectableItem" - } + "OperationStatusValues": { + "type": "string", + "description": "Operation status.", + "enum": [ + "Invalid", + "InProgress", + "Succeeded", + "Failed", + "Canceled" ], - "x-ms-discriminator-value": "SAPAseSystem" + "x-ms-enum": { + "name": "OperationStatusValues", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "InProgress", + "value": "InProgress" + }, + { + "name": "Succeeded", + "value": "Succeeded" + }, + { + "name": "Failed", + "value": "Failed" + }, + { + "name": "Canceled", + "value": "Canceled" + } + ] + } }, - "AzureVmWorkloadSAPAseSystemWorkloadItem": { - "description": "Azure VM workload-specific workload item representing SAP ASE System.", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureVmWorkloadItem" - } + "OperationType": { + "type": "string", + "description": "Re-Do Operation", + "enum": [ + "Invalid", + "Register", + "Reregister", + "Rehydrate" ], - "x-ms-discriminator-value": "SAPAseSystem" + "x-ms-enum": { + "name": "OperationType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Register", + "value": "Register" + }, + { + "name": "Reregister", + "value": "Reregister" + }, + { + "name": "Rehydrate", + "value": "Rehydrate" + } + ] + } }, - "AzureVmWorkloadSAPHanaDatabaseProtectableItem": { - "description": "Azure VM workload-specific protectable item representing SAP HANA Database.", + "OperationWorkerResponse": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureVmWorkloadProtectableItem" + "description": "This is the base class for operation result responses.", + "properties": { + "statusCode": { + "$ref": "#/definitions/HttpStatusCode", + "description": "HTTP Status Code of the operation." + }, + "headers": { + "type": "object", + "description": "HTTP headers associated with this operation.", + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + } } - ], - "x-ms-discriminator-value": "SAPHanaDatabase" + } }, - "AzureVmWorkloadSAPHanaDatabaseWorkloadItem": { - "description": "Azure VM workload-specific workload item representing SAP HANA Database.", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureVmWorkloadItem" - } + "OverwriteOptions": { + "type": "string", + "description": "Can Overwrite if Target DataBase already exists", + "enum": [ + "Invalid", + "FailOnConflict", + "Overwrite" ], - "x-ms-discriminator-value": "SAPHanaDatabase" + "x-ms-enum": { + "name": "OverwriteOptions", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "FailOnConflict", + "value": "FailOnConflict" + }, + { + "name": "Overwrite", + "value": "Overwrite" + } + ] + } }, - "AzureVmWorkloadSAPHanaSystemProtectableItem": { - "description": "Azure VM workload-specific protectable item representing SAP HANA System.", + "PointInTimeRange": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureVmWorkloadProtectableItem" + "description": "Provides details for log ranges", + "properties": { + "startTime": { + "type": "string", + "format": "date-time", + "description": "Start time of the time range for log recovery." + }, + "endTime": { + "type": "string", + "format": "date-time", + "description": "End time of the time range for log recovery." } + } + }, + "PolicyType": { + "type": "string", + "description": "Type of backup policy type", + "enum": [ + "Invalid", + "Full", + "Differential", + "Log", + "CopyOnlyFull", + "Incremental", + "SnapshotFull", + "SnapshotCopyOnlyFull" ], - "x-ms-discriminator-value": "SAPHanaSystem" + "x-ms-enum": { + "name": "PolicyType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Full", + "value": "Full" + }, + { + "name": "Differential", + "value": "Differential" + }, + { + "name": "Log", + "value": "Log" + }, + { + "name": "CopyOnlyFull", + "value": "CopyOnlyFull" + }, + { + "name": "Incremental", + "value": "Incremental" + }, + { + "name": "SnapshotFull", + "value": "SnapshotFull" + }, + { + "name": "SnapshotCopyOnlyFull", + "value": "SnapshotCopyOnlyFull" + } + ] + } }, - "AzureVmWorkloadSAPHanaDBInstance": { - "description": "Azure VM workload-specific protectable item representing SAP HANA Dbinstance.", + "PreBackupValidation": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureVmWorkloadProtectableItem" + "description": "Pre-backup validation for Azure VM Workload provider.", + "properties": { + "status": { + "$ref": "#/definitions/InquiryStatus", + "description": "Status of protectable item, i.e. InProgress,Succeeded,Failed" + }, + "code": { + "type": "string", + "description": "Error code of protectable item" + }, + "message": { + "type": "string", + "description": "Message corresponding to the error code for the protectable item" } - ], - "x-ms-discriminator-value": "SAPHanaDBInstance" + } }, - "AzureVmWorkloadSAPHanaHSRProtectableItem": { - "description": "Azure VM workload-specific protectable item representing HANA HSR.", + "PreValidateEnableBackupRequest": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureVmWorkloadProtectableItem" + "description": "Contract to validate if backup can be enabled on the given resource in a given vault and given configuration.\nIt will validate followings\n1. Vault capacity\n2. VM is already protected\n3. Any VM related configuration passed in properties.", + "properties": { + "resourceType": { + "$ref": "#/definitions/DataSourceType", + "description": "ProtectedItem Type- VM, SqlDataBase, AzureFileShare etc" + }, + "resourceId": { + "type": "string", + "description": "ARM Virtual Machine Id" + }, + "vaultId": { + "type": "string", + "description": "ARM id of the Recovery Services Vault" + }, + "properties": { + "type": "string", + "description": "Configuration of VM if any needs to be validated like OS type etc" } - ], - "x-ms-discriminator-value": "HanaHSRContainer" + } }, - "AzureVmWorkloadSAPHanaSystemWorkloadItem": { - "description": "Azure VM workload-specific workload item representing SAP HANA System.", + "PreValidateEnableBackupResponse": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureVmWorkloadItem" + "description": "Response contract for enable backup validation request", + "properties": { + "status": { + "$ref": "#/definitions/ValidationStatus", + "description": "Validation Status" + }, + "errorCode": { + "type": "string", + "description": "Response error code" + }, + "errorMessage": { + "type": "string", + "description": "Response error message" + }, + "recommendation": { + "type": "string", + "description": "Recommended action for user" + }, + "containerName": { + "type": "string", + "description": "Specifies the product specific container name. E.g. iaasvmcontainer;iaasvmcontainer;rgname;vmname. This is required\nfor portal" + }, + "protectedItemName": { + "type": "string", + "description": "Specifies the product specific ds name. E.g. vm;iaasvmcontainer;rgname;vmname. This is required for portal" } - ], - "x-ms-discriminator-value": "SAPHanaSystem" + } }, - "AzureVmWorkloadSQLAvailabilityGroupProtectableItem": { - "description": "Azure VM workload-specific protectable item representing SQL Availability Group.", + "PrepareDataMoveRequest": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureVmWorkloadProtectableItem" - } - ], + "description": "Prepare DataMove Request", "properties": { - "nodesList": { - "description": "List of the nodes in case of distributed container.", + "targetResourceId": { + "type": "string", + "description": "ARM Id of target vault" + }, + "targetRegion": { + "type": "string", + "description": "Target Region" + }, + "dataMoveLevel": { + "$ref": "#/definitions/DataMoveLevel", + "description": "DataMove Level" + }, + "sourceContainerArmIds": { "type": "array", + "description": "Source Container ArmIds\nThis needs to be populated only if DataMoveLevel is set to container", "items": { - "$ref": "#/definitions/DistributedNodesInfo" - }, - "x-ms-identifiers": [] + "type": "string" + } + }, + "ignoreMoved": { + "type": "boolean", + "description": "Ignore the artifacts which are already moved." } }, - "x-ms-discriminator-value": "SQLAvailabilityGroupContainer" + "required": [ + "targetResourceId", + "targetRegion", + "dataMoveLevel" + ] }, - "AzureVmWorkloadSQLDatabaseProtectableItem": { - "description": "Azure VM workload-specific protectable item representing SQL Database.", + "PrepareDataMoveResponse": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureVmWorkloadProtectableItem" + "description": "Prepare DataMove Response", + "properties": { + "correlationId": { + "type": "string", + "description": "Co-relationId for move operation" + }, + "sourceVaultProperties": { + "type": "object", + "description": "Source Vault Properties", + "additionalProperties": { + "type": "string" + } } - ], - "x-ms-discriminator-value": "SQLDataBase" - }, - "AzureVmWorkloadSQLDatabaseWorkloadItem": { - "description": "Azure VM workload-specific workload item representing SQL Database.", - "type": "object", + }, "allOf": [ { - "$ref": "#/definitions/AzureVmWorkloadItem" + "$ref": "#/definitions/VaultStorageConfigOperationResultResponse" } ], - "x-ms-discriminator-value": "SQLDataBase" + "x-ms-discriminator-value": "PrepareDataMoveResponse" }, - "AzureVmWorkloadSQLInstanceProtectableItem": { - "description": "Azure VM workload-specific protectable item representing SQL Instance.", + "PrivateEndpoint": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureVmWorkloadProtectableItem" + "description": "The Private Endpoint network resource that is linked to the Private Endpoint connection", + "properties": { + "id": { + "type": "string", + "description": "Gets or sets id" } - ], - "x-ms-discriminator-value": "SQLInstance" + } }, - "AzureVmWorkloadSQLInstanceWorkloadItem": { - "description": "Azure VM workload-specific workload item representing SQL Instance.", + "PrivateEndpointConnection": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureVmWorkloadItem" - } - ], + "description": "Private Endpoint Connection Response Properties", "properties": { - "dataDirectoryPaths": { - "description": "Data Directory Paths for default directories", + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Gets or sets provisioning state of the private endpoint connection" + }, + "privateEndpoint": { + "$ref": "#/definitions/PrivateEndpoint", + "description": "Gets or sets private endpoint associated with the private endpoint connection" + }, + "groupIds": { "type": "array", + "description": "Group Ids for the Private Endpoint", "items": { - "$ref": "#/definitions/SQLDataDirectory" - }, - "x-ms-identifiers": [] + "$ref": "#/definitions/VaultSubResourceType" + } + }, + "privateLinkServiceConnectionState": { + "$ref": "#/definitions/PrivateLinkServiceConnectionState", + "description": "Gets or sets private link service connection state" } - }, - "x-ms-discriminator-value": "SQLInstance" + } }, - "AzureWorkloadBackupRequest": { - "description": "AzureWorkload workload-specific backup request.", + "PrivateEndpointConnectionResource": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/BackupRequest" - } - ], + "description": "Private Endpoint Connection Response Properties", "properties": { - "backupType": { - "description": "Type of backup, viz. Full, Differential, Log or CopyOnlyFull", - "enum": [ - "Invalid", - "Full", - "Differential", - "Log", - "CopyOnlyFull", - "Incremental", - "SnapshotFull", - "SnapshotCopyOnlyFull" - ], - "type": "string", - "x-ms-enum": { - "name": "backupType", - "modelAsString": true + "properties": { + "$ref": "#/definitions/PrivateEndpointConnection", + "description": "PrivateEndpointConnectionResource properties" + }, + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" } }, - "enableCompression": { - "description": "Bool for Compression setting", - "type": "boolean" + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] }, - "recoveryPointExpiryTimeInUTC": { - "format": "date-time", - "description": "Backup copy will expire after the time specified (UTC).", - "type": "string" + "eTag": { + "type": "string", + "description": "Optional ETag." } }, - "x-ms-discriminator-value": "AzureWorkloadBackupRequest" - }, - "AzureBackupGoalFeatureSupportRequest": { - "description": "Azure backup goal feature specific request.", - "type": "object", "allOf": [ { - "$ref": "#/definitions/FeatureSupportRequest" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" } - ], - "x-ms-discriminator-value": "AzureBackupGoals" + ] }, - "AzureRecoveryServiceVaultProtectionIntent": { - "description": "Azure Recovery Services Vault specific protection intent item.", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ProtectionIntent" - } + "PrivateEndpointConnectionStatus": { + "type": "string", + "description": "Gets or sets the status", + "enum": [ + "Pending", + "Approved", + "Rejected", + "Disconnected" ], - "x-ms-discriminator-value": "RecoveryServiceVaultItem" + "x-ms-enum": { + "name": "PrivateEndpointConnectionStatus", + "modelAsString": true, + "values": [ + { + "name": "Pending", + "value": "Pending" + }, + { + "name": "Approved", + "value": "Approved" + }, + { + "name": "Rejected", + "value": "Rejected" + }, + { + "name": "Disconnected", + "value": "Disconnected" + } + ] + } }, - "AzureResourceProtectionIntent": { - "description": "IaaS VM specific backup protection intent item.", + "PrivateLinkServiceConnectionState": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ProtectionIntent" - } - ], + "description": "Private Link Service Connection State", "properties": { - "friendlyName": { - "description": "Friendly name of the VM represented by this backup item.", - "type": "string" + "status": { + "$ref": "#/definitions/PrivateEndpointConnectionStatus", + "description": "Gets or sets the status" + }, + "description": { + "type": "string", + "description": "Gets or sets description" + }, + "actionsRequired": { + "type": "string", + "description": "Gets or sets actions required" } - }, - "x-ms-discriminator-value": "AzureResourceItem" + } }, - "AzureVMResourceFeatureSupportRequest": { - "description": "AzureResource(IaaS VM) Specific feature support request", + "ProtectableContainer": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/FeatureSupportRequest" - } - ], + "description": "Protectable Container Class.", "properties": { - "vmSize": { - "description": "Size of the resource: VM size(A/D series etc) in case of IaasVM", - "type": "string" + "friendlyName": { + "type": "string", + "description": "Friendly name of the container." }, - "vmSku": { - "description": "SKUs (Premium/Managed etc) in case of IaasVM", - "type": "string" + "backupManagementType": { + "$ref": "#/definitions/BackupManagementType", + "description": "Type of backup management for the container." + }, + "protectableContainerType": { + "$ref": "#/definitions/ProtectableContainerType", + "description": "Type of the container. The value of this property for\n1. Compute Azure VM is Microsoft.Compute/virtualMachines\n2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines" + }, + "healthStatus": { + "type": "string", + "description": "Status of health of the container." + }, + "containerId": { + "type": "string", + "description": "Fabric Id of the container such as ARM Id." } }, - "x-ms-discriminator-value": "AzureVMResourceBackup" + "discriminator": "protectableContainerType", + "required": [ + "protectableContainerType" + ] }, - "AzureVMResourceFeatureSupportResponse": { - "description": "Response for feature support requests for Azure IaasVm", + "ProtectableContainerResource": { "type": "object", + "description": "Protectable Container Class.", "properties": { - "supportStatus": { - "description": "Support status of feature", - "enum": [ - "Invalid", - "Supported", - "DefaultOFF", - "DefaultON", - "NotSupported" - ], + "location": { "type": "string", - "x-ms-enum": { - "name": "SupportStatus", - "modelAsString": true + "description": "Resource location." + }, + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" } + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "properties": { + "$ref": "#/definitions/ProtectableContainer", + "description": "ProtectableContainerResource properties" } - } - }, - "AzureWorkloadContainerAutoProtectionIntent": { - "description": "Azure workload specific protection intent item.", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ProtectionIntent" - } - ], - "x-ms-discriminator-value": "AzureWorkloadContainerAutoProtectionIntent" - }, - "AzureWorkloadAutoProtectionIntent": { - "description": "Azure Recovery Services Vault specific protection intent item.", - "type": "object", + }, "allOf": [ { - "$ref": "#/definitions/AzureRecoveryServiceVaultProtectionIntent" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" } - ], - "x-ms-discriminator-value": "AzureWorkloadAutoProtectionIntent" + ] }, - "AzureWorkloadSQLAutoProtectionIntent": { - "description": "Azure Workload SQL Auto Protection intent item.", + "ProtectableContainerResourceList": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureWorkloadAutoProtectionIntent" - } - ], + "description": "List of ProtectableContainer resources", "properties": { - "workloadItemType": { - "description": "Workload item type of the item for which intent is to be set", - "enum": [ - "Invalid", - "SQLInstance", - "SQLDataBase", - "SAPHanaSystem", - "SAPHanaDatabase", - "SAPAseSystem", - "SAPAseDatabase", - "SAPHanaDBInstance" - ], - "type": "string", - "x-ms-enum": { - "name": "WorkloadItemType", - "modelAsString": true + "value": { + "type": "array", + "description": "List of resources.", + "items": { + "$ref": "#/definitions/ProtectableContainerResource" } } }, - "x-ms-discriminator-value": "AzureWorkloadSQLAutoProtectionIntent" + "allOf": [ + { + "$ref": "#/definitions/ResourceList" + } + ] }, - "BackupManagementUsage": { - "description": "Backup management usages of a vault.", + "ProtectableContainerType": { + "type": "string", + "description": "Type of the container. The value of this property for\n1. Compute Azure VM is Microsoft.Compute/virtualMachines\n2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines", + "enum": [ + "Invalid", + "Unknown", + "IaasVMContainer", + "IaasVMServiceContainer", + "DPMContainer", + "AzureBackupServerContainer", + "MABContainer", + "Cluster", + "AzureSqlContainer", + "Windows", + "VCenter", + "VMAppContainer", + "SQLAGWorkLoadContainer", + "StorageContainer", + "GenericContainer", + "Microsoft.ClassicCompute/virtualMachines", + "Microsoft.Compute/virtualMachines", + "AzureWorkloadContainer" + ], + "x-ms-enum": { + "name": "ProtectableContainerType", + "modelAsString": false + } + }, + "ProtectedItem": { "type": "object", + "description": "Base class for backup items.", "properties": { - "unit": { - "description": "Unit of the usage.", - "enum": [ - "Count", - "Bytes", - "Seconds", - "Percent", - "CountPerSecond", - "BytesPerSecond" - ], + "protectedItemType": { "type": "string", - "x-ms-enum": { - "name": "UsagesUnit", - "modelAsString": true - } + "description": "backup item type." }, - "quotaPeriod": { - "description": "Quota period of usage.", - "type": "string" + "backupManagementType": { + "$ref": "#/definitions/BackupManagementType", + "description": "Type of backup management for the backed up item.", + "readOnly": true }, - "nextResetTime": { + "workloadType": { + "$ref": "#/definitions/DataSourceType", + "description": "Type of workload this item represents.", + "readOnly": true + }, + "containerName": { + "type": "string", + "description": "Unique name of container" + }, + "sourceResourceId": { + "type": "string", + "description": "ARM ID of the resource to be backed up." + }, + "policyId": { + "type": "string", + "description": "ID of the backup policy with which this item is backed up." + }, + "lastRecoveryPoint": { + "type": "string", "format": "date-time", - "description": "Next reset time of usage.", - "type": "string" + "description": "Timestamp when the last (latest) backup copy was created for this backup item." }, - "currentValue": { - "format": "int64", - "description": "Current value of usage.", - "type": "integer" + "backupSetName": { + "type": "string", + "description": "Name of the backup set the backup item belongs to" }, - "limit": { - "format": "int64", - "description": "Limit of usage.", - "type": "integer" + "createMode": { + "$ref": "#/definitions/CreateMode", + "description": "Create mode to indicate recovery of existing soft deleted data source or creation of new data source." }, - "name": { - "$ref": "#/definitions/NameInfo", - "description": "Name of usage." - } - } - }, - "BackupManagementUsageList": { - "description": "Backup management usage for vault.", - "type": "object", - "properties": { - "value": { - "description": "The list of backup management usages for the given vault.", + "deferredDeleteTimeInUTC": { + "type": "string", + "format": "date-time", + "description": "Time for deferred deletion in UTC" + }, + "isScheduledForDeferredDelete": { + "type": "boolean", + "description": "Flag to identify whether the DS is scheduled for deferred delete" + }, + "deferredDeleteTimeRemaining": { + "type": "string", + "description": "Time remaining before the DS marked for deferred delete is permanently deleted" + }, + "isDeferredDeleteScheduleUpcoming": { + "type": "boolean", + "description": "Flag to identify whether the deferred deleted DS is to be purged soon" + }, + "isRehydrate": { + "type": "boolean", + "description": "Flag to identify that deferred deleted DS is to be moved into Pause state" + }, + "resourceGuardOperationRequests": { "type": "array", + "description": "ResourceGuardOperationRequests on which LAC check will be performed", "items": { - "$ref": "#/definitions/BackupManagementUsage" - }, - "x-ms-identifiers": [] - } - } - }, - "BackupStatusRequest": { - "description": "BackupStatus request.", - "type": "object", - "properties": { - "resourceType": { - "description": "Container Type - VM, SQLPaaS, DPM, AzureFileShare...", - "enum": [ - "Invalid", - "VM", - "FileFolder", - "AzureSqlDb", - "SQLDB", - "Exchange", - "Sharepoint", - "VMwareVM", - "SystemState", - "Client", - "GenericDataSource", - "SQLDataBase", - "AzureFileShare", - "SAPHanaDatabase", - "SAPAseDatabase", - "SAPHanaDBInstance" - ], - "type": "string", - "x-ms-enum": { - "name": "DataSourceType", - "modelAsString": true + "type": "string" } }, - "resourceId": { - "description": "Entire ARM resource id of the resource", - "type": "string" + "isArchiveEnabled": { + "type": "boolean", + "description": "Flag to identify whether datasource is protected in archive" + }, + "policyName": { + "type": "string", + "description": "Name of the policy used for protection" + }, + "softDeleteRetentionPeriodInDays": { + "type": "integer", + "format": "int32", + "description": "Soft delete retention period in days" }, - "poLogicalName": { - "description": "Protectable Item Logical Name", - "type": "string" + "vaultId": { + "type": "string", + "description": "ID of the vault which protects this item", + "readOnly": true } + }, + "discriminator": "protectedItemType", + "required": [ + "protectedItemType" + ] + }, + "ProtectedItemHealthStatus": { + "type": "string", + "description": "Health status of the backup item, evaluated based on last heartbeat received", + "enum": [ + "Invalid", + "Healthy", + "Unhealthy", + "NotReachable", + "IRPending" + ], + "x-ms-enum": { + "name": "ProtectedItemHealthStatus", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Healthy", + "value": "Healthy" + }, + { + "name": "Unhealthy", + "value": "Unhealthy" + }, + { + "name": "NotReachable", + "value": "NotReachable" + }, + { + "name": "IRPending", + "value": "IRPending" + } + ] } }, - "BackupStatusResponse": { - "description": "BackupStatus response.", + "ProtectedItemQueryObject": { "type": "object", + "description": "Filters to list backup items.", "properties": { - "protectionStatus": { - "description": "Specifies whether the container is registered or not", - "enum": [ - "Invalid", - "NotProtected", - "Protecting", - "Protected", - "ProtectionFailed" - ], - "type": "string", - "x-ms-enum": { - "name": "ProtectionStatus", - "modelAsString": true - } + "healthState": { + "$ref": "#/definitions/HealthState", + "description": "Health State for the backed up item." }, - "vaultId": { - "description": "Specifies the arm resource id of the vault", - "type": "string" + "backupManagementType": { + "$ref": "#/definitions/BackupManagementType", + "description": "Backup management type for the backed up item." }, - "fabricName": { - "description": "Specifies the fabric name - Azure or AD", - "enum": [ - "Invalid", - "Azure" - ], + "itemType": { + "$ref": "#/definitions/DataSourceType", + "description": "Type of workload this item represents." + }, + "policyName": { "type": "string", - "x-ms-enum": { - "name": "FabricName", - "modelAsString": true - } + "description": "Backup policy name associated with the backup item." }, "containerName": { - "description": "Specifies the product specific container name. E.g. iaasvmcontainer;iaasvmcontainer;csname;vmname.", - "type": "string" - }, - "protectedItemName": { - "description": "Specifies the product specific ds name. E.g. vm;iaasvmcontainer;csname;vmname.", - "type": "string" - }, - "errorCode": { - "description": "ErrorCode in case of intent failed", - "type": "string" - }, - "errorMessage": { - "description": "ErrorMessage in case of intent failed.", - "type": "string" + "type": "string", + "description": "Name of the container." }, - "policyName": { - "description": "Specifies the policy name which is used for protection", - "type": "string" + "backupEngineName": { + "type": "string", + "description": "Backup Engine name" }, - "registrationStatus": { - "description": "Container registration status", - "type": "string" + "friendlyName": { + "type": "string", + "description": "Friendly name of protected item" }, - "protectedItemsCount": { - "format": "int32", - "description": "Number of protected items", - "type": "integer" + "fabricName": { + "type": "string", + "description": "Name of the fabric." }, - "acquireStorageAccountLock": { - "description": "Specifies whether the storage account lock has been acquired or not", - "enum": [ - "Acquire", - "NotAcquire" - ], + "backupSetName": { "type": "string", - "x-ms-enum": { - "name": "AcquireStorageAccountLock", - "modelAsString": true - } + "description": "Name of the backup set." } } }, - "BMSBackupSummariesQueryObject": { - "description": "Query parameters to fetch backup summaries.", + "ProtectedItemResource": { "type": "object", + "description": "Base class for backup items.", "properties": { - "type": { - "description": "Backup management type for this container.", - "enum": [ - "Invalid", - "BackupProtectedItemCountSummary", - "BackupProtectionContainerCountSummary" - ], - "type": "string", - "x-ms-enum": { - "name": "Type", - "modelAsString": true + "properties": { + "$ref": "#/definitions/ProtectedItem", + "description": "ProtectedItemResource properties" + }, + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" } + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "eTag": { + "type": "string", + "description": "Optional ETag." } - } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" + } + ] }, - "FeatureSupportRequest": { - "description": "Base class for feature request", - "required": [ - "featureType" - ], + "ProtectedItemResourceList": { "type": "object", + "description": "List of ProtectedItem resources", "properties": { - "featureType": { - "description": "backup support feature type.", - "type": "string" + "value": { + "type": "array", + "description": "List of resources.", + "items": { + "$ref": "#/definitions/ProtectedItemResource" + } } }, - "discriminator": "featureType" + "allOf": [ + { + "$ref": "#/definitions/ResourceList" + } + ] }, - "NameInfo": { - "description": "The name of usage.", + "ProtectedItemState": { + "type": "string", + "description": "Backup state of the backed up item.", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused", + "BackupsSuspended" + ], + "x-ms-enum": { + "name": "ProtectedItemState", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "IRPending", + "value": "IRPending" + }, + { + "name": "Protected", + "value": "Protected" + }, + { + "name": "ProtectionError", + "value": "ProtectionError" + }, + { + "name": "ProtectionStopped", + "value": "ProtectionStopped" + }, + { + "name": "ProtectionPaused", + "value": "ProtectionPaused" + }, + { + "name": "BackupsSuspended", + "value": "BackupsSuspended" + } + ] + } + }, + "ProtectionContainer": { "type": "object", + "description": "Base class for container with backup items. Containers with specific workloads are derived from this class.", "properties": { - "value": { - "description": "Value of usage.", - "type": "string" + "friendlyName": { + "type": "string", + "description": "Friendly name of the container." }, - "localizedValue": { - "description": "Localized value of usage.", - "type": "string" + "backupManagementType": { + "$ref": "#/definitions/BackupManagementType", + "description": "Type of backup management for the container." + }, + "registrationStatus": { + "type": "string", + "description": "Status of registration of the container with the Recovery Services Vault." + }, + "healthStatus": { + "type": "string", + "description": "Status of health of the container." + }, + "containerType": { + "$ref": "#/definitions/ProtectableContainerType", + "description": "Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2.\nClassic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is\nWindows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload\nBackup is VMAppContainer" + }, + "protectableObjectType": { + "type": "string", + "description": "Type of the protectable object associated with this container" } - } + }, + "discriminator": "containerType", + "required": [ + "containerType" + ] }, - "PreValidateEnableBackupRequest": { - "description": "Contract to validate if backup can be enabled on the given resource in a given vault and given configuration.\r\nIt will validate followings\r\n1. Vault capacity\r\n2. VM is already protected\r\n3. Any VM related configuration passed in properties.", + "ProtectionContainerResource": { "type": "object", + "description": "Base class for container with backup items. Containers with specific workloads are derived from this class.", "properties": { - "resourceType": { - "description": "ProtectedItem Type- VM, SqlDataBase, AzureFileShare etc", - "enum": [ - "Invalid", - "VM", - "FileFolder", - "AzureSqlDb", - "SQLDB", - "Exchange", - "Sharepoint", - "VMwareVM", - "SystemState", - "Client", - "GenericDataSource", - "SQLDataBase", - "AzureFileShare", - "SAPHanaDatabase", - "SAPAseDatabase", - "SAPHanaDBInstance" - ], - "type": "string", - "x-ms-enum": { - "name": "DataSourceType", - "modelAsString": true - } + "properties": { + "$ref": "#/definitions/ProtectionContainer", + "description": "ProtectionContainerResource properties" }, - "resourceId": { - "description": "ARM Virtual Machine Id", - "type": "string" + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } }, - "vaultId": { - "description": "ARM id of the Recovery Services Vault", - "type": "string" + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] }, - "properties": { - "description": "Configuration of VM if any needs to be validated like OS type etc", - "type": "string" + "eTag": { + "type": "string", + "description": "Optional ETag." } - } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" + } + ] }, - "PreValidateEnableBackupResponse": { - "description": "Response contract for enable backup validation request", + "ProtectionContainerResourceList": { "type": "object", + "description": "List of ProtectionContainer resources", "properties": { - "status": { - "description": "Validation Status", - "enum": [ - "Invalid", - "Succeeded", - "Failed" - ], - "type": "string", - "x-ms-enum": { - "name": "ValidationStatus", - "modelAsString": true + "value": { + "type": "array", + "description": "List of resources.", + "items": { + "$ref": "#/definitions/ProtectionContainerResource" } - }, - "errorCode": { - "description": "Response error code", - "type": "string" - }, - "errorMessage": { - "description": "Response error message", - "type": "string" - }, - "recommendation": { - "description": "Recommended action for user", - "type": "string" - }, - "containerName": { - "description": "Specifies the product specific container name. E.g. iaasvmcontainer;iaasvmcontainer;rgname;vmname. This is required\r\nfor portal", - "type": "string" - }, - "protectedItemName": { - "description": "Specifies the product specific ds name. E.g. vm;iaasvmcontainer;rgname;vmname. This is required for portal", - "type": "string" } - } + }, + "allOf": [ + { + "$ref": "#/definitions/ResourceList" + } + ] }, "ProtectionIntent": { - "description": "Base class for backup ProtectionIntent.", - "required": [ - "protectionIntentItemType" - ], "type": "object", + "description": "Base class for backup ProtectionIntent.", "properties": { "protectionIntentItemType": { - "description": "backup protectionIntent type.", - "enum": [ - "Invalid", - "AzureResourceItem", - "RecoveryServiceVaultItem", - "AzureWorkloadContainerAutoProtectionIntent", - "AzureWorkloadAutoProtectionIntent", - "AzureWorkloadSQLAutoProtectionIntent" - ], - "type": "string", - "x-ms-enum": { - "name": "ProtectionIntentItemType", - "modelAsString": true - } + "$ref": "#/definitions/ProtectionIntentItemType", + "description": "backup protectionIntent type." }, "backupManagementType": { - "description": "Type of backup management for the backed up item.", - "enum": [ - "Invalid", - "AzureIaasVM", - "MAB", - "DPM", - "AzureBackupServer", - "AzureSql", - "AzureStorage", - "AzureWorkload", - "DefaultBackup" - ], - "type": "string", - "x-ms-enum": { - "name": "BackupManagementType", - "modelAsString": true - } + "$ref": "#/definitions/BackupManagementType", + "description": "Type of backup management for the backed up item." }, "sourceResourceId": { - "description": "ARM ID of the resource to be backed up.", - "type": "string" + "type": "string", + "description": "ARM ID of the resource to be backed up." }, "itemId": { - "description": "ID of the item which is getting protected, In case of Azure Vm , it is ProtectedItemId", - "type": "string" + "type": "string", + "description": "ID of the item which is getting protected, In case of Azure Vm , it is ProtectedItemId" }, "policyId": { - "description": "ID of the backup policy with which this item is backed up.", - "type": "string" + "type": "string", + "description": "ID of the backup policy with which this item is backed up." }, "protectionState": { - "description": "Backup state of this backup item.", - "enum": [ - "Invalid", - "NotProtected", - "Protecting", - "Protected", - "ProtectionFailed" - ], - "type": "string", - "x-ms-enum": { - "name": "ProtectionStatus", - "modelAsString": true + "$ref": "#/definitions/ProtectionStatus", + "description": "Backup state of this backup item." + } + }, + "discriminator": "protectionIntentItemType", + "required": [ + "protectionIntentItemType" + ] + }, + "ProtectionIntentItemType": { + "type": "string", + "description": "backup protectionIntent type.", + "enum": [ + "Invalid", + "AzureResourceItem", + "RecoveryServiceVaultItem", + "AzureWorkloadContainerAutoProtectionIntent", + "AzureWorkloadAutoProtectionIntent", + "AzureWorkloadSQLAutoProtectionIntent" + ], + "x-ms-enum": { + "name": "ProtectionIntentItemType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "AzureResourceItem", + "value": "AzureResourceItem" + }, + { + "name": "RecoveryServiceVaultItem", + "value": "RecoveryServiceVaultItem" + }, + { + "name": "AzureWorkloadContainerAutoProtectionIntent", + "value": "AzureWorkloadContainerAutoProtectionIntent" + }, + { + "name": "AzureWorkloadAutoProtectionIntent", + "value": "AzureWorkloadAutoProtectionIntent" + }, + { + "name": "AzureWorkloadSQLAutoProtectionIntent", + "value": "AzureWorkloadSQLAutoProtectionIntent" } - } - }, - "discriminator": "protectionIntentItemType" + ] + } }, "ProtectionIntentQueryObject": { - "description": "Filters to list protection intent.", "type": "object", + "description": "Filters to list protection intent.", "properties": { "backupManagementType": { - "description": "Backup management type for the backed up item", - "enum": [ - "Invalid", - "AzureIaasVM", - "MAB", - "DPM", - "AzureBackupServer", - "AzureSql", - "AzureStorage", - "AzureWorkload", - "DefaultBackup" - ], - "type": "string", - "x-ms-enum": { - "name": "BackupManagementType", - "modelAsString": true - } + "$ref": "#/definitions/BackupManagementType", + "description": "Backup management type for the backed up item" }, "itemType": { - "description": "Type of workload this item represents", - "enum": [ - "Invalid", - "SQLInstance", - "SQLAvailabilityGroupContainer" - ], - "type": "string", - "x-ms-enum": { - "name": "IntentItemType", - "modelAsString": true - } + "$ref": "#/definitions/IntentItemType", + "description": "Type of workload this item represents" }, "parentName": { - "description": "Parent name of the intent", - "type": "string" + "type": "string", + "description": "Parent name of the intent" }, "itemName": { - "description": "Item name of the intent", - "type": "string" + "type": "string", + "description": "Item name of the intent" } } }, "ProtectionIntentResource": { + "type": "object", "description": "Base class for backup ProtectionIntent.", - "allOf": [ - { - "$ref": "#/definitions/Resource" - } - ], "properties": { "properties": { "$ref": "#/definitions/ProtectionIntent", "description": "ProtectionIntentResource properties" + }, + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "eTag": { + "type": "string", + "description": "Optional ETag." } - } - }, - "ProtectionIntentResourceList": { - "description": "List of ProtectionIntent resources", - "type": "object", + }, "allOf": [ { - "$ref": "#/definitions/ResourceList" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" } - ], + ] + }, + "ProtectionIntentResourceList": { + "type": "object", + "description": "List of ProtectionIntent resources", "properties": { "value": { - "description": "List of resources.", "type": "array", + "description": "List of resources.", "items": { "$ref": "#/definitions/ProtectionIntentResource" } } - } - }, - "AzureWorkloadContainer": { - "description": "Container for the workloads running inside Azure Compute or Classic Compute.", - "type": "object", + }, "allOf": [ { - "$ref": "#/definitions/ProtectionContainer" + "$ref": "#/definitions/ResourceList" } - ], + ] + }, + "ProtectionPolicy": { + "type": "object", + "description": "Base class for backup policy. Workload-specific backup policies are derived from this class.", "properties": { - "sourceResourceId": { - "description": "ARM ID of the virtual machine represented by this Azure Workload Container", - "type": "string" - }, - "lastUpdatedTime": { - "format": "date-time", - "description": "Time stamp when this container was updated.", - "type": "string" - }, - "extendedInfo": { - "$ref": "#/definitions/AzureWorkloadContainerExtendedInfo", - "description": "Additional details of a workload container." - }, - "workloadType": { - "description": "Workload type for which registration was sent.", - "enum": [ - "Invalid", - "VM", - "FileFolder", - "AzureSqlDb", - "SQLDB", - "Exchange", - "Sharepoint", - "VMwareVM", - "SystemState", - "Client", - "GenericDataSource", - "SQLDataBase", - "AzureFileShare", - "SAPHanaDatabase", - "SAPAseDatabase", - "SAPHanaDBInstance" - ], - "type": "string", - "x-ms-enum": { - "name": "WorkloadType", - "modelAsString": true - } + "protectedItemsCount": { + "type": "integer", + "format": "int32", + "description": "Number of items associated with this policy." }, - "operationType": { - "description": "Re-Do Operation", - "enum": [ - "Invalid", - "Register", - "Reregister", - "Rehydrate" - ], + "backupManagementType": { "type": "string", - "x-ms-enum": { - "name": "OperationType", - "modelAsString": true + "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types." + }, + "resourceGuardOperationRequests": { + "type": "array", + "description": "ResourceGuard Operation Requests", + "items": { + "type": "string" } } }, - "x-ms-discriminator-value": "AzureWorkloadContainer" + "discriminator": "backupManagementType", + "required": [ + "backupManagementType" + ] }, - "AzureWorkloadContainerExtendedInfo": { - "description": "Extended information of the container.", + "ProtectionPolicyQueryObject": { "type": "object", + "description": "Filters the list backup policies API.", "properties": { - "hostServerName": { - "description": "Host Os Name in case of Stand Alone and Cluster Name in case of distributed container.", - "type": "string" + "backupManagementType": { + "$ref": "#/definitions/BackupManagementType", + "description": "Backup management type for the backup policy." }, - "inquiryInfo": { - "$ref": "#/definitions/InquiryInfo", - "description": "Inquiry Status for the container." + "fabricName": { + "type": "string", + "description": "Fabric name for filter" }, - "nodesList": { - "description": "List of the nodes in case of distributed container.", - "type": "array", - "items": { - "$ref": "#/definitions/DistributedNodesInfo" - }, - "x-ms-identifiers": [] + "workloadType": { + "$ref": "#/definitions/WorkloadType", + "description": "Workload type for the backup policy." } } }, - "BackupEngineBase": { - "description": "The base backup engine class. All workload specific backup engines derive from this class.", + "ProtectionPolicyResource": { "type": "object", - "required": [ - "backupEngineType" - ], + "description": "Base class for backup policy. Workload-specific backup policies are derived from this class.", "properties": { - "friendlyName": { - "description": "Friendly name of the backup engine.", - "type": "string" + "properties": { + "$ref": "#/definitions/ProtectionPolicy", + "description": "ProtectionPolicyResource properties" }, - "backupManagementType": { - "description": "Type of backup management for the backup engine.", - "enum": [ - "Invalid", - "AzureIaasVM", - "MAB", - "DPM", - "AzureBackupServer", - "AzureSql", - "AzureStorage", - "AzureWorkload", - "DefaultBackup" - ], - "type": "string", - "x-ms-enum": { - "name": "BackupManagementType", - "modelAsString": true + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" } }, - "registrationStatus": { - "description": "Registration status of the backup engine with the Recovery Services Vault.", - "type": "string" - }, - "backupEngineState": { - "description": "Status of the backup engine with the Recovery Services Vault. = {Active/Deleting/DeleteFailed}", - "type": "string" - }, - "healthStatus": { - "description": "Backup status of the backup engine.", - "type": "string" - }, - "backupEngineType": { - "description": "Type of the backup engine.", - "enum": [ - "Invalid", - "DpmBackupEngine", - "AzureBackupServerEngine" - ], + "location": { "type": "string", - "x-ms-enum": { - "name": "BackupEngineType", - "modelAsString": true - } - }, - "canReRegister": { - "description": "Flag indicating if the backup engine be registered, once already registered.", - "type": "boolean" - }, - "backupEngineId": { - "description": "ID of the backup engine.", - "type": "string" - }, - "dpmVersion": { - "description": "Backup engine version", - "type": "string" - }, - "azureBackupAgentVersion": { - "description": "Backup agent version", - "type": "string" - }, - "isAzureBackupAgentUpgradeAvailable": { - "description": "To check if backup agent upgrade available", - "type": "boolean" - }, - "isDpmUpgradeAvailable": { - "description": "To check if backup engine upgrade available", - "type": "boolean" + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] }, - "extendedInfo": { - "$ref": "#/definitions/BackupEngineExtendedInfo", - "description": "Extended info of the backupengine" + "eTag": { + "type": "string", + "description": "Optional ETag." } }, - "discriminator": "backupEngineType" - }, - "BackupEngineBaseResource": { - "description": "The base backup engine class. All workload specific backup engines derive from this class.", "allOf": [ { - "$ref": "#/definitions/Resource" - } - ], - "properties": { - "properties": { - "$ref": "#/definitions/BackupEngineBase", - "description": "BackupEngineBaseResource properties" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" } - } + ] }, - "BackupEngineBaseResourceList": { - "description": "List of BackupEngineBase resources", + "ProtectionPolicyResourceList": { "type": "object", + "description": "List of ProtectionPolicy resources", + "properties": { + "value": { + "type": "array", + "description": "List of resources.", + "items": { + "$ref": "#/definitions/ProtectionPolicyResource" + } + } + }, "allOf": [ { "$ref": "#/definitions/ResourceList" } + ] + }, + "ProtectionState": { + "type": "string", + "description": "Backup state of this backup item.", + "enum": [ + "Invalid", + "IRPending", + "Protected", + "ProtectionError", + "ProtectionStopped", + "ProtectionPaused", + "BackupsSuspended" ], - "properties": { - "value": { - "description": "List of resources.", - "type": "array", - "items": { - "$ref": "#/definitions/BackupEngineBaseResource" + "x-ms-enum": { + "name": "ProtectionState", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "IRPending", + "value": "IRPending" + }, + { + "name": "Protected", + "value": "Protected" + }, + { + "name": "ProtectionError", + "value": "ProtectionError" + }, + { + "name": "ProtectionStopped", + "value": "ProtectionStopped" + }, + { + "name": "ProtectionPaused", + "value": "ProtectionPaused" + }, + { + "name": "BackupsSuspended", + "value": "BackupsSuspended" + } + ] + } + }, + "ProtectionStatus": { + "type": "string", + "description": "Specifies whether the container is registered or not", + "enum": [ + "Invalid", + "NotProtected", + "Protecting", + "Protected", + "ProtectionFailed" + ], + "x-ms-enum": { + "name": "ProtectionStatus", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "NotProtected", + "value": "NotProtected" + }, + { + "name": "Protecting", + "value": "Protecting" + }, + { + "name": "Protected", + "value": "Protected" + }, + { + "name": "ProtectionFailed", + "value": "ProtectionFailed" + } + ] + } + }, + "ProvisioningState": { + "type": "string", + "description": "Gets or sets provisioning state of the private endpoint connection", + "enum": [ + "Succeeded", + "Deleting", + "Failed", + "Pending" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded" + }, + { + "name": "Deleting", + "value": "Deleting" + }, + { + "name": "Failed", + "value": "Failed" + }, + { + "name": "Pending", + "value": "Pending" + } + ] + } + }, + "RecoveryMode": { + "type": "string", + "description": "Defines whether the current recovery mode is file restore or database restore", + "enum": [ + "Invalid", + "FileRecovery", + "WorkloadRecovery", + "SnapshotAttach", + "RecoveryUsingSnapshot", + "SnapshotAttachAndRecover" + ], + "x-ms-enum": { + "name": "RecoveryMode", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "FileRecovery", + "value": "FileRecovery" + }, + { + "name": "WorkloadRecovery", + "value": "WorkloadRecovery" + }, + { + "name": "SnapshotAttach", + "value": "SnapshotAttach" + }, + { + "name": "RecoveryUsingSnapshot", + "value": "RecoveryUsingSnapshot" + }, + { + "name": "SnapshotAttachAndRecover", + "value": "SnapshotAttachAndRecover" } - } + ] } }, - "BackupEngineExtendedInfo": { - "description": "Additional information on backup engine.", + "RecoveryPoint": { "type": "object", + "description": "Base class for backup copies. Workload-specific backup copies are derived from this class.", "properties": { - "databaseName": { - "description": "Database name of backup engine.", - "type": "string" - }, - "protectedItemsCount": { - "format": "int32", - "description": "Number of protected items in the backup engine.", - "type": "integer" - }, - "protectedServersCount": { + "objectType": { + "type": "string", + "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types." + } + }, + "discriminator": "objectType", + "required": [ + "objectType" + ] + }, + "RecoveryPointDiskConfiguration": { + "type": "object", + "description": "Disk configuration", + "properties": { + "numberOfDisksIncludedInBackup": { + "type": "integer", "format": "int32", - "description": "Number of protected servers in the backup engine.", - "type": "integer" + "description": "Number of disks included in backup" }, - "diskCount": { + "numberOfDisksAttachedToVm": { + "type": "integer", "format": "int32", - "description": "Number of disks in the backup engine.", - "type": "integer" - }, - "usedDiskSpace": { - "format": "double", - "description": "Disk space used in the backup engine.", - "type": "number" + "description": "Number of disks attached to the VM" }, - "availableDiskSpace": { - "format": "double", - "description": "Disk space currently available in the backup engine.", - "type": "number" - }, - "refreshedAt": { - "format": "date-time", - "description": "Last refresh time in the backup engine.", - "type": "string" + "includedDiskList": { + "type": "array", + "description": "Information of disks included in backup", + "items": { + "$ref": "#/definitions/DiskInformation" + }, + "x-ms-identifiers": [] }, - "azureProtectedInstances": { - "format": "int32", - "description": "Protected instances in the backup engine.", - "type": "integer" + "excludedDiskList": { + "type": "array", + "description": "Information of disks excluded from backup", + "items": { + "$ref": "#/definitions/DiskInformation" + }, + "x-ms-identifiers": [] } } }, - "BackupRequest": { - "description": "Base class for backup request. Workload-specific backup requests are derived from this class.", - "required": [ - "objectType" - ], + "RecoveryPointMoveReadinessInfo": { "type": "object", "properties": { - "objectType": { - "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.", + "isReadyForMove": { + "type": "boolean" + }, + "additionalInfo": { "type": "string" } - }, - "discriminator": "objectType" - }, - "BackupRequestResource": { - "description": "Base class for backup request. Workload-specific backup requests are derived from this class.", - "allOf": [ - { - "$ref": "#/definitions/Resource" - } - ], - "properties": { - "properties": { - "$ref": "#/definitions/BackupRequest", - "description": "BackupRequestResource properties" - } } }, - "BMSBackupEngineQueryObject": { - "description": "Query parameters to fetch list of backup engines.", + "RecoveryPointProperties": { "type": "object", + "description": "Properties of Recovery Point", "properties": { - "expand": { - "description": "attribute to add extended info", - "type": "string" + "expiryTime": { + "type": "string", + "description": "Expiry time of Recovery Point in UTC." + }, + "ruleName": { + "type": "string", + "description": "Rule name tagged on Recovery Point that governs life cycle" + }, + "isSoftDeleted": { + "type": "boolean", + "description": "Bool to indicate whether RP is in soft delete state or not" } } }, - "BMSBackupEnginesQueryObject": { - "description": "Query parameters to fetch list of backup engines.", + "RecoveryPointRehydrationInfo": { "type": "object", + "description": "RP Rehydration Info", "properties": { - "backupManagementType": { - "description": "Backup management type for the backup engine.", - "enum": [ - "Invalid", - "AzureIaasVM", - "MAB", - "DPM", - "AzureBackupServer", - "AzureSql", - "AzureStorage", - "AzureWorkload", - "DefaultBackup" - ], - "type": "string", - "x-ms-enum": { - "name": "BackupManagementType", - "modelAsString": true - } - }, - "friendlyName": { - "description": "Friendly name of the backup engine.", - "type": "string" + "rehydrationRetentionDuration": { + "type": "string", + "description": "How long the rehydrated RP should be kept\nShould be ISO8601 Duration format e.g. \"P7D\"" }, - "expand": { - "description": "Attribute to add extended info.", - "type": "string" + "rehydrationPriority": { + "$ref": "#/definitions/RehydrationPriority", + "description": "Rehydration Priority" } } }, - "BMSContainerQueryObject": { - "description": "The query filters that can be used with the list containers API.", - "required": [ - "backupManagementType" - ], + "RecoveryPointResource": { "type": "object", + "description": "Base class for backup copies. Workload-specific backup copies are derived from this class.", "properties": { - "backupManagementType": { - "description": "Backup management type for this container.", - "enum": [ - "Invalid", - "AzureIaasVM", - "MAB", - "DPM", - "AzureBackupServer", - "AzureSql", - "AzureStorage", - "AzureWorkload", - "DefaultBackup" - ], - "type": "string", - "x-ms-enum": { - "name": "BackupManagementType", - "modelAsString": true - } + "properties": { + "$ref": "#/definitions/RecoveryPoint", + "description": "RecoveryPointResource properties" }, - "containerType": { - "description": "Type of container for filter", - "enum": [ - "Invalid", - "Unknown", - "IaasVMContainer", - "IaasVMServiceContainer", - "DPMContainer", - "AzureBackupServerContainer", - "MABContainer", - "Cluster", - "AzureSqlContainer", - "Windows", - "VCenter", - "VMAppContainer", - "SQLAGWorkLoadContainer", - "StorageContainer", - "GenericContainer", - "HanaHSRContainer" - ], - "type": "string", - "x-ms-enum": { - "name": "ContainerType", - "modelAsString": true + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" } }, - "backupEngineName": { - "description": "Backup engine name", - "type": "string" - }, - "fabricName": { - "description": "Fabric name for filter", - "type": "string" - }, - "status": { - "description": "Status of registration of this container with the Recovery Services Vault.", - "type": "string" + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] }, - "friendlyName": { - "description": "Friendly name of this container.", - "type": "string" + "eTag": { + "type": "string", + "description": "Optional ETag." } - } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" + } + ] }, - "BMSContainersInquiryQueryObject": { - "description": "The query filters that can be used with the inquire container API.", + "RecoveryPointResourceList": { "type": "object", + "description": "List of RecoveryPoint resources", "properties": { - "backupManagementType": { - "description": "Backup management type for this container.", - "enum": [ - "Invalid", - "AzureIaasVM", - "MAB", - "DPM", - "AzureBackupServer", - "AzureSql", - "AzureStorage", - "AzureWorkload", - "DefaultBackup" - ], - "type": "string", - "x-ms-enum": { - "name": "BackupManagementType", - "modelAsString": true + "value": { + "type": "array", + "description": "List of resources.", + "items": { + "$ref": "#/definitions/RecoveryPointResource" } - }, - "workloadType": { - "description": "Workload type for this container.", - "enum": [ - "Invalid", - "VM", - "FileFolder", - "AzureSqlDb", - "SQLDB", - "Exchange", - "Sharepoint", - "VMwareVM", - "SystemState", - "Client", - "GenericDataSource", - "SQLDataBase", - "AzureFileShare", - "SAPHanaDatabase", - "SAPAseDatabase", - "SAPHanaDBInstance" - ], - "type": "string", - "x-ms-enum": { - "name": "WorkloadType", - "modelAsString": true - } - } - } - }, - "BMSPOQueryObject": { - "description": "Filters to list items that can be backed up.", + } + }, + "allOf": [ + { + "$ref": "#/definitions/ResourceList" + } + ] + }, + "RecoveryPointTierInformation": { "type": "object", + "description": "Recovery point tier information.", "properties": { - "backupManagementType": { - "description": "Backup management type.", - "enum": [ - "Invalid", - "AzureIaasVM", - "MAB", - "DPM", - "AzureSql", - "AzureBackupServer", - "AzureWorkload", - "AzureStorage", - "DefaultBackup" - ], - "type": "string", - "x-ms-enum": { - "name": "BackupManagementType", - "modelAsString": true - } - }, - "workloadType": { - "description": "Workload type", - "enum": [ - "Invalid", - "VM", - "FileFolder", - "AzureSqlDb", - "SQLDB", - "Exchange", - "Sharepoint", - "VMwareVM", - "SystemState", - "Client", - "GenericDataSource", - "SQLDataBase", - "AzureFileShare", - "SAPHanaDatabase", - "SAPAseDatabase", - "SAPHanaDBInstance" - ], - "type": "string", - "x-ms-enum": { - "name": "WorkloadType", - "modelAsString": true - } - }, - "containerName": { - "description": "Full name of the container whose Protectable Objects should be returned.", - "type": "string" + "type": { + "$ref": "#/definitions/RecoveryPointTierType", + "description": "Recovery point tier type." }, "status": { - "description": "Backup status query parameter.", - "type": "string" + "$ref": "#/definitions/RecoveryPointTierStatus", + "description": "Recovery point tier status." }, - "friendlyName": { - "description": "Friendly name.", - "type": "string" + "extendedInfo": { + "type": "object", + "description": "Recovery point tier status.", + "additionalProperties": { + "type": "string" + } } } }, - "BMSRefreshContainersQueryObject": { - "description": "The query filters that can be used with the refresh container API.", + "RecoveryPointTierInformationV2": { "type": "object", + "description": "RecoveryPoint Tier Information V2", "properties": { - "backupManagementType": { - "description": "Backup management type for this container.", - "enum": [ - "Invalid", - "AzureIaasVM", - "MAB", - "DPM", - "AzureBackupServer", - "AzureSql", - "AzureStorage", - "AzureWorkload", - "DefaultBackup" - ], - "type": "string", - "x-ms-enum": { - "name": "BackupManagementType", - "modelAsString": true - } + "type": { + "$ref": "#/definitions/RecoveryPointTierType", + "description": "Recovery point tier type." + }, + "status": { + "$ref": "#/definitions/RecoveryPointTierStatus", + "description": "Recovery point tier status." + } + }, + "allOf": [ + { + "$ref": "#/definitions/RecoveryPointTierInformation" } + ] + }, + "RecoveryPointTierStatus": { + "type": "string", + "description": "Recovery point tier status.", + "enum": [ + "Invalid", + "Valid", + "Disabled", + "Deleted", + "Rehydrated" + ], + "x-ms-enum": { + "name": "RecoveryPointTierStatus", + "modelAsString": true } }, - "BMSWorkloadItemQueryObject": { - "description": "Filters to list items that can be backed up.", - "type": "object", - "properties": { - "backupManagementType": { - "description": "Backup management type.", - "enum": [ - "Invalid", - "AzureIaasVM", - "MAB", - "DPM", - "AzureSql", - "AzureBackupServer", - "AzureWorkload", - "AzureStorage", - "DefaultBackup" - ], - "type": "string", - "x-ms-enum": { - "name": "BackupManagementType", - "modelAsString": true - } - }, - "workloadItemType": { - "description": "Workload Item type", - "enum": [ - "Invalid", - "SQLInstance", - "SQLDataBase", - "SAPHanaSystem", - "SAPHanaDatabase", - "SAPAseSystem", - "SAPAseDatabase", - "SAPHanaDBInstance" - ], - "type": "string", - "x-ms-enum": { - "name": "WorkloadItemType", - "modelAsString": true - } - }, - "workloadType": { - "description": "Workload type", - "enum": [ - "Invalid", - "VM", - "FileFolder", - "AzureSqlDb", - "SQLDB", - "Exchange", - "Sharepoint", - "VMwareVM", - "SystemState", - "Client", - "GenericDataSource", - "SQLDataBase", - "AzureFileShare", - "SAPHanaDatabase", - "SAPAseDatabase", - "SAPHanaDBInstance" - ], - "type": "string", - "x-ms-enum": { - "name": "WorkloadType", - "modelAsString": true + "RecoveryPointTierType": { + "type": "string", + "description": "Recovery point tier type.", + "enum": [ + "Invalid", + "InstantRP", + "HardenedRP", + "ArchivedRP" + ], + "x-ms-enum": { + "name": "RecoveryPointTierType", + "modelAsString": false + } + }, + "RecoveryType": { + "type": "string", + "description": "Type of this recovery.", + "enum": [ + "Invalid", + "OriginalLocation", + "AlternateLocation", + "RestoreDisks", + "Offline" + ], + "x-ms-enum": { + "name": "RecoveryType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "OriginalLocation", + "value": "OriginalLocation" + }, + { + "name": "AlternateLocation", + "value": "AlternateLocation" + }, + { + "name": "RestoreDisks", + "value": "RestoreDisks" + }, + { + "name": "Offline", + "value": "Offline" } - }, - "protectionStatus": { - "description": "Backup status query parameter.", - "enum": [ - "Invalid", - "NotProtected", - "Protecting", - "Protected", - "ProtectionFailed" - ], - "type": "string", - "x-ms-enum": { - "name": "ProtectionStatus", - "modelAsString": true + ] + } + }, + "RehydrationPriority": { + "type": "string", + "description": "Rehydration Priority", + "enum": [ + "Standard", + "High" + ], + "x-ms-enum": { + "name": "RehydrationPriority", + "modelAsString": true, + "values": [ + { + "name": "Standard", + "value": "Standard" + }, + { + "name": "High", + "value": "High" } - } + ] } }, - "ClientScriptForConnect": { - "description": "Client script details for file / folder restore.", - "type": "object", - "properties": { - "scriptContent": { - "description": "File content of the client script for file / folder restore.", - "type": "string" - }, - "scriptExtension": { - "description": "File extension of the client script for file / folder restore - .ps1 , .sh , etc.", - "type": "string" - }, - "osType": { - "description": "OS type - Windows, Linux etc. for which this file / folder restore client script works.", - "type": "string" - }, - "url": { - "description": "URL of Executable from where to source the content. If this is not null then ScriptContent should not be used", + "ResourceGuardOperationDetail": { + "type": "object", + "properties": { + "vaultCriticalOperation": { "type": "string" }, - "scriptNameSuffix": { - "description": "Mandatory suffix that should be added to the name of script that is given for download to user.\r\nIf its null or empty then , ignore it.", + "defaultResourceRequest": { "type": "string" } } }, - "ContainerIdentityInfo": { - "description": "Container identity information", + "ResourceGuardProxyBase": { "type": "object", "properties": { - "uniqueName": { - "description": "Unique name of the container", + "resourceGuardResourceId": { "type": "string" }, - "aadTenantId": { - "description": "Protection container identity - AAD Tenant", - "type": "string" + "resourceGuardOperationDetails": { + "type": "array", + "items": { + "$ref": "#/definitions/ResourceGuardOperationDetail" + }, + "x-ms-identifiers": [] }, - "servicePrincipalClientId": { - "description": "Protection container identity - AAD Service Principal", + "lastUpdatedTime": { "type": "string" }, - "audience": { - "description": "Protection container identity - Audience", + "description": { "type": "string" } - } + }, + "required": [ + "resourceGuardResourceId" + ] }, - "DistributedNodesInfo": { - "description": "This is used to represent the various nodes of the distributed container.", + "ResourceGuardProxyBaseResource": { "type": "object", + "description": "", "properties": { - "nodeName": { - "description": "Name of the node under a distributed container.", - "type": "string" + "properties": { + "$ref": "#/definitions/ResourceGuardProxyBase", + "description": "ResourceGuardProxyBaseResource properties" }, - "status": { - "description": "Status of this Node.\r\nFailed | Succeeded", - "type": "string" + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } }, - "errorDetail": { - "$ref": "#/definitions/ErrorDetail", - "description": "Error Details if the Status is non-success." + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] }, - "sourceResourceId": { - "description": "ARM resource id of the node", - "type": "string" + "eTag": { + "type": "string", + "description": "Optional ETag." } - } - }, - "DpmBackupEngine": { - "description": "Data Protection Manager (DPM) specific backup engine.", - "type": "object", + }, "allOf": [ { - "$ref": "#/definitions/BackupEngineBase" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" } - ], - "x-ms-discriminator-value": "DpmBackupEngine" + ] }, - "DpmContainer": { - "description": "DPM workload-specific protection container.", + "ResourceGuardProxyBaseResourceList": { "type": "object", + "description": "List of ResourceGuardProxyBase resources", + "properties": { + "value": { + "type": "array", + "description": "List of resources.", + "items": { + "$ref": "#/definitions/ResourceGuardProxyBaseResource" + } + } + }, "allOf": [ { - "$ref": "#/definitions/ProtectionContainer" + "$ref": "#/definitions/ResourceList" } - ], + ] + }, + "ResourceHealthDetails": { + "type": "object", + "description": "Health Details for backup items.", "properties": { - "canReRegister": { - "description": "Specifies whether the container is re-registrable.", - "type": "boolean" - }, - "containerId": { - "description": "ID of container.", - "type": "string" + "code": { + "type": "integer", + "format": "int32", + "description": "Health Code", + "readOnly": true }, - "protectedItemCount": { - "format": "int64", - "description": "Number of protected items in the BackupEngine", - "type": "integer" + "title": { + "type": "string", + "description": "Health Title", + "readOnly": true }, - "dpmAgentVersion": { - "description": "Backup engine Agent version", - "type": "string" + "message": { + "type": "string", + "description": "Health Message", + "readOnly": true }, - "dpmServers": { - "description": "List of BackupEngines protecting the container", + "recommendations": { "type": "array", + "description": "Health Recommended Actions", "items": { "type": "string" - } - }, - "upgradeAvailable": { - "description": "To check if upgrade available", - "type": "boolean" - }, - "protectionStatus": { - "description": "Protection status of the container.", - "type": "string" - }, - "extendedInfo": { - "$ref": "#/definitions/DPMContainerExtendedInfo", - "description": "Extended Info of the container." + }, + "readOnly": true } - }, - "x-ms-discriminator-value": "DPMContainer" + } }, - "DPMContainerExtendedInfo": { - "description": "Additional information of the DPMContainer.", - "type": "object", - "properties": { - "lastRefreshedAt": { - "format": "date-time", - "description": "Last refresh time of the DPMContainer.", - "type": "string" - } + "ResourceHealthStatus": { + "type": "string", + "description": "Resource Health Status", + "enum": [ + "Healthy", + "TransientDegraded", + "PersistentDegraded", + "TransientUnhealthy", + "PersistentUnhealthy", + "Invalid" + ], + "x-ms-enum": { + "name": "ResourceHealthStatus", + "modelAsString": true, + "values": [ + { + "name": "Healthy", + "value": "Healthy" + }, + { + "name": "TransientDegraded", + "value": "TransientDegraded" + }, + { + "name": "PersistentDegraded", + "value": "PersistentDegraded" + }, + { + "name": "TransientUnhealthy", + "value": "TransientUnhealthy" + }, + { + "name": "PersistentUnhealthy", + "value": "PersistentUnhealthy" + }, + { + "name": "Invalid", + "value": "Invalid" + } + ] } }, - "GenericContainer": { - "description": "Base class for generic container of backup items", + "ResourceList": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ProtectionContainer" - } - ], + "description": "Base for all lists of resources.", "properties": { - "fabricName": { - "description": "Name of the container's fabric", - "type": "string" - }, - "extendedInformation": { - "$ref": "#/definitions/GenericContainerExtendedInfo", - "description": "Extended information (not returned in List container API calls)" + "nextLink": { + "type": "string", + "description": "The URI to fetch the next page of resources, with each API call returning up to 200 resources per page. Use ListNext() to fetch the next page if the total number of resources exceeds 200." } - }, - "x-ms-discriminator-value": "GenericContainer" + } }, - "GenericContainerExtendedInfo": { - "description": "Container extended information", + "RestoreFileSpecs": { "type": "object", + "description": "Restore file specs like file path, type and target folder path info.", "properties": { - "rawCertData": { - "description": "Public key of container cert", - "type": "string" + "path": { + "type": "string", + "description": "Source File/Folder path" }, - "containerIdentityInfo": { - "$ref": "#/definitions/ContainerIdentityInfo", - "description": "Container identity information" + "fileSpecType": { + "type": "string", + "description": "Indicates what the Path variable stands for" }, - "serviceEndpoints": { - "description": "Azure Backup Service Endpoints for the container", - "type": "object", - "additionalProperties": { - "type": "string" - } + "targetFolderPath": { + "type": "string", + "description": "Destination folder path in target FileShare" } } }, - "IaasVMBackupRequest": { - "description": "IaaS VM workload-specific backup request.", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/BackupRequest" - } + "RestorePointQueryType": { + "type": "string", + "description": "RestorePoint type", + "enum": [ + "Invalid", + "Full", + "Log", + "Differential", + "FullAndDifferential", + "All", + "Incremental", + "SnapshotFull", + "SnapshotCopyOnlyFull" ], - "properties": { - "recoveryPointExpiryTimeInUTC": { - "format": "date-time", - "description": "Backup copy will expire after the time specified (UTC).", - "type": "string" - } - }, - "x-ms-discriminator-value": "IaasVMBackupRequest" + "x-ms-enum": { + "name": "RestorePointQueryType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Full", + "value": "Full" + }, + { + "name": "Log", + "value": "Log" + }, + { + "name": "Differential", + "value": "Differential" + }, + { + "name": "FullAndDifferential", + "value": "FullAndDifferential" + }, + { + "name": "All", + "value": "All" + }, + { + "name": "Incremental", + "value": "Incremental" + }, + { + "name": "SnapshotFull", + "value": "SnapshotFull" + }, + { + "name": "SnapshotCopyOnlyFull", + "value": "SnapshotCopyOnlyFull" + } + ] + } }, - "IaaSVMContainer": { - "description": "IaaS VM workload-specific container.", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ProtectionContainer" - } + "RestorePointType": { + "type": "string", + "description": "Type of restore point", + "enum": [ + "Invalid", + "Full", + "Log", + "Differential", + "Incremental", + "SnapshotFull", + "SnapshotCopyOnlyFull" ], - "properties": { - "virtualMachineId": { - "description": "Fully qualified ARM url of the virtual machine represented by this Azure IaaS VM container.", - "type": "string" - }, - "virtualMachineVersion": { - "description": "Specifies whether the container represents a Classic or an Azure Resource Manager VM.", - "type": "string" + "x-ms-enum": { + "name": "RestorePointType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Full", + "value": "Full" + }, + { + "name": "Log", + "value": "Log" + }, + { + "name": "Differential", + "value": "Differential" + }, + { + "name": "Incremental", + "value": "Incremental" + }, + { + "name": "SnapshotFull", + "value": "SnapshotFull" + }, + { + "name": "SnapshotCopyOnlyFull", + "value": "SnapshotCopyOnlyFull" + } + ] + } + }, + "RestoreRequest": { + "type": "object", + "description": "Base class for restore request. Workload-specific restore requests are derived from this class.", + "properties": { + "objectType": { + "type": "string", + "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types." }, - "resourceGroup": { - "description": "Resource group name of Recovery Services Vault.", - "type": "string" + "resourceGuardOperationRequests": { + "type": "array", + "description": "ResourceGuardOperationRequests on which LAC check will be performed", + "items": { + "type": "string" + } } }, - "x-ms-discriminator-value": "IaasVMContainer" + "discriminator": "objectType", + "required": [ + "objectType" + ] }, - "IaasVMILRRegistrationRequest": { - "description": "Restore files/folders from a backup copy of IaaS VM.", + "RestoreRequestResource": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ILRRequest" - } - ], + "description": "Base class for restore request. Workload-specific restore requests are derived from this class.", "properties": { - "recoveryPointId": { - "description": "ID of the IaaS VM backup copy from where the files/folders have to be restored.", - "type": "string" + "location": { + "type": "string", + "description": "Resource location." }, - "virtualMachineId": { - "description": "Fully qualified ARM ID of the virtual machine whose the files / folders have to be restored.", - "type": "string" + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } }, - "initiatorName": { - "description": "iSCSI initiator name.", - "type": "string" + "eTag": { + "type": "string", + "description": "Optional ETag." }, - "renewExistingRegistration": { - "description": "Whether to renew existing registration with the iSCSI server.", - "type": "boolean" + "properties": { + "$ref": "#/definitions/RestoreRequest", + "description": "RestoreRequestResource properties" } }, - "x-ms-discriminator-value": "IaasVMILRRegistrationRequest" - }, - "IaaSVMProtectableItem": { - "description": "IaaS VM workload-specific backup item.", - "type": "object", "allOf": [ { - "$ref": "#/definitions/WorkloadProtectableItem" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" } + ] + }, + "RestoreRequestType": { + "type": "string", + "description": "Restore Type (FullShareRestore or ItemLevelRestore)", + "enum": [ + "Invalid", + "FullShareRestore", + "ItemLevelRestore" ], + "x-ms-enum": { + "name": "RestoreRequestType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "FullShareRestore", + "value": "FullShareRestore" + }, + { + "name": "ItemLevelRestore", + "value": "ItemLevelRestore" + } + ] + } + }, + "RetentionDuration": { + "type": "object", + "description": "Retention duration.", "properties": { - "virtualMachineId": { - "description": "Fully qualified ARM ID of the virtual machine.", - "type": "string" - }, - "virtualMachineVersion": { - "description": "Specifies whether the container represents a Classic or an Azure Resource Manager VM.", - "type": "string" + "count": { + "type": "integer", + "format": "int32", + "description": "Count of duration types. Retention duration is obtained by the counting the duration type Count times.\nFor example, when Count = 3 and DurationType = Weeks, retention duration will be three weeks." }, - "resourceGroup": { - "description": "Resource group name of Recovery Services Vault.", - "type": "string" + "durationType": { + "$ref": "#/definitions/RetentionDurationType", + "description": "Retention duration type of retention policy." } - }, - "x-ms-discriminator-value": "IaaSVMProtectableItem" + } }, - "ILRRequest": { - "description": "Parameters to Provision ILR API.", - "required": [ - "objectType" + "RetentionDurationType": { + "type": "string", + "description": "Retention duration type of retention policy.", + "enum": [ + "Invalid", + "Days", + "Weeks", + "Months", + "Years" ], + "x-ms-enum": { + "name": "RetentionDurationType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Days", + "value": "Days" + }, + { + "name": "Weeks", + "value": "Weeks" + }, + { + "name": "Months", + "value": "Months" + }, + { + "name": "Years", + "value": "Years" + } + ] + } + }, + "RetentionPolicy": { "type": "object", + "description": "Base class for retention policy.", "properties": { - "objectType": { - "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.", - "type": "string" + "retentionPolicyType": { + "type": "string", + "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types." } }, - "discriminator": "objectType" + "discriminator": "retentionPolicyType", + "required": [ + "retentionPolicyType" + ] }, - "ILRRequestResource": { - "description": "Parameters to Provision ILR API.", - "allOf": [ - { - "$ref": "#/definitions/Resource" - } + "RetentionScheduleFormat": { + "type": "string", + "description": "Retention schedule format type for monthly retention policy.", + "enum": [ + "Invalid", + "Daily", + "Weekly" ], - "properties": { - "properties": { - "$ref": "#/definitions/ILRRequest", - "description": "ILRRequestResource properties" - } + "x-ms-enum": { + "name": "RetentionScheduleFormat", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Daily", + "value": "Daily" + }, + { + "name": "Weekly", + "value": "Weekly" + } + ] } }, - "InquiryInfo": { - "description": "Details about inquired protectable items under a given container.", + "SQLDataDirectory": { "type": "object", + "description": "SQLDataDirectory info", "properties": { - "status": { - "description": "Inquiry Status for this container such as\r\nInProgress | Failed | Succeeded", - "type": "string" + "type": { + "$ref": "#/definitions/SQLDataDirectoryType", + "description": "Type of data directory mapping" }, - "errorDetail": { - "$ref": "#/definitions/ErrorDetail", - "description": "Error Details if the Status is non-success." + "path": { + "type": "string", + "description": "File path" }, - "inquiryDetails": { - "description": "Inquiry Details which will have workload specific details.\r\nFor e.g. - For SQL and oracle this will contain different details.", - "type": "array", - "items": { - "$ref": "#/definitions/WorkloadInquiryDetails" - }, - "x-ms-identifiers": [] + "logicalName": { + "type": "string", + "description": "Logical name of the file" } } }, - "InquiryValidation": { - "description": "Validation for inquired protectable items under a given container.", + "SQLDataDirectoryMapping": { "type": "object", + "description": "Encapsulates information regarding data directory", "properties": { - "status": { - "description": "Status for the Inquiry Validation.", - "type": "string" + "mappingType": { + "$ref": "#/definitions/SQLDataDirectoryType", + "description": "Type of data directory mapping" }, - "errorDetail": { - "$ref": "#/definitions/ErrorDetail", - "description": "Error Detail in case the status is non-success." + "sourceLogicalName": { + "type": "string", + "description": "Restore source logical name path" }, - "additionalDetail": { - "description": "Error Additional Detail in case the status is non-success.", + "sourcePath": { "type": "string", - "readOnly": true + "description": "Restore source path" }, - "protectableItemCount": { - "description": "Dictionary to store the count of ProtectableItems with key POType.", - "type": "object", - "readOnly": true + "targetPath": { + "type": "string", + "description": "Target path" } } }, - "InstantItemRecoveryTarget": { - "description": "Target details for file / folder restore.", - "type": "object", - "properties": { - "clientScripts": { - "description": "List of client scripts.", - "type": "array", - "items": { - "$ref": "#/definitions/ClientScriptForConnect" + "SQLDataDirectoryType": { + "type": "string", + "description": "Type of data directory mapping", + "enum": [ + "Invalid", + "Data", + "Log" + ], + "x-ms-enum": { + "name": "SQLDataDirectoryType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" }, - "x-ms-identifiers": [] - } + { + "name": "Data", + "value": "Data" + }, + { + "name": "Log", + "value": "Log" + } + ] } }, - "MabContainer": { - "description": "Container with items backed up using MAB backup engine.", + "SchedulePolicy": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ProtectionContainer" - } - ], + "description": "Base class for backup schedule.", "properties": { - "canReRegister": { - "description": "Can the container be registered one more time.", - "type": "boolean" - }, - "containerId": { - "format": "int64", - "description": "ContainerID represents the container.", - "type": "integer" - }, - "protectedItemCount": { - "format": "int64", - "description": "Number of items backed up in this container.", - "type": "integer" - }, - "agentVersion": { - "description": "Agent version of this container.", - "type": "string" - }, - "extendedInfo": { - "$ref": "#/definitions/MabContainerExtendedInfo", - "description": "Additional information for this container" - }, - "mabContainerHealthDetails": { - "description": "Health details on this mab container.", - "type": "array", - "items": { - "$ref": "#/definitions/MABContainerHealthDetails" - }, - "x-ms-identifiers": [ - "code" - ] - }, - "containerHealthState": { - "description": "Health state of mab container.", - "type": "string" + "schedulePolicyType": { + "type": "string", + "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types." } }, - "x-ms-discriminator-value": "Windows" + "discriminator": "schedulePolicyType", + "required": [ + "schedulePolicyType" + ] }, - "MabContainerExtendedInfo": { - "description": "Additional information of the container.", - "type": "object", - "properties": { - "lastRefreshedAt": { - "format": "date-time", - "description": "Time stamp when this container was refreshed.", - "type": "string" - }, - "backupItemType": { - "description": "Type of backup items associated with this container.", - "enum": [ - "Invalid", - "VM", - "FileFolder", - "AzureSqlDb", - "SQLDB", - "Exchange", - "Sharepoint", - "VMwareVM", - "SystemState", - "Client", - "GenericDataSource", - "SQLDataBase", - "AzureFileShare", - "SAPHanaDatabase", - "SAPAseDatabase", - "SAPHanaDBInstance" - ], - "type": "string", - "x-ms-enum": { - "name": "BackupItemType", - "modelAsString": true - } - }, - "backupItems": { - "description": "List of backup items associated with this container.", - "type": "array", - "items": { - "type": "string" + "ScheduleRunType": { + "type": "string", + "description": "Frequency of the schedule operation of this policy.", + "enum": [ + "Invalid", + "Daily", + "Weekly", + "Hourly" + ], + "x-ms-enum": { + "name": "ScheduleRunType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Daily", + "value": "Daily" + }, + { + "name": "Weekly", + "value": "Weekly" + }, + { + "name": "Hourly", + "value": "Hourly" } - }, - "policyName": { - "description": "Backup policy associated with this container.", - "type": "string" - }, - "lastBackupStatus": { - "description": "Latest backup status of this container.", - "type": "string" + ] + } + }, + "SecuredVMDetails": { + "type": "object", + "description": "Restore request parameters for Secured VMs", + "properties": { + "securedVMOsDiskEncryptionSetId": { + "type": "string", + "description": "Gets or Sets Disk Encryption Set Id for Secured VM OS Disk" } } }, - "MABContainerHealthDetails": { - "description": "MAB workload-specific Health Details.", + "SecurityPinBase": { "type": "object", + "description": "Base class for get security pin request body", "properties": { - "code": { - "format": "int32", - "description": "Health Code", - "type": "integer" - }, - "title": { - "description": "Health Title", - "type": "string" - }, - "message": { - "description": "Health Message", - "type": "string" - }, - "recommendations": { - "description": "Health Recommended Actions", + "resourceGuardOperationRequests": { "type": "array", + "description": "ResourceGuard Operation Requests", "items": { "type": "string" } } } }, - "OperationStatus": { - "description": "Operation status.", + "Settings": { "type": "object", + "description": "Common settings field for backup management", "properties": { - "id": { - "description": "ID of the operation.", - "type": "string" - }, - "name": { - "description": "Name of the operation.", - "type": "string" - }, - "status": { - "description": "Operation status.", - "enum": [ - "Invalid", - "InProgress", - "Succeeded", - "Failed", - "Canceled" - ], + "timeZone": { "type": "string", - "x-ms-enum": { - "name": "OperationStatusValues", - "modelAsString": true - } - }, - "startTime": { - "format": "date-time", - "description": "Operation start time. Format: ISO-8601.", - "type": "string" - }, - "endTime": { - "format": "date-time", - "description": "Operation end time. Format: ISO-8601.", - "type": "string" - }, - "error": { - "$ref": "#/definitions/OperationStatusError", - "description": "Error information related to this operation." + "description": "TimeZone optional input as string. For example: TimeZone = \"Pacific Standard Time\"." }, - "properties": { - "$ref": "#/definitions/OperationStatusExtendedInfo", - "description": "Additional information associated with this operation." - } - } - }, - "OperationStatusError": { - "description": "Error information associated with operation status call.", - "type": "object", - "properties": { - "code": { - "description": "Error code of the operation failure.", - "type": "string" + "issqlcompression": { + "type": "boolean", + "description": "SQL compression flag" }, - "message": { - "description": "Error message displayed if the operation failure.", - "type": "string" + "isCompression": { + "type": "boolean", + "description": "Workload compression flag. This has been added so that 'isSqlCompression'\nwill be deprecated once clients upgrade to consider this flag." } } }, - "OperationStatusExtendedInfo": { - "description": "Base class for additional information of operation status.", - "required": [ - "objectType" - ], + "SimpleRetentionPolicy": { "type": "object", + "description": "Simple policy retention.", "properties": { - "objectType": { - "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.", - "type": "string" + "retentionDuration": { + "$ref": "#/definitions/RetentionDuration", + "description": "Retention duration of the protection policy." } }, - "discriminator": "objectType" - }, - "OperationStatusJobExtendedInfo": { - "description": "Operation status job extended info.", - "type": "object", "allOf": [ { - "$ref": "#/definitions/OperationStatusExtendedInfo" + "$ref": "#/definitions/RetentionPolicy" } ], - "properties": { - "jobId": { - "description": "ID of the job created for this protected item.", - "type": "string" - } - }, - "x-ms-discriminator-value": "OperationStatusJobExtendedInfo" + "x-ms-discriminator-value": "SimpleRetentionPolicy" }, - "OperationStatusJobsExtendedInfo": { - "description": "Operation status extended info for list of jobs.", + "SimpleSchedulePolicy": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/OperationStatusExtendedInfo" - } - ], + "description": "Simple policy schedule.", "properties": { - "jobIds": { - "description": "IDs of the jobs created for the protected item.", + "scheduleRunFrequency": { + "$ref": "#/definitions/ScheduleRunType", + "description": "Frequency of the schedule operation of this policy." + }, + "scheduleRunDays": { "type": "array", + "description": "List of days of week this schedule has to be run.", "items": { - "type": "string" + "$ref": "#/definitions/DayOfWeek" } }, - "failedJobsError": { - "description": "Stores all the failed jobs along with the corresponding error codes.", - "type": "object", - "additionalProperties": { - "type": "string" + "scheduleRunTimes": { + "type": "array", + "description": "List of times of day this schedule has to be run.", + "items": { + "type": "string", + "format": "date-time" } + }, + "hourlySchedule": { + "$ref": "#/definitions/HourlySchedule", + "description": "Hourly Schedule of this Policy" + }, + "scheduleWeeklyFrequency": { + "type": "integer", + "format": "int32", + "description": "At every number weeks this schedule has to be run." } }, - "x-ms-discriminator-value": "OperationStatusJobsExtendedInfo" - }, - "OperationStatusProvisionILRExtendedInfo": { - "description": "Operation status extended info for ILR provision action.", - "type": "object", "allOf": [ { - "$ref": "#/definitions/OperationStatusExtendedInfo" + "$ref": "#/definitions/SchedulePolicy" } ], + "x-ms-discriminator-value": "SimpleSchedulePolicy" + }, + "SimpleSchedulePolicyV2": { + "type": "object", + "description": "The V2 policy schedule for IaaS that supports hourly backups.", "properties": { - "recoveryTarget": { - "$ref": "#/definitions/InstantItemRecoveryTarget", - "description": "Target details for file / folder restore." + "scheduleRunFrequency": { + "$ref": "#/definitions/ScheduleRunType", + "description": "Frequency of the schedule operation of this policy." + }, + "hourlySchedule": { + "$ref": "#/definitions/HourlySchedule", + "description": "hourly schedule of this policy" + }, + "dailySchedule": { + "$ref": "#/definitions/DailySchedule", + "description": "Daily schedule of this policy" + }, + "weeklySchedule": { + "$ref": "#/definitions/WeeklySchedule", + "description": "Weekly schedule of this policy" } }, - "x-ms-discriminator-value": "OperationStatusProvisionILRExtendedInfo" - }, - "OperationStatusValidateOperationExtendedInfo": { - "description": "Operation status extended info for ValidateOperation action.", - "type": "object", "allOf": [ { - "$ref": "#/definitions/OperationStatusExtendedInfo" + "$ref": "#/definitions/SchedulePolicy" } ], - "properties": { - "validateOperationResponse": { - "$ref": "#/definitions/ValidateOperationResponse", - "description": "Gets the validation operation response" - } - }, - "x-ms-discriminator-value": "OperationStatusValidateOperationExtendedInfo" + "x-ms-discriminator-value": "SimpleSchedulePolicyV2" }, - "PreBackupValidation": { - "description": "Pre-backup validation for Azure VM Workload provider.", + "SnapshotBackupAdditionalDetails": { "type": "object", + "description": "Snapshot Backup related fields for WorkloadType SaPHanaSystem", "properties": { - "status": { - "description": "Status of protectable item, i.e. InProgress,Succeeded,Failed", - "enum": [ - "Invalid", - "Success", - "Failed" - ], - "type": "string", - "x-ms-enum": { - "name": "InquiryStatus", - "modelAsString": true - } + "instantRpRetentionRangeInDays": { + "type": "integer", + "format": "int32" }, - "code": { - "description": "Error code of protectable item", + "instantRPDetails": { "type": "string" }, - "message": { - "description": "Message corresponding to the error code for the protectable item", - "type": "string" + "userAssignedManagedIdentityDetails": { + "$ref": "#/definitions/UserAssignedManagedIdentityDetails", + "description": "User assigned managed identity details" } } }, - "ProtectableContainer": { - "description": "Protectable Container Class.", + "SnapshotRestoreParameters": { "type": "object", - "required": [ - "protectableContainerType" - ], + "description": "Encapsulates information regarding snapshot recovery for SAP Hana", "properties": { - "friendlyName": { - "description": "Friendly name of the container.", - "type": "string" - }, - "backupManagementType": { - "description": "Type of backup management for the container.", - "enum": [ - "Invalid", - "AzureIaasVM", - "MAB", - "DPM", - "AzureBackupServer", - "AzureSql", - "AzureStorage", - "AzureWorkload", - "DefaultBackup" - ], - "type": "string", - "x-ms-enum": { - "name": "BackupManagementType", - "modelAsString": true - } - }, - "protectableContainerType": { - "description": "Type of the container. The value of this property for\r\n1. Compute Azure VM is Microsoft.Compute/virtualMachines\r\n2. Classic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines", - "enum": [ - "Invalid", - "Unknown", - "IaasVMContainer", - "IaasVMServiceContainer", - "DPMContainer", - "AzureBackupServerContainer", - "MABContainer", - "Cluster", - "AzureSqlContainer", - "Windows", - "VCenter", - "VMAppContainer", - "SQLAGWorkLoadContainer", - "StorageContainer", - "GenericContainer", - "Microsoft.ClassicCompute/virtualMachines", - "Microsoft.Compute/virtualMachines", - "AzureWorkloadContainer" - ], - "type": "string", - "readOnly": false, - "x-ms-enum": { - "name": "protectableContainerType", - "modelAsString": false - } - }, - "healthStatus": { - "description": "Status of health of the container.", - "type": "string" + "skipAttachAndMount": { + "type": "boolean" }, - "containerId": { - "description": "Fabric Id of the container such as ARM Id.", + "logPointInTimeForDBRecovery": { "type": "string" } - }, - "discriminator": "protectableContainerType" + } }, - "ProtectableContainerResource": { - "description": "Protectable Container Class.", - "allOf": [ - { - "$ref": "#/definitions/Resource" - } + "SoftDeleteFeatureState": { + "type": "string", + "description": "Soft Delete feature state", + "enum": [ + "Invalid", + "Enabled", + "Disabled", + "AlwaysON" ], - "properties": { - "properties": { - "$ref": "#/definitions/ProtectableContainer", - "description": "ProtectableContainerResource properties" - } + "x-ms-enum": { + "name": "SoftDeleteFeatureState", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Enabled", + "value": "Enabled" + }, + { + "name": "Disabled", + "value": "Disabled" + }, + { + "name": "AlwaysON", + "value": "AlwaysON" + } + ] } }, - "ProtectableContainerResourceList": { - "description": "List of ProtectableContainer resources", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ResourceList" - } + "StorageType": { + "type": "string", + "description": "Storage type", + "enum": [ + "Invalid", + "GeoRedundant", + "LocallyRedundant", + "ZoneRedundant", + "ReadAccessGeoZoneRedundant" ], - "properties": { - "value": { - "description": "List of resources.", - "type": "array", - "items": { - "$ref": "#/definitions/ProtectableContainerResource" + "x-ms-enum": { + "name": "StorageType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "GeoRedundant", + "value": "GeoRedundant" + }, + { + "name": "LocallyRedundant", + "value": "LocallyRedundant" + }, + { + "name": "ZoneRedundant", + "value": "ZoneRedundant" + }, + { + "name": "ReadAccessGeoZoneRedundant", + "value": "ReadAccessGeoZoneRedundant" + } + ] + } + }, + "StorageTypeState": { + "type": "string", + "description": "Locked or Unlocked. Once a machine is registered against a resource, the storageTypeState is always Locked.", + "enum": [ + "Invalid", + "Locked", + "Unlocked" + ], + "x-ms-enum": { + "name": "StorageTypeState", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Locked", + "value": "Locked" + }, + { + "name": "Unlocked", + "value": "Unlocked" } - } + ] } }, - "ProtectionContainer": { - "description": "Base class for container with backup items. Containers with specific workloads are derived from this class.", + "SubProtectionPolicy": { "type": "object", - "required": [ - "containerType" - ], + "description": "Sub-protection policy which includes schedule and retention", "properties": { - "friendlyName": { - "description": "Friendly name of the container.", - "type": "string" - }, - "backupManagementType": { - "description": "Type of backup management for the container.", - "enum": [ - "Invalid", - "AzureIaasVM", - "MAB", - "DPM", - "AzureBackupServer", - "AzureSql", - "AzureStorage", - "AzureWorkload", - "DefaultBackup" - ], - "type": "string", - "x-ms-enum": { - "name": "BackupManagementType", - "modelAsString": true - } + "policyType": { + "$ref": "#/definitions/PolicyType", + "description": "Type of backup policy type" }, - "registrationStatus": { - "description": "Status of registration of the container with the Recovery Services Vault.", - "type": "string" + "schedulePolicy": { + "$ref": "#/definitions/SchedulePolicy", + "description": "Backup schedule specified as part of backup policy." }, - "healthStatus": { - "description": "Status of health of the container.", - "type": "string" + "retentionPolicy": { + "$ref": "#/definitions/RetentionPolicy", + "description": "Retention policy with the details on backup copy retention ranges." }, - "containerType": { - "description": "Type of the container. The value of this property for: 1. Compute Azure VM is Microsoft.Compute/virtualMachines 2.\r\nClassic Compute Azure VM is Microsoft.ClassicCompute/virtualMachines 3. Windows machines (like MAB, DPM etc) is\r\nWindows 4. Azure SQL instance is AzureSqlContainer. 5. Storage containers is StorageContainer. 6. Azure workload\r\nBackup is VMAppContainer", - "enum": [ - "Invalid", - "Unknown", - "IaasVMContainer", - "IaasVMServiceContainer", - "DPMContainer", - "AzureBackupServerContainer", - "MABContainer", - "Cluster", - "AzureSqlContainer", - "Windows", - "VCenter", - "VMAppContainer", - "SQLAGWorkLoadContainer", - "StorageContainer", - "GenericContainer", - "Microsoft.ClassicCompute/virtualMachines", - "Microsoft.Compute/virtualMachines", - "AzureWorkloadContainer" - ], - "type": "string", - "x-ms-enum": { - "name": "protectableContainerType", - "modelAsString": true + "tieringPolicy": { + "type": "object", + "description": "Tiering policy to automatically move RPs to another tier.\nKey is Target Tier, defined in RecoveryPointTierType enum.\nTiering policy specifies the criteria to move RP to the target tier.", + "additionalProperties": { + "$ref": "#/definitions/TieringPolicy" } }, - "protectableObjectType": { - "description": "Type of the protectable object associated with this container", - "type": "string" + "snapshotBackupAdditionalDetails": { + "$ref": "#/definitions/SnapshotBackupAdditionalDetails", + "description": "Snapshot Backup related fields for WorkloadType SaPHanaSystem" } - }, - "discriminator": "containerType" + } }, - "ProtectionContainerResource": { - "description": "Base class for container with backup items. Containers with specific workloads are derived from this class.", - "allOf": [ - { - "$ref": "#/definitions/Resource" - } + "SupportStatus": { + "type": "string", + "description": "Support status of feature", + "enum": [ + "Invalid", + "Supported", + "DefaultOFF", + "DefaultON", + "NotSupported" ], - "properties": { - "properties": { - "$ref": "#/definitions/ProtectionContainer", - "description": "ProtectionContainerResource properties" - } + "x-ms-enum": { + "name": "SupportStatus", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Supported", + "value": "Supported" + }, + { + "name": "DefaultOFF", + "value": "DefaultOFF" + }, + { + "name": "DefaultON", + "value": "DefaultON" + }, + { + "name": "NotSupported", + "value": "NotSupported" + } + ] } }, - "ProtectionContainerResourceList": { - "description": "List of ProtectionContainer resources", + "TargetAFSRestoreInfo": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ResourceList" - } - ], + "description": "Target Azure File Share Info.", "properties": { - "value": { - "description": "List of resources.", - "type": "array", - "items": { - "$ref": "#/definitions/ProtectionContainerResource" - } + "name": { + "type": "string", + "description": "File share name" + }, + "targetResourceId": { + "type": "string", + "description": "Target file share resource ARM ID" } } }, - "SecurityPinBase": { - "description": "Base class for get security pin request body", + "TargetDiskNetworkAccessOption": { + "type": "string", + "description": "Network access settings to be used for restored disks", + "enum": [ + "SameAsOnSourceDisks", + "EnablePrivateAccessForAllDisks", + "EnablePublicAccessForAllDisks" + ], + "x-ms-enum": { + "name": "TargetDiskNetworkAccessOption", + "modelAsString": false + } + }, + "TargetDiskNetworkAccessSettings": { "type": "object", + "description": "Specifies target network access settings for disks of VM to be restored.", "properties": { - "resourceGuardOperationRequests": { - "description": "ResourceGuard Operation Requests", - "type": "array", - "items": { - "type": "string" - } + "targetDiskNetworkAccessOption": { + "$ref": "#/definitions/TargetDiskNetworkAccessOption", + "description": "Network access settings to be used for restored disks" + }, + "targetDiskAccessId": { + "type": "string", + "description": "Gets or sets the ARM resource ID of the target disk access to be used when TargetDiskNetworkAccessOption is set to TargetDiskNetworkAccessOption.UseNew" } } }, - "TokenInformation": { - "description": "The token information details.", + "TargetRestoreInfo": { "type": "object", + "description": "Details about target workload during restore operation.", "properties": { - "token": { - "description": "Token value.", - "type": "string" + "overwriteOption": { + "$ref": "#/definitions/OverwriteOptions", + "description": "Can Overwrite if Target DataBase already exists" }, - "expiryTimeInUtcTicks": { - "format": "int64", - "description": "Expiry time of token.", - "type": "integer" + "containerId": { + "type": "string", + "description": "Resource Id name of the container in which Target DataBase resides" }, - "securityPIN": { - "description": "Security PIN", - "type": "string" + "databaseName": { + "type": "string", + "description": "Database name InstanceName/DataBaseName for SQL or System/DbName for SAP Hana" + }, + "targetDirectoryForFileRestore": { + "type": "string", + "description": "Target directory location for restore as files." } } }, - "WorkloadInquiryDetails": { - "description": "Details of an inquired protectable item.", + "TieringCostInfo": { "type": "object", + "description": "Base class for tiering cost response", "properties": { - "type": { - "description": "Type of the Workload such as SQL, Oracle etc.", - "type": "string" - }, - "itemCount": { - "format": "int64", - "description": "Contains the protectable item Count inside this Container.", - "type": "integer" - }, - "inquiryValidation": { - "$ref": "#/definitions/InquiryValidation", - "description": "Inquiry validation such as permissions and other backup validations." + "objectType": { + "type": "string", + "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types." } - } + }, + "discriminator": "objectType", + "required": [ + "objectType" + ] }, - "WorkloadItem": { - "description": "Base class for backup item. Workload-specific backup items are derived from this class.", + "TieringCostRehydrationInfo": { "type": "object", + "description": "Response parameters for tiering cost info for rehydration", + "properties": { + "rehydrationSizeInBytes": { + "type": "integer", + "format": "int64", + "description": "Rehydration size in bytes" + }, + "retailRehydrationCostPerGBPerMonth": { + "type": "number", + "format": "double", + "description": "Source tier to target tier rehydration cost per GB per month" + } + }, "required": [ - "workloadItemType" + "rehydrationSizeInBytes", + "retailRehydrationCostPerGBPerMonth" + ], + "allOf": [ + { + "$ref": "#/definitions/TieringCostInfo" + } ], + "x-ms-discriminator-value": "TieringCostRehydrationInfo" + }, + "TieringCostSavingInfo": { + "type": "object", + "description": "Response parameters for tiering cost info for savings", "properties": { - "backupManagementType": { - "description": "Type of backup management to backup an item.", - "type": "string" - }, - "workloadType": { - "description": "Type of workload for the backup management", - "type": "string" + "sourceTierSizeReductionInBytes": { + "type": "integer", + "format": "int64", + "description": "Source tier size reduction in bytes after moving all the recommended backup points to target tier" }, - "workloadItemType": { - "description": "Type of the backup item.", - "type": "string" + "targetTierSizeIncreaseInBytes": { + "type": "integer", + "format": "int64", + "description": "Target tier size increase in bytes after moving all the recommended backup points to target tier" }, - "friendlyName": { - "description": "Friendly name of the backup item.", - "type": "string" + "retailSourceTierCostPerGBPerMonth": { + "type": "number", + "format": "double", + "description": "Source tier retail cost per GB per month" }, - "protectionState": { - "description": "State of the back up item.", - "enum": [ - "Invalid", - "NotProtected", - "Protecting", - "Protected", - "ProtectionFailed" - ], - "type": "string", - "x-ms-enum": { - "name": "ProtectionStatus", - "modelAsString": true - } + "retailTargetTierCostPerGBPerMonth": { + "type": "number", + "format": "double", + "description": "Target tier retail cost per GB per month" } }, - "discriminator": "workloadItemType" - }, - "WorkloadItemResource": { - "description": "Base class for backup item. Workload-specific backup items are derived from this class.", + "required": [ + "sourceTierSizeReductionInBytes", + "targetTierSizeIncreaseInBytes", + "retailSourceTierCostPerGBPerMonth", + "retailTargetTierCostPerGBPerMonth" + ], "allOf": [ { - "$ref": "#/definitions/Resource" + "$ref": "#/definitions/TieringCostInfo" } ], - "properties": { - "properties": { - "$ref": "#/definitions/WorkloadItem", - "description": "WorkloadItemResource properties" - } + "x-ms-discriminator-value": "TieringCostSavingInfo" + }, + "TieringMode": { + "type": "string", + "description": "Tiering Mode to control automatic tiering of recovery points. Supported values are:\n1. TierRecommended: Tier all recovery points recommended to be tiered\n2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below.\n3. DoNotTier: Do not tier any recovery points", + "enum": [ + "Invalid", + "TierRecommended", + "TierAfter", + "DoNotTier" + ], + "x-ms-enum": { + "name": "TieringMode", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "TierRecommended", + "value": "TierRecommended" + }, + { + "name": "TierAfter", + "value": "TierAfter" + }, + { + "name": "DoNotTier", + "value": "DoNotTier" + } + ] } }, - "WorkloadItemResourceList": { - "description": "List of WorkloadItem resources", + "TieringPolicy": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ResourceList" - } - ], + "description": "Tiering Policy for a target tier.\nIf the policy is not specified for a given target tier, service retains the existing configured tiering policy for that tier", "properties": { - "value": { - "description": "List of resources.", - "type": "array", - "items": { - "$ref": "#/definitions/WorkloadItemResource" - } + "tieringMode": { + "$ref": "#/definitions/TieringMode", + "description": "Tiering Mode to control automatic tiering of recovery points. Supported values are:\n1. TierRecommended: Tier all recovery points recommended to be tiered\n2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below.\n3. DoNotTier: Do not tier any recovery points" + }, + "duration": { + "type": "integer", + "format": "int32", + "description": "Number of days/weeks/months/years to retain backups in current tier before tiering.\nUsed only if TieringMode is set to TierAfter" + }, + "durationType": { + "$ref": "#/definitions/RetentionDurationType", + "description": "Retention duration type: days/weeks/months/years\nUsed only if TieringMode is set to TierAfter" } } }, - "WorkloadProtectableItem": { - "description": "Base class for backup item. Workload-specific backup items are derived from this class.", + "TokenInformation": { "type": "object", - "required": [ - "protectableItemType" - ], + "description": "The token information details.", "properties": { - "backupManagementType": { - "description": "Type of backup management to backup an item.", - "type": "string" + "token": { + "type": "string", + "description": "Token value." }, - "workloadType": { - "description": "Type of workload for the backup management", - "type": "string" + "expiryTimeInUtcTicks": { + "type": "integer", + "format": "int64", + "description": "Expiry time of token." + }, + "securityPIN": { + "type": "string", + "description": "Security PIN" + } + } + }, + "TriggerDataMoveRequest": { + "type": "object", + "description": "Trigger DataMove Request", + "properties": { + "sourceResourceId": { + "type": "string", + "description": "ARM Id of source vault" }, - "protectableItemType": { - "description": "Type of the backup item.", - "type": "string" + "sourceRegion": { + "type": "string", + "description": "Source Region" }, - "friendlyName": { - "description": "Friendly name of the backup item.", - "type": "string" + "dataMoveLevel": { + "$ref": "#/definitions/DataMoveLevel", + "description": "DataMove Level" }, - "protectionState": { - "description": "State of the back up item.", - "enum": [ - "Invalid", - "NotProtected", - "Protecting", - "Protected", - "ProtectionFailed" - ], + "correlationId": { "type": "string", - "x-ms-enum": { - "name": "ProtectionStatus", - "modelAsString": true + "description": "Correlation Id" + }, + "sourceContainerArmIds": { + "type": "array", + "description": "Source Container ArmIds", + "items": { + "type": "string" } + }, + "pauseGC": { + "type": "boolean", + "description": "Pause GC" } }, - "discriminator": "protectableItemType" + "required": [ + "sourceResourceId", + "sourceRegion", + "dataMoveLevel", + "correlationId" + ] }, - "WorkloadProtectableItemResource": { - "description": "Base class for backup item. Workload-specific backup items are derived from this class.", - "allOf": [ - { - "$ref": "#/definitions/Resource" - } + "Type": { + "type": "string", + "description": "Backup management type for this container.", + "enum": [ + "Invalid", + "BackupProtectedItemCountSummary", + "BackupProtectionContainerCountSummary" ], - "properties": { - "properties": { - "$ref": "#/definitions/WorkloadProtectableItem", - "description": "WorkloadProtectableItemResource properties" - } + "x-ms-enum": { + "name": "Type", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "BackupProtectedItemCountSummary", + "value": "BackupProtectedItemCountSummary" + }, + { + "name": "BackupProtectionContainerCountSummary", + "value": "BackupProtectionContainerCountSummary" + } + ] } }, - "WorkloadProtectableItemResourceList": { - "description": "List of WorkloadProtectableItem resources", + "TypeSpec.Http.OkResponse": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ResourceList" - } - ], + "description": "The request has succeeded." + }, + "UnlockDeleteRequest": { + "type": "object", + "description": "Request body of unlock delete API.", "properties": { - "value": { - "description": "List of resources.", + "resourceGuardOperationRequests": { "type": "array", "items": { - "$ref": "#/definitions/WorkloadProtectableItemResource" + "type": "string" } + }, + "resourceToBeDeleted": { + "type": "string" } } }, - "AzureWorkloadSAPHanaPointInTimeRestoreWithRehydrateRequest": { - "description": "AzureWorkload SAP Hana-specific restore with integrated rehydration of recovery point.", + "UnlockDeleteResponse": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureWorkloadSAPHanaPointInTimeRestoreRequest" - } - ], + "description": "Response of Unlock Delete API.", "properties": { - "recoveryPointRehydrationInfo": { - "$ref": "#/definitions/RecoveryPointRehydrationInfo", - "description": "RP Rehydration Info" + "unlockDeleteExpiryTime": { + "type": "string", + "description": "This is the time when unlock delete privileges will get expired." } - }, - "x-ms-discriminator-value": "AzureWorkloadSAPHanaPointInTimeRestoreWithRehydrateRequest" + } }, - "AzureWorkloadSAPHanaRestoreWithRehydrateRequest": { - "description": "AzureWorkload SAP Hana-specific restore with integrated rehydration of recovery point.", - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureWorkloadSAPHanaRestoreRequest" - } + "UsagesUnit": { + "type": "string", + "description": "Unit of the usage.", + "enum": [ + "Count", + "Bytes", + "Seconds", + "Percent", + "CountPerSecond", + "BytesPerSecond" ], + "x-ms-enum": { + "name": "UsagesUnit", + "modelAsString": true, + "values": [ + { + "name": "Count", + "value": "Count" + }, + { + "name": "Bytes", + "value": "Bytes" + }, + { + "name": "Seconds", + "value": "Seconds" + }, + { + "name": "Percent", + "value": "Percent" + }, + { + "name": "CountPerSecond", + "value": "CountPerSecond" + }, + { + "name": "BytesPerSecond", + "value": "BytesPerSecond" + } + ] + } + }, + "UserAssignedIdentityProperties": { + "type": "object", + "description": "User assigned managed identity properties", "properties": { - "recoveryPointRehydrationInfo": { - "$ref": "#/definitions/RecoveryPointRehydrationInfo", - "description": "RP Rehydration Info" + "clientId": { + "type": "string", + "description": "The client ID of the assigned identity." + }, + "principalId": { + "type": "string", + "description": "The principal ID of the assigned identity." } - }, - "x-ms-discriminator-value": "AzureWorkloadSAPHanaRestoreWithRehydrateRequest" + } }, - "AzureWorkloadSQLPointInTimeRestoreWithRehydrateRequest": { - "description": "AzureWorkload SQL-specific restore with integrated rehydration of recovery point.", + "UserAssignedManagedIdentityDetails": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/AzureWorkloadSQLPointInTimeRestoreRequest" - } - ], + "description": "User assigned managed identity details", "properties": { - "recoveryPointRehydrationInfo": { - "$ref": "#/definitions/RecoveryPointRehydrationInfo", - "description": "RP Rehydration Info" + "identityArmId": { + "type": "string", + "description": "The ARM id of the assigned identity." + }, + "identityName": { + "type": "string", + "description": "The name of the assigned identity." + }, + "userAssignedIdentityProperties": { + "$ref": "#/definitions/UserAssignedIdentityProperties", + "description": "User assigned managed identity properties" } - }, - "x-ms-discriminator-value": "AzureWorkloadSQLPointInTimeRestoreWithRehydrateRequest" + } }, - "AzureWorkloadSQLRestoreWithRehydrateRequest": { - "description": "AzureWorkload SQL-specific restore with integrated rehydration of recovery point", + "ValidateIaasVMRestoreOperationRequest": { "type": "object", + "description": "AzureRestoreValidation request.", "allOf": [ { - "$ref": "#/definitions/AzureWorkloadSQLRestoreRequest" + "$ref": "#/definitions/ValidateRestoreOperationRequest" } ], + "x-ms-discriminator-value": "ValidateIaasVMRestoreOperationRequest" + }, + "ValidateOperationRequest": { + "type": "object", + "description": "Base class for validate operation request.", "properties": { - "recoveryPointRehydrationInfo": { - "$ref": "#/definitions/RecoveryPointRehydrationInfo", - "description": "RP Rehydration Info" + "objectType": { + "type": "string", + "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types." } }, - "x-ms-discriminator-value": "AzureWorkloadSQLRestoreWithRehydrateRequest" + "discriminator": "objectType", + "required": [ + "objectType" + ] }, - "IaasVMRestoreWithRehydrationRequest": { - "description": "IaaS VM workload-specific restore with integrated rehydration of recovery point.", + "ValidateOperationRequestResource": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/IaasVMRestoreRequest" - } - ], + "description": "Base class for validate operation request.", "properties": { - "recoveryPointRehydrationInfo": { - "$ref": "#/definitions/RecoveryPointRehydrationInfo", - "description": "RP Rehydration Info" + "id": { + "type": "string", + "description": "Recovery point ID." + }, + "properties": { + "$ref": "#/definitions/ValidateOperationRequest", + "description": "ValidateOperationRequestResource properties" } }, - "x-ms-discriminator-value": "IaasVMRestoreWithRehydrationRequest" + "required": [ + "id", + "properties" + ] }, - "MoveRPAcrossTiersRequest": { + "ValidateOperationResponse": { "type": "object", + "description": "Base class for validate operation response.", "properties": { - "objectType": { - "description": "Gets the class type.", - "type": "string" - }, - "sourceTierType": { - "description": "Source tier from where RP needs to be moved", - "enum": [ - "Invalid", - "InstantRP", - "HardenedRP", - "ArchivedRP" - ], - "type": "string", - "x-ms-enum": { - "name": "RecoveryPointTierType", - "modelAsString": false - } - }, - "targetTierType": { - "description": "Target tier where RP needs to be moved", - "enum": [ - "Invalid", - "InstantRP", - "HardenedRP", - "ArchivedRP" - ], - "type": "string", - "x-ms-enum": { - "name": "RecoveryPointTierType", - "modelAsString": false - } + "validationResults": { + "type": "array", + "description": "Gets the validation result", + "items": { + "$ref": "#/definitions/ErrorDetail" + }, + "x-ms-identifiers": [ + "code" + ] } } }, - "RecoveryPointMoveReadinessInfo": { + "ValidateOperationsResponse": { "type": "object", "properties": { - "isReadyForMove": { - "type": "boolean" - }, - "additionalInfo": { - "type": "string" + "validateOperationResponse": { + "$ref": "#/definitions/ValidateOperationResponse", + "description": "Base class for validate operation response." } } }, - "RecoveryPointRehydrationInfo": { - "description": "RP Rehydration Info", + "ValidateRestoreOperationRequest": { "type": "object", + "description": "AzureRestoreValidation request.", "properties": { - "rehydrationRetentionDuration": { - "description": "How long the rehydrated RP should be kept\r\nShould be ISO8601 Duration format e.g. \"P7D\"", - "type": "string" - }, - "rehydrationPriority": { - "description": "Rehydration Priority", - "enum": [ - "Standard", - "High" - ], - "type": "string", - "x-ms-enum": { - "name": "RehydrationPriority", - "modelAsString": true - } + "restoreRequest": { + "$ref": "#/definitions/RestoreRequest", + "description": "Sets restore request to be validated" + } + }, + "allOf": [ + { + "$ref": "#/definitions/ValidateOperationRequest" } + ], + "x-ms-discriminator-value": "ValidateRestoreOperationRequest" + }, + "ValidationStatus": { + "type": "string", + "description": "Validation Status", + "enum": [ + "Invalid", + "Succeeded", + "Failed" + ], + "x-ms-enum": { + "name": "ValidationStatus", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Succeeded", + "value": "Succeeded" + }, + { + "name": "Failed", + "value": "Failed" + } + ] } }, - "RecoveryPointProperties": { - "description": "Properties of Recovery Point", + "VaultJob": { "type": "object", + "description": "Vault level Job", "properties": { - "expiryTime": { - "description": "Expiry time of Recovery Point in UTC.", - "type": "string" + "duration": { + "type": "string", + "format": "duration", + "description": "Time elapsed during the execution of this job." + }, + "actionsInfo": { + "type": "array", + "description": "Gets or sets the state/actions applicable on this job like cancel/retry.", + "items": { + "$ref": "#/definitions/JobSupportedAction" + } }, - "ruleName": { - "description": "Rule name tagged on Recovery Point that governs life cycle", - "type": "string" + "errorDetails": { + "type": "array", + "description": "Error details on execution of this job.", + "items": { + "$ref": "#/definitions/VaultJobErrorInfo" + }, + "x-ms-identifiers": [ + "errorCode" + ] }, - "isSoftDeleted": { - "description": "Bool to indicate whether RP is in soft delete state or not", - "type": "boolean" + "extendedInfo": { + "$ref": "#/definitions/VaultJobExtendedInfo", + "description": "Additional information about the job." } - } + }, + "allOf": [ + { + "$ref": "#/definitions/Job" + } + ], + "x-ms-discriminator-value": "VaultJob" }, - "ListRecoveryPointsRecommendedForMoveRequest": { - "description": "ListRecoveryPointsRecommendedForMoveRequest Request", + "VaultJobErrorInfo": { "type": "object", + "description": "Vault Job specific error information", "properties": { - "objectType": { - "description": "Gets the class type.", - "type": "string" + "errorCode": { + "type": "integer", + "format": "int32", + "description": "Error code." }, - "excludedRPList": { - "description": "List of Recovery Points excluded from Move", + "errorString": { + "type": "string", + "description": "Localized error string." + }, + "recommendations": { "type": "array", + "description": "List of localized recommendations for above error code.", "items": { "type": "string" } } } }, - "UnlockDeleteRequest": { - "description": "Request body of unlock delete API.", + "VaultJobExtendedInfo": { "type": "object", + "description": "Vault Job for CMK - has CMK specific info.", "properties": { - "resourceGuardOperationRequests": { - "type": "array", - "items": { + "propertyBag": { + "type": "object", + "description": "Job properties.", + "additionalProperties": { "type": "string" } - }, - "resourceToBeDeleted": { - "type": "string" } } }, - "UnlockDeleteResponse": { - "description": "Response of Unlock Delete API.", + "VaultResource": { "type": "object", + "description": "Vault resource in Recovery Service.", "properties": { - "unlockDeleteExpiryTime": { - "description": "This is the time when unlock delete privileges will get expired.", - "type": "string" + "name": { + "type": "string", + "description": "The name of the VaultResource", + "readOnly": true } - } + }, + "required": [ + "name" + ] }, - "ResourceGuardOperationDetail": { + "VaultRetentionPolicy": { "type": "object", + "description": "Vault retention policy for AzureFileShare", "properties": { - "vaultCriticalOperation": { - "type": "string" + "vaultRetention": { + "$ref": "#/definitions/RetentionPolicy", + "description": "Base class for retention policy." }, - "defaultResourceRequest": { - "type": "string" + "snapshotRetentionInDays": { + "type": "integer", + "format": "int32" } - } + }, + "required": [ + "vaultRetention", + "snapshotRetentionInDays" + ] }, - "ResourceGuardProxyBase": { + "VaultStorageConfigOperationResultResponse": { "type": "object", + "description": "Operation result response for Vault Storage Config", + "properties": { + "objectType": { + "type": "string", + "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types." + } + }, + "discriminator": "objectType", "required": [ - "resourceGuardResourceId" + "objectType" + ] + }, + "VaultSubResourceType": { + "type": "string", + "description": "GroupId for the PrivateEndpointConnection - AzureBackup, AzureBackup_secondary or AzureSiteRecovery", + "enum": [ + "AzureBackup", + "AzureBackup_secondary", + "AzureSiteRecovery" ], - "properties": { - "resourceGuardResourceId": { - "type": "string" - }, - "resourceGuardOperationDetails": { - "type": "array", - "items": { - "$ref": "#/definitions/ResourceGuardOperationDetail" + "x-ms-enum": { + "name": "VaultSubResourceType", + "modelAsString": true, + "values": [ + { + "name": "AzureBackup", + "value": "AzureBackup" }, - "x-ms-identifiers": [] - }, - "lastUpdatedTime": { - "type": "string" - }, - "description": { - "type": "string" - } + { + "name": "AzureBackup_secondary", + "value": "AzureBackup_secondary" + }, + { + "name": "AzureSiteRecovery", + "value": "AzureSiteRecovery" + } + ] } }, - "ResourceGuardProxyBaseResource": { - "allOf": [ - { - "$ref": "#/definitions/Resource" - } + "WeekOfMonth": { + "type": "string", + "enum": [ + "First", + "Second", + "Third", + "Fourth", + "Last", + "Invalid" ], + "x-ms-enum": { + "name": "WeekOfMonth", + "modelAsString": false + } + }, + "WeeklyRetentionFormat": { "type": "object", + "description": "Weekly retention format.", "properties": { - "properties": { - "$ref": "#/definitions/ResourceGuardProxyBase", - "description": "ResourceGuardProxyBaseResource properties" + "daysOfTheWeek": { + "type": "array", + "description": "List of days of the week.", + "items": { + "$ref": "#/definitions/DayOfWeek" + } + }, + "weeksOfTheMonth": { + "type": "array", + "description": "List of weeks of month.", + "items": { + "$ref": "#/definitions/WeekOfMonth" + } } } }, - "ResourceGuardProxyBaseResourceList": { - "description": "List of ResourceGuardProxyBase resources", + "WeeklyRetentionSchedule": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/ResourceList" - } - ], + "description": "Weekly retention schedule.", "properties": { - "value": { - "description": "List of resources.", + "daysOfTheWeek": { "type": "array", + "description": "List of days of week for weekly retention policy.", "items": { - "$ref": "#/definitions/ResourceGuardProxyBaseResource" + "$ref": "#/definitions/DayOfWeek" + } + }, + "retentionTimes": { + "type": "array", + "description": "Retention times of retention policy.", + "items": { + "type": "string", + "format": "date-time" } + }, + "retentionDuration": { + "$ref": "#/definitions/RetentionDuration", + "description": "Retention duration of retention Policy." } } }, - "TieringPolicy": { - "description": "Tiering Policy for a target tier.\r\nIf the policy is not specified for a given target tier, service retains the existing configured tiering policy for that tier", + "WeeklySchedule": { "type": "object", "properties": { - "tieringMode": { - "description": "Tiering Mode to control automatic tiering of recovery points. Supported values are:\r\n1. TierRecommended: Tier all recovery points recommended to be tiered\r\n2. TierAfter: Tier all recovery points after a fixed period, as specified in duration + durationType below.\r\n3. DoNotTier: Do not tier any recovery points", - "enum": [ - "Invalid", - "TierRecommended", - "TierAfter", - "DoNotTier" - ], - "type": "string", - "x-ms-enum": { - "name": "TieringMode", - "modelAsString": true + "scheduleRunDays": { + "type": "array", + "items": { + "$ref": "#/definitions/DayOfWeek" } }, - "duration": { - "format": "int32", - "description": "Number of days/weeks/months/years to retain backups in current tier before tiering.\r\nUsed only if TieringMode is set to TierAfter", - "type": "integer" - }, - "durationType": { - "description": "Retention duration type: days/weeks/months/years\r\nUsed only if TieringMode is set to TierAfter", - "enum": [ - "Invalid", - "Days", - "Weeks", - "Months", - "Years" - ], - "type": "string", - "x-ms-enum": { - "name": "RetentionDurationType", - "modelAsString": true + "scheduleRunTimes": { + "type": "array", + "description": "List of times of day this schedule has to be run.", + "items": { + "type": "string", + "format": "date-time" } } } }, - "TieringCostInfo": { - "description": "Base class for tiering cost response", - "required": [ - "objectType" - ], + "WorkloadInquiryDetails": { "type": "object", + "description": "Details of an inquired protectable item.", "properties": { - "objectType": { - "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.", - "type": "string" + "type": { + "type": "string", + "description": "Type of the Workload such as SQL, Oracle etc." + }, + "itemCount": { + "type": "integer", + "format": "int64", + "description": "Contains the protectable item Count inside this Container." + }, + "inquiryValidation": { + "$ref": "#/definitions/InquiryValidation", + "description": "Inquiry validation such as permissions and other backup validations." } - }, - "discriminator": "objectType" + } }, - "FetchTieringCostInfoForRehydrationRequest": { - "description": "Request parameters for fetching cost info of rehydration", - "required": [ - "objectType", - "containerName", - "protectedItemName", - "recoveryPointId", - "rehydrationPriority", - "sourceTierType", - "targetTierType" - ], + "WorkloadItem": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/FetchTieringCostInfoRequest" - } - ], + "description": "Base class for backup item. Workload-specific backup items are derived from this class.", "properties": { - "containerName": { - "description": "Name of the protected item container", - "type": "string" + "backupManagementType": { + "type": "string", + "description": "Type of backup management to backup an item." }, - "protectedItemName": { - "description": "Name of the protectedItemName", - "type": "string" + "workloadType": { + "type": "string", + "description": "Type of workload for the backup management" }, - "recoveryPointId": { - "description": "ID of the backup copy for rehydration cost info needs to be fetched.", - "type": "string" + "workloadItemType": { + "type": "string", + "description": "Type of the backup item." }, - "rehydrationPriority": { - "description": "Rehydration Priority", - "enum": [ - "Standard", - "High" - ], + "friendlyName": { "type": "string", - "x-ms-enum": { - "name": "RehydrationPriority", - "modelAsString": true - } + "description": "Friendly name of the backup item." + }, + "protectionState": { + "$ref": "#/definitions/ProtectionStatus", + "description": "State of the back up item." } }, - "x-ms-discriminator-value": "FetchTieringCostInfoForRehydrationRequest" - }, - "FetchTieringCostInfoRequest": { - "description": "Base class for tiering cost request.\r\nSpecific cost request types are derived from this class.", + "discriminator": "workloadItemType", "required": [ - "sourceTierType", - "targetTierType", - "objectType" - ], + "workloadItemType" + ] + }, + "WorkloadItemResource": { "type": "object", + "description": "Base class for backup item. Workload-specific backup items are derived from this class.", "properties": { - "sourceTierType": { - "description": "Source tier for the request", - "enum": [ - "Invalid", - "InstantRP", - "HardenedRP", - "ArchivedRP" - ], + "location": { "type": "string", - "x-ms-enum": { - "name": "RecoveryPointTierType", - "modelAsString": false + "description": "Resource location." + }, + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" } }, - "targetTierType": { - "description": "target tier for the request", - "enum": [ - "Invalid", - "InstantRP", - "HardenedRP", - "ArchivedRP" - ], + "eTag": { "type": "string", - "x-ms-enum": { - "name": "RecoveryPointTierType", - "modelAsString": false - } + "description": "Optional ETag." }, - "objectType": { - "description": "This property will be used as the discriminator for deciding the specific types in the polymorphic chain of types.", - "type": "string" + "properties": { + "$ref": "#/definitions/WorkloadItem", + "description": "WorkloadItemResource properties" } }, - "discriminator": "objectType" - }, - "TieringCostRehydrationInfo": { - "description": "Response parameters for tiering cost info for rehydration", - "required": [ - "objectType", - "rehydrationSizeInBytes", - "retailRehydrationCostPerGBPerMonth" - ], - "type": "object", "allOf": [ { - "$ref": "#/definitions/TieringCostInfo" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" } - ], + ] + }, + "WorkloadItemResourceList": { + "type": "object", + "description": "List of WorkloadItem resources", "properties": { - "rehydrationSizeInBytes": { - "format": "int64", - "description": "Rehydration size in bytes", - "type": "integer" - }, - "retailRehydrationCostPerGBPerMonth": { - "format": "double", - "description": "Source tier to target tier rehydration cost per GB per month", - "type": "number" + "value": { + "type": "array", + "description": "List of resources.", + "items": { + "$ref": "#/definitions/WorkloadItemResource" + } } }, - "x-ms-discriminator-value": "TieringCostRehydrationInfo" - }, - "TieringCostSavingInfo": { - "description": "Response parameters for tiering cost info for savings", - "required": [ - "objectType", - "sourceTierSizeReductionInBytes", - "targetTierSizeIncreaseInBytes", - "retailSourceTierCostPerGBPerMonth", - "retailTargetTierCostPerGBPerMonth" - ], - "type": "object", "allOf": [ { - "$ref": "#/definitions/TieringCostInfo" + "$ref": "#/definitions/ResourceList" } + ] + }, + "WorkloadItemType": { + "type": "string", + "description": "Workload item type of the item for which intent is to be set", + "enum": [ + "Invalid", + "SQLInstance", + "SQLDataBase", + "SAPHanaSystem", + "SAPHanaDatabase", + "SAPAseSystem", + "SAPAseDatabase", + "SAPHanaDBInstance" ], + "x-ms-enum": { + "name": "WorkloadItemType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "SQLInstance", + "value": "SQLInstance" + }, + { + "name": "SQLDataBase", + "value": "SQLDataBase" + }, + { + "name": "SAPHanaSystem", + "value": "SAPHanaSystem" + }, + { + "name": "SAPHanaDatabase", + "value": "SAPHanaDatabase" + }, + { + "name": "SAPAseSystem", + "value": "SAPAseSystem" + }, + { + "name": "SAPAseDatabase", + "value": "SAPAseDatabase" + }, + { + "name": "SAPHanaDBInstance", + "value": "SAPHanaDBInstance" + } + ] + } + }, + "WorkloadProtectableItem": { + "type": "object", + "description": "Base class for backup item. Workload-specific backup items are derived from this class.", "properties": { - "sourceTierSizeReductionInBytes": { - "format": "int64", - "description": "Source tier size reduction in bytes after moving all the recommended backup points to target tier", - "type": "integer" + "backupManagementType": { + "type": "string", + "description": "Type of backup management to backup an item." }, - "targetTierSizeIncreaseInBytes": { - "format": "int64", - "description": "Target tier size increase in bytes after moving all the recommended backup points to target tier", - "type": "integer" + "workloadType": { + "type": "string", + "description": "Type of workload for the backup management" }, - "retailSourceTierCostPerGBPerMonth": { - "format": "double", - "description": "Source tier retail cost per GB per month", - "type": "number" + "protectableItemType": { + "type": "string", + "description": "Type of the backup item." }, - "retailTargetTierCostPerGBPerMonth": { - "format": "double", - "description": "Target tier retail cost per GB per month", - "type": "number" + "friendlyName": { + "type": "string", + "description": "Friendly name of the backup item." + }, + "protectionState": { + "$ref": "#/definitions/ProtectionStatus", + "description": "State of the back up item." } }, - "x-ms-discriminator-value": "TieringCostSavingInfo" - }, - "FetchTieringCostSavingsInfoForPolicyRequest": { - "description": "Request parameters for tiering cost info for policy", + "discriminator": "protectableItemType", "required": [ - "objectType", - "policyName", - "sourceTierType", - "targetTierType" - ], + "protectableItemType" + ] + }, + "WorkloadProtectableItemResource": { "type": "object", - "allOf": [ - { - "$ref": "#/definitions/FetchTieringCostInfoRequest" - } - ], + "description": "Base class for backup item. Workload-specific backup items are derived from this class.", "properties": { - "policyName": { - "description": "Name of the backup policy for which the cost savings information is requested", - "type": "string" + "location": { + "type": "string", + "description": "Resource location." + }, + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + }, + "eTag": { + "type": "string", + "description": "Optional ETag." + }, + "properties": { + "$ref": "#/definitions/WorkloadProtectableItem", + "description": "WorkloadProtectableItemResource properties" } }, - "x-ms-discriminator-value": "FetchTieringCostSavingsInfoForPolicyRequest" - }, - "FetchTieringCostSavingsInfoForProtectedItemRequest": { - "description": "Request parameters for tiering cost info for protected item", - "required": [ - "objectType", - "containerName", - "protectedItemName", - "sourceTierType", - "targetTierType" - ], - "type": "object", "allOf": [ { - "$ref": "#/definitions/FetchTieringCostInfoRequest" + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Resource" } - ], + ] + }, + "WorkloadProtectableItemResourceList": { + "type": "object", + "description": "List of WorkloadProtectableItem resources", "properties": { - "containerName": { - "description": "Name of the protected item container", - "type": "string" - }, - "protectedItemName": { - "description": "Name of the protectedItemName", - "type": "string" + "value": { + "type": "array", + "description": "List of resources.", + "items": { + "$ref": "#/definitions/WorkloadProtectableItemResource" + } } }, - "x-ms-discriminator-value": "FetchTieringCostSavingsInfoForProtectedItemRequest" - }, - "FetchTieringCostSavingsInfoForVaultRequest": { - "description": "Request parameters for tiering cost info for vault", - "required": [ - "objectType", - "sourceTierType", - "targetTierType" - ], - "type": "object", "allOf": [ { - "$ref": "#/definitions/FetchTieringCostInfoRequest" + "$ref": "#/definitions/ResourceList" } - ], - "x-ms-discriminator-value": "FetchTieringCostSavingsInfoForVaultRequest" - } - }, - "parameters": { - "SubscriptionId": { - "name": "subscriptionId", - "in": "path", - "description": "The subscription Id.", - "required": true, - "type": "string" - }, - "AzureRegion": { - "name": "azureRegion", - "in": "path", - "description": "Azure region to hit Api", - "required": true, - "type": "string", - "x-ms-parameter-location": "method" + ] }, - "ResourceGroupName": { - "name": "resourceGroupName", - "in": "path", - "description": "The name of the resource group where the recovery services vault is present.", - "required": true, + "WorkloadType": { "type": "string", - "x-ms-parameter-location": "method" + "description": "Type of workload for the backup management", + "enum": [ + "Invalid", + "VM", + "FileFolder", + "AzureSqlDb", + "SQLDB", + "Exchange", + "Sharepoint", + "VMwareVM", + "SystemState", + "Client", + "GenericDataSource", + "SQLDataBase", + "AzureFileShare", + "SAPHanaDatabase", + "SAPAseDatabase", + "SAPHanaDBInstance" + ], + "x-ms-enum": { + "name": "WorkloadType", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "VM", + "value": "VM" + }, + { + "name": "FileFolder", + "value": "FileFolder" + }, + { + "name": "AzureSqlDb", + "value": "AzureSqlDb" + }, + { + "name": "SQLDB", + "value": "SQLDB" + }, + { + "name": "Exchange", + "value": "Exchange" + }, + { + "name": "Sharepoint", + "value": "Sharepoint" + }, + { + "name": "VMwareVM", + "value": "VMwareVM" + }, + { + "name": "SystemState", + "value": "SystemState" + }, + { + "name": "Client", + "value": "Client" + }, + { + "name": "GenericDataSource", + "value": "GenericDataSource" + }, + { + "name": "SQLDataBase", + "value": "SQLDataBase" + }, + { + "name": "AzureFileShare", + "value": "AzureFileShare" + }, + { + "name": "SAPHanaDatabase", + "value": "SAPHanaDatabase" + }, + { + "name": "SAPAseDatabase", + "value": "SAPAseDatabase" + }, + { + "name": "SAPHanaDBInstance", + "value": "SAPHanaDBInstance" + } + ] + } }, - "VaultName": { - "name": "vaultName", - "in": "path", - "description": "The name of the recovery services vault.", - "required": true, + "XcoolState": { "type": "string", - "x-ms-parameter-location": "method" + "description": "Vault x-cool state", + "enum": [ + "Invalid", + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "XcoolState", + "modelAsString": true, + "values": [ + { + "name": "Invalid", + "value": "Invalid" + }, + { + "name": "Enabled", + "value": "Enabled" + }, + { + "name": "Disabled", + "value": "Disabled" + } + ] + } }, - "RestrictedVaultName": { - "name": "vaultName", - "in": "path", - "description": "The name of the recovery services vault.", - "required": true, - "type": "string", - "x-ms-parameter-location": "method", - "pattern": "^[A-Za-z][-A-Za-z0-9]*[A-Za-z0-9]$", - "minLength": 2, - "maxLength": 50 - }, - "ApiVersion": { - "name": "api-version", - "in": "query", - "description": "Client Api Version.", - "required": true, - "type": "string" - } - }, - "securityDefinitions": { - "azure_auth": { - "type": "oauth2", - "description": "Azure Active Directory OAuth2 Flow", - "flow": "implicit", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "scopes": { - "user_impersonation": "impersonate your user account." + "YearlyRetentionSchedule": { + "type": "object", + "description": "Yearly retention schedule.", + "properties": { + "retentionScheduleFormatType": { + "$ref": "#/definitions/RetentionScheduleFormat", + "description": "Retention schedule format for yearly retention policy." + }, + "monthsOfYear": { + "type": "array", + "description": "List of months of year of yearly retention policy.", + "items": { + "$ref": "#/definitions/MonthOfYear" + } + }, + "retentionScheduleDaily": { + "$ref": "#/definitions/DailyRetentionFormat", + "description": "Daily retention format for yearly retention policy." + }, + "retentionScheduleWeekly": { + "$ref": "#/definitions/WeeklyRetentionFormat", + "description": "Weekly retention format for yearly retention policy." + }, + "retentionTimes": { + "type": "array", + "description": "Retention times of retention policy.", + "items": { + "type": "string", + "format": "date-time" + } + }, + "retentionDuration": { + "$ref": "#/definitions/RetentionDuration", + "description": "Retention duration of retention Policy." + } } } }, - "security": [ - { - "azure_auth": [ - "user_impersonation" - ] - } - ] + "parameters": {} } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/BackupFeature_Validate.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/BackupFeature_Validate.json index 7985594606c5..f25f1bf1dfe3 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/BackupFeature_Validate.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/BackupFeature_Validate.json @@ -1,13 +1,13 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "azureRegion": "southeastasia", "api-version": "2025-02-01", + "azureRegion": "southeastasia", "parameters": { "featureType": "AzureVMResourceBackup", "vmSize": "Basic_A0", "vmSku": "Premium" - } + }, + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { @@ -15,5 +15,7 @@ "supportStatus": "DefaultOFF" } } - } + }, + "operationId": "FeatureSupport_Validate", + "title": "Check Azure Vm Backup Feature Support" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/BackupPolicies_List.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/BackupPolicies_List.json index 4d23f3823cc4..6fece46aee46 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/BackupPolicies_List.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/BackupPolicies_List.json @@ -1,21 +1,34 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", + "$filter": "backupManagementType eq 'AzureIaasVM'", "api-version": "2025-02-01", - "$filter": "backupManagementType eq 'AzureIaasVM'" + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { "body": { "value": [ { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/DefaultPolicy", "name": "DefaultPolicy", "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/DefaultPolicy", "properties": { "backupManagementType": "AzureIaasVM", + "protectedItemsCount": 0, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 30, + "durationType": "Days" + }, + "retentionTimes": [ + "2017-12-05T19:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, "schedulePolicy": { "schedulePolicyType": "SimpleSchedulePolicy", "scheduleRunFrequency": "Daily", @@ -23,28 +36,28 @@ "2017-12-05T19:00:00Z" ], "scheduleWeeklyFrequency": 0 - }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": [ - "2017-12-05T19:00:00Z" - ], - "retentionDuration": { - "count": 30, - "durationType": "Days" - } - } - }, - "protectedItemsCount": 0 + } } }, { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", "name": "testPolicy1", "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", "properties": { "backupManagementType": "AzureIaasVM", + "protectedItemsCount": 0, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 1, + "durationType": "Days" + }, + "retentionTimes": [ + "2018-01-24T02:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, "schedulePolicy": { "schedulePolicyType": "SimpleSchedulePolicy", "scheduleRunFrequency": "Daily", @@ -53,24 +66,13 @@ ], "scheduleWeeklyFrequency": 0 }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": [ - "2018-01-24T02:00:00Z" - ], - "retentionDuration": { - "count": 1, - "durationType": "Days" - } - } - }, - "timeZone": "Pacific Standard Time", - "protectedItemsCount": 0 + "timeZone": "Pacific Standard Time" } } ] } } - } + }, + "operationId": "BackupPolicies_List", + "title": "List protection policies with backupManagementType filter as AzureIaasVm" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/BackupProtectableItems_List.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/BackupProtectableItems_List.json index 2cd37ee1fcab..a83a80f799a4 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/BackupProtectableItems_List.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/BackupProtectableItems_List.json @@ -1,30 +1,32 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", + "$filter": "backupManagementType eq 'AzureIaasVM'", "api-version": "2025-02-01", - "$filter": "backupManagementType eq 'AzureIaasVM'" + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { "body": { "value": [ { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/protectionContainers/IaasVMContainer;iaasvmcontainer;iaasvm-rg;iaasvm-1/protectableItems/VM;iaasvmcontainer;iaasvm-rg;iaasvm-1", "name": "VM;iaasvmcontainer;iaasvm-rg;iaasvm-1", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectableItems", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/protectionContainers/IaasVMContainer;iaasvmcontainer;iaasvm-rg;iaasvm-1/protectableItems/VM;iaasvmcontainer;iaasvm-rg;iaasvm-1", "properties": { + "backupManagementType": "AzureIaasVM", "friendlyName": "iaasvm-1", - "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ClassicCompute/virtualMachines/iaasvm-1", - "protectionState": "NotProtected", "protectableItemType": "Microsoft.ClassicCompute/virtualMachines", - "backupManagementType": "AzureIaasVM", + "protectionState": "NotProtected", + "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ClassicCompute/virtualMachines/iaasvm-1", "workloadType": "VM" } } ] } } - } + }, + "operationId": "BackupProtectableItems_List", + "title": "List protectable items with backupManagementType filter as AzureIaasVm" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/BackupProtectedItems_List.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/BackupProtectedItems_List.json index 49eff9347e4a..d8168fa70c69 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/BackupProtectedItems_List.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/BackupProtectedItems_List.json @@ -1,40 +1,42 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", + "$filter": "backupManagementType eq 'AzureIaasVM' and itemType eq 'VM'", "api-version": "2025-02-01", - "$filter": "backupManagementType eq 'AzureIaasVM' and itemType eq 'VM'" + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { "body": { "value": [ { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/protectionContainers/IaasVMContainer;iaasvmcontainer;iaasvm-rg;iaasvm-1/protectedItems/VM;iaasvmcontainer;iaasvm-rg;iaasvm-1", "name": "VM;iaasvmcontainer;iaasvm-rg;iaasvm-1", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/protectionContainers/IaasVMContainer;iaasvmcontainer;iaasvm-rg;iaasvm-1/protectedItems/VM;iaasvmcontainer;iaasvm-rg;iaasvm-1", "properties": { + "backupManagementType": "AzureIaasVM", + "containerName": "iaasvmcontainer;iaasvm-rg;iaasvm-1", "friendlyName": "iaasvm-1", - "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ClassicCompute/virtualMachines/iaasvm-1", - "protectionStatus": "Healthy", - "protectionState": "Protected", "healthStatus": "Passed", "lastBackupStatus": "Completed", "lastBackupTime": "2018-01-22T12:25:32.048723Z", + "lastRecoveryPoint": "2017-11-22T12:25:32.048723Z", + "policyId": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", + "policyType": "V2", "protectedItemDataId": "636482643132986882", "protectedItemType": "Microsoft.ClassicCompute/virtualMachines", - "backupManagementType": "AzureIaasVM", - "workloadType": "VM", - "containerName": "iaasvmcontainer;iaasvm-rg;iaasvm-1", + "protectionState": "Protected", + "protectionStatus": "Healthy", "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ClassicCompute/virtualMachines/iaasvm-1", - "policyId": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", - "lastRecoveryPoint": "2017-11-22T12:25:32.048723Z", - "policyType": "V2" + "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ClassicCompute/virtualMachines/iaasvm-1", + "workloadType": "VM" } } ] } } - } + }, + "operationId": "BackupProtectedItems_List", + "title": "List protected items with backupManagementType filter as AzureIaasVm" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ClassicCompute_ProtectedItem_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ClassicCompute_ProtectedItem_Get.json index 1d699e0f453d..a4271c620fdc 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ClassicCompute_ProtectedItem_Get.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ClassicCompute_ProtectedItem_Get.json @@ -1,39 +1,41 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "PythonSDKBackupTestRg", - "vaultName": "PySDKBackupTestRsVault", - "fabricName": "Azure", + "api-version": "2025-02-01", "containerName": "iaasvmcontainer;iaasvmcontainer;iaasvm-rg;iaasvm-1", + "fabricName": "Azure", "protectedItemName": "vm;iaasvmcontainer;iaasvm-rg;iaasvm-1", - "api-version": "2025-02-01" + "resourceGroupName": "PythonSDKBackupTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" }, "responses": { "200": { - "headers": {}, "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainer;iaasvm-rg;iaasvm-1/protectedItems/VM;iaasvmcontainer;iaasvm-rg;iaasvm-1", "name": "VM;iaasvmcontainer;iaasvm-rg;iaasvm-1", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainer;iaasvm-rg;iaasvm-1/protectedItems/VM;iaasvmcontainer;iaasvm-rg;iaasvm-1", "properties": { + "backupManagementType": "AzureIaasVM", + "containerName": "iaasvmcontainer;iaasvm-rg;iaasvm-1", "friendlyName": "iaasvm-1", - "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ClassicCompute/virtualMachines/iaasvm-1", - "protectionStatus": "Healthy", - "protectionState": "Protected", "healthStatus": "Passed", "lastBackupStatus": "Completed", "lastBackupTime": "2018-01-22T12:25:32.048723Z", + "lastRecoveryPoint": "2017-11-22T12:25:32.048723Z", + "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupPolicies/testPolicy1", + "policyType": "V1", "protectedItemDataId": "636482643132986882", "protectedItemType": "Microsoft.ClassicCompute/virtualMachines", - "backupManagementType": "AzureIaasVM", - "workloadType": "VM", - "containerName": "iaasvmcontainer;iaasvm-rg;iaasvm-1", + "protectionState": "Protected", + "protectionStatus": "Healthy", "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ClassicCompute/virtualMachines/iaasvm-1", - "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupPolicies/testPolicy1", - "lastRecoveryPoint": "2017-11-22T12:25:32.048723Z", - "policyType": "V1" + "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.ClassicCompute/virtualMachines/iaasvm-1", + "workloadType": "VM" } - } + }, + "headers": {} } - } + }, + "operationId": "ProtectedItems_Get", + "title": "Get Protected Classic Virtual Machine Details" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/Compute_ProtectedItem_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/Compute_ProtectedItem_Get.json index c9aeec240a12..ef24d6f74a4f 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/Compute_ProtectedItem_Get.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/Compute_ProtectedItem_Get.json @@ -1,39 +1,41 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "PythonSDKBackupTestRg", - "vaultName": "PySDKBackupTestRsVault", - "fabricName": "Azure", + "api-version": "2025-02-01", "containerName": "iaasvmcontainer;iaasvmcontainerv2;iaasvm-rg;iaasvm-1", + "fabricName": "Azure", "protectedItemName": "vm;iaasvmcontainerv2;iaasvm-rg;iaasvm-1", - "api-version": "2025-02-01" + "resourceGroupName": "PythonSDKBackupTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" }, "responses": { "200": { - "headers": {}, "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;iaasvm-rg;iaasvm-1/protectedItems/VM;iaasvmcontainerv2;iaasvm-rg;iaasvm-1", "name": "VM;iaasvmcontainerv2;iaasvm-rg;iaasvm-1", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;iaasvm-rg;iaasvm-1/protectedItems/VM;iaasvmcontainerv2;iaasvm-rg;iaasvm-1", "properties": { + "backupManagementType": "AzureIaasVM", + "containerName": "iaasvmcontainerv2;iaasvm-rg;iaasvm-1", "friendlyName": "iaasvm-1", - "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.Compute/virtualMachines/iaasvm-1", - "protectionStatus": "Healthy", - "protectionState": "Protected", "healthStatus": "Passed", "lastBackupStatus": "Completed", "lastBackupTime": "2018-01-22T12:25:32.048723Z", + "lastRecoveryPoint": "2017-11-22T12:25:32.048723Z", + "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupPolicies/testPolicy1", + "policyType": "V2", "protectedItemDataId": "636482643132986882", "protectedItemType": "Microsoft.Compute/virtualMachines", - "backupManagementType": "AzureIaasVM", - "workloadType": "VM", - "containerName": "iaasvmcontainerv2;iaasvm-rg;iaasvm-1", + "protectionState": "Protected", + "protectionStatus": "Healthy", "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.Compute/virtualMachines/iaasvm-1", - "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupPolicies/testPolicy1", - "lastRecoveryPoint": "2017-11-22T12:25:32.048723Z", - "policyType": "V2" + "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/providers/Microsoft.Compute/virtualMachines/iaasvm-1", + "workloadType": "VM" } - } + }, + "headers": {} } - } + }, + "operationId": "ProtectedItems_Get", + "title": "Get Protected Virtual Machine Details" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ConfigureProtection.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ConfigureProtection.json index 4b3ea76ec6a3..210303050770 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ConfigureProtection.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ConfigureProtection.json @@ -1,51 +1,53 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", - "fabricName": "Azure", - "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", "parameters": { "properties": { + "policyId": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/DefaultPolicy", "protectedItemType": "Microsoft.Compute/virtualMachines", - "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", - "policyId": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/DefaultPolicy" + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1" } - } + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { - "202": { - "headers": { - "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", - "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", - "Retry-After": 60 - } - }, "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", "name": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", "properties": { + "backupManagementType": "AzureIaasVM", + "containerName": "iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", "friendlyName": "netvmtestv2vm1", - "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", - "protectionStatus": "Healthy", - "protectionState": "Protected", "healthStatus": "Passed", "lastBackupStatus": "Completed", "lastBackupTime": "2018-01-22T12:25:32.048723Z", + "lastRecoveryPoint": null, + "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupPolicies/testPolicy1", "protectedItemDataId": "636482643132986882", "protectedItemType": "Microsoft.Compute/virtualMachines", - "backupManagementType": "AzureIaasVM", - "workloadType": "VM", - "containerName": "iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "protectionState": "Protected", + "protectionStatus": "Healthy", "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", - "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupPolicies/testPolicy1", - "lastRecoveryPoint": null + "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "workloadType": "VM" } } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Retry-After": 60 + } } - } + }, + "operationId": "ProtectedItems_CreateOrUpdate", + "title": "Enable Protection on Azure IaasVm" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/GetBackupStatus.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/GetBackupStatus.json index e3de9effe338..1fd862bd8f91 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/GetBackupStatus.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/GetBackupStatus.json @@ -1,25 +1,27 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "azureRegion": "southeastasia", "api-version": "2025-02-01", + "azureRegion": "southeastasia", "parameters": { "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Compute/VirtualMachines/testVm", "resourceType": "VM" - } + }, + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "protectionStatus": "Protected", - "vaultId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.RecoveryServices/Vaults/testVault", - "fabricName": "Azure", "containerName": "iaasvmcontainer;iaasvmcontainerv2;testRg;testVm", - "protectedItemName": "vm;iaasvmcontainerv2;testRg;testVm", - "policyName": "myPolicy", "errorCode": "Success", - "errorMessage": "ErrorMessage" + "errorMessage": "ErrorMessage", + "fabricName": "Azure", + "policyName": "myPolicy", + "protectedItemName": "vm;iaasvmcontainerv2;testRg;testVm", + "protectionStatus": "Protected", + "vaultId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.RecoveryServices/Vaults/testVault" } } - } + }, + "operationId": "BackupStatus_Get", + "title": "Get Azure Virtual Machine Backup Status" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectedItemOperationResults.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectedItemOperationResults.json index 0cf3fb7eb471..f1b22bf28163 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectedItemOperationResults.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectedItemOperationResults.json @@ -1,46 +1,48 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", - "fabricName": "Azure", + "operationId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "operationId": "00000000-0000-0000-0000-000000000000", - "api-version": "2025-02-01" + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { - "202": { - "headers": { - "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", - "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", - "Retry-After": 60 - } - }, "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", "name": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", "properties": { + "backupManagementType": "AzureIaasVM", + "containerName": "iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", "friendlyName": "netvmtestv2vm1", - "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", - "protectionStatus": "Healthy", - "protectionState": "Protected", "healthStatus": "Passed", "lastBackupStatus": "Completed", "lastBackupTime": "2018-01-22T12:25:32.048723Z", + "lastRecoveryPoint": null, + "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupPolicies/testPolicy1", "protectedItemDataId": "636482643132986882", "protectedItemType": "Microsoft.Compute/virtualMachines", - "backupManagementType": "AzureIaasVM", - "workloadType": "VM", - "containerName": "iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "protectionState": "Protected", + "protectionStatus": "Healthy", "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", - "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupPolicies/testPolicy1", - "lastRecoveryPoint": null + "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "workloadType": "VM" } } }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Retry-After": 60 + } + }, "204": {} - } + }, + "operationId": "ProtectedItemOperationResults_Get", + "title": "Get Operation Results of Protected Vm" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectedItemOperationStatus.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectedItemOperationStatus.json index 7ff6421d551f..849954101b26 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectedItemOperationStatus.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectedItemOperationStatus.json @@ -1,28 +1,30 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", - "fabricName": "Azure", + "operationId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "operationId": "00000000-0000-0000-0000-000000000000", - "api-version": "2025-02-01" + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { - "headers": {}, "body": { - "id": "00000000-0000-0000-0000-000000000000", "name": "00000000-0000-0000-0000-000000000000", - "status": "Succeeded", - "startTime": "2017-10-29T06:04:18.207325Z", "endTime": "2017-10-29T06:04:18.207325Z", + "id": "00000000-0000-0000-0000-000000000000", "properties": { - "objectType": "OperationStatusJobExtendedInfo", - "jobId": "00000000-0000-0000-0000-000000000000" - } - } + "jobId": "00000000-0000-0000-0000-000000000000", + "objectType": "OperationStatusJobExtendedInfo" + }, + "startTime": "2017-10-29T06:04:18.207325Z", + "status": "Succeeded" + }, + "headers": {} } - } + }, + "operationId": "ProtectedItemOperationStatuses_Get", + "title": "Get Operation Status of Protected Vm" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionIntent_CreateOrUpdate.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionIntent_CreateOrUpdate.json index 41e6b13319e0..1ac8fd1c211a 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionIntent_CreateOrUpdate.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionIntent_CreateOrUpdate.json @@ -1,32 +1,34 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "myRG", - "vaultName": "myVault", + "api-version": "2025-02-01", "fabricName": "Azure", "intentObjectName": "vm;iaasvmcontainerv2;chamsrgtest;chamscandel", - "api-version": "2025-02-01", "parameters": { "properties": { - "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/chamsrgtest/providers/Microsoft.Compute/virtualMachines/chamscandel", + "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupPolicies/myPolicy", "protectionIntentItemType": "AzureResourceItem", - "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupPolicies/myPolicy" + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/chamsrgtest/providers/Microsoft.Compute/virtualMachines/chamscandel" } - } + }, + "resourceGroupName": "myRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "myVault" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupFabrics/Azure/backupProtectionIntent/vm;iaasvmcontainerv2;chamsrgtest;chamscandel", "name": "vm;iaasvmcontainerv2;chamsrgtest;chamscandel", "type": "Microsoft.RecoveryServices/vaults/backupProtectionIntent", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupFabrics/Azure/backupProtectionIntent/vm;iaasvmcontainerv2;chamsrgtest;chamscandel", "properties": { - "protectionIntentItemType": "AzureResourceItem", "backupManagementType": "AzureIaasVM", "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupPolicies/myPolicy", + "protectionIntentItemType": "AzureResourceItem", "protectionState": "Protected" } } } - } + }, + "operationId": "ProtectionIntent_CreateOrUpdate", + "title": "Create or Update Azure Vm Protection Intent" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionIntent_Validate.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionIntent_Validate.json index 0bf112923b19..fad264ea0a1a 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionIntent_Validate.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionIntent_Validate.json @@ -1,25 +1,27 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "azureRegion": "southeastasia", "api-version": "2025-02-01", + "azureRegion": "southeastasia", "parameters": { + "properties": "", "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/arunaupgrade/providers/Microsoft.Compute/VirtualMachines/upgrade1", "resourceType": "VM", - "vaultId": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/Vaults/myVault", - "properties": "" - } + "vaultId": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/Vaults/myVault" + }, + "subscriptionId": "00000000-0000-0000-0000-000000000000" }, "responses": { "200": { "body": { - "status": "Failed", + "containerName": "iaasvmcontainer;iaasvmcontainerv2;arunaupgrade;upgrade1", "errorCode": "VirtualMachineAlreadyProtected", "errorMessage": "Virtual machine with same name and same resource group is already protected. Please select `Disable' choice above for backup and go to backup item corresponding to this VM in the vault", + "protectedItemName": "vm;iaasvmcontainerv2;arunaupgrade;upgrade1", "recommendation": "Please do not enable protection again.", - "containerName": "iaasvmcontainer;iaasvmcontainerv2;arunaupgrade;upgrade1", - "protectedItemName": "vm;iaasvmcontainerv2;arunaupgrade;upgrade1" + "status": "Failed" } } - } + }, + "operationId": "ProtectionIntent_Validate", + "title": "Validate Enable Protection on Azure Vm" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicies_CreateOrUpdate_Complex.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicies_CreateOrUpdate_Complex.json index 27eff3e5362b..823e81f1979f 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicies_CreateOrUpdate_Complex.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicies_CreateOrUpdate_Complex.json @@ -1,43 +1,15 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", - "policyName": "testPolicy1", "api-version": "2025-02-01", "parameters": { "properties": { "backupManagementType": "AzureIaasVM", - "timeZone": "Pacific Standard Time", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Weekly", - "scheduleRunTimes": [ - "2018-01-24T10:00:00Z" - ], - "scheduleRunDays": [ - "Monday", - "Wednesday", - "Thursday" - ] - }, "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "weeklySchedule": { - "daysOfTheWeek": [ - "Monday", - "Wednesday", - "Thursday" - ], - "retentionTimes": [ - "2018-01-24T10:00:00Z" - ], - "retentionDuration": { - "count": 1, - "durationType": "Weeks" - } - }, "monthlySchedule": { + "retentionDuration": { + "count": 2, + "durationType": "Months" + }, "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ @@ -51,18 +23,33 @@ }, "retentionTimes": [ "2018-01-24T10:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Monday", + "Wednesday", + "Thursday" ], "retentionDuration": { - "count": 2, - "durationType": "Months" - } + "count": 1, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2018-01-24T10:00:00Z" + ] }, "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", "monthsOfYear": [ "February", "November" ], + "retentionDuration": { + "count": 4, + "durationType": "Years" + }, + "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ "Monday", @@ -74,54 +61,44 @@ }, "retentionTimes": [ "2018-01-24T10:00:00Z" - ], - "retentionDuration": { - "count": 4, - "durationType": "Years" - } + ] } - } + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunDays": [ + "Monday", + "Wednesday", + "Thursday" + ], + "scheduleRunFrequency": "Weekly", + "scheduleRunTimes": [ + "2018-01-24T10:00:00Z" + ] + }, + "timeZone": "Pacific Standard Time" } - } + }, + "policyName": "testPolicy1", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { "body": { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", "name": "testPolicy1", "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", "properties": { "backupManagementType": "AzureIaasVM", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Weekly", - "scheduleRunDays": [ - "Monday", - "Wednesday", - "Thursday" - ], - "scheduleRunTimes": [ - "2018-01-24T10:00:00Z" - ], - "scheduleWeeklyFrequency": 0 - }, + "protectedItemsCount": 0, "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "weeklySchedule": { - "daysOfTheWeek": [ - "Monday", - "Wednesday", - "Thursday" - ], - "retentionTimes": [ - "2018-01-24T10:00:00Z" - ], - "retentionDuration": { - "count": 1, - "durationType": "Weeks" - } - }, "monthlySchedule": { + "retentionDuration": { + "count": 2, + "durationType": "Months" + }, "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ @@ -135,18 +112,33 @@ }, "retentionTimes": [ "2018-01-24T10:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Monday", + "Wednesday", + "Thursday" ], "retentionDuration": { - "count": 2, - "durationType": "Months" - } + "count": 1, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2018-01-24T10:00:00Z" + ] }, "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", "monthsOfYear": [ "February", "November" ], + "retentionDuration": { + "count": 4, + "durationType": "Years" + }, + "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ "Monday", @@ -158,24 +150,34 @@ }, "retentionTimes": [ "2018-01-24T10:00:00Z" - ], - "retentionDuration": { - "count": 4, - "durationType": "Years" - } + ] } }, - "timeZone": "Pacific Standard Time", - "protectedItemsCount": 0 + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunDays": [ + "Monday", + "Wednesday", + "Thursday" + ], + "scheduleRunFrequency": "Weekly", + "scheduleRunTimes": [ + "2018-01-24T10:00:00Z" + ], + "scheduleWeeklyFrequency": 0 + }, + "timeZone": "Pacific Standard Time" } } }, "202": { "headers": { - "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1/operations/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", "Retry-After": 60 } } - } + }, + "operationId": "ProtectionPolicies_CreateOrUpdate", + "title": "Create or Update Full Azure Vm Protection Policy" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicies_CreateOrUpdate_Simple.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicies_CreateOrUpdate_Simple.json index e3ebe9967a6b..d6331f6ab4e4 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicies_CreateOrUpdate_Simple.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicies_CreateOrUpdate_Simple.json @@ -1,14 +1,21 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", - "policyName": "testPolicy1", "api-version": "2025-02-01", "parameters": { "properties": { "backupManagementType": "AzureIaasVM", - "timeZone": "Pacific Standard Time", + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 1, + "durationType": "Days" + }, + "retentionTimes": [ + "2018-01-24T02:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, "schedulePolicy": { "schedulePolicyType": "SimpleSchedulePolicy", "scheduleRunFrequency": "Daily", @@ -16,29 +23,35 @@ "2018-01-24T02:00:00Z" ] }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": [ - "2018-01-24T02:00:00Z" - ], - "retentionDuration": { - "count": 1, - "durationType": "Days" - } - } - } + "timeZone": "Pacific Standard Time" } - } + }, + "policyName": "testPolicy1", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { "body": { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", "name": "testPolicy1", "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", "properties": { "backupManagementType": "AzureIaasVM", + "protectedItemsCount": 0, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 1, + "durationType": "Days" + }, + "retentionTimes": [ + "2018-01-24T02:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, "schedulePolicy": { "schedulePolicyType": "SimpleSchedulePolicy", "scheduleRunFrequency": "Daily", @@ -47,29 +60,18 @@ ], "scheduleWeeklyFrequency": 0 }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": [ - "2018-01-24T02:00:00Z" - ], - "retentionDuration": { - "count": 1, - "durationType": "Days" - } - } - }, - "timeZone": "Pacific Standard Time", - "protectedItemsCount": 0 + "timeZone": "Pacific Standard Time" } } }, "202": { "headers": { - "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1/operations/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", "Retry-After": 60 } } - } + }, + "operationId": "ProtectionPolicies_CreateOrUpdate", + "title": "Create or Update Simple Azure Vm Protection Policy" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicies_Delete.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicies_Delete.json index d89a6be82541..34ef259de3e9 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicies_Delete.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicies_Delete.json @@ -1,13 +1,22 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", + "api-version": "2025-02-01", "policyName": "testPolicy1", - "api-version": "2025-02-01" + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1/operations/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", + "Retry-After": 60 + } + }, "204": {} - } + }, + "operationId": "ProtectionPolicies_Delete", + "title": "Delete Azure Vm Protection Policy" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicies_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicies_Get.json index 8fdd58e04ced..fe7e274f8a28 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicies_Get.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicies_Get.json @@ -1,19 +1,32 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", + "api-version": "2025-02-01", "policyName": "testPolicy1", - "api-version": "2025-02-01" + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { "body": { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", "name": "testPolicy1", "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", "properties": { "backupManagementType": "AzureIaasVM", + "protectedItemsCount": 0, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 1, + "durationType": "Days" + }, + "retentionTimes": [ + "2018-01-24T02:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, "schedulePolicy": { "schedulePolicyType": "SimpleSchedulePolicy", "scheduleRunFrequency": "Daily", @@ -22,22 +35,11 @@ ], "scheduleWeeklyFrequency": 0 }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": [ - "2018-01-24T02:00:00Z" - ], - "retentionDuration": { - "count": 1, - "durationType": "Days" - } - } - }, - "timeZone": "Pacific Standard Time", - "protectedItemsCount": 0 + "timeZone": "Pacific Standard Time" } } } - } + }, + "operationId": "ProtectionPolicies_Get", + "title": "Get Azure IaasVm Protection Policy Details" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicyOperationResults_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicyOperationResults_Get.json index 241a0d8bdf5f..1150e635f54d 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicyOperationResults_Get.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicyOperationResults_Get.json @@ -1,20 +1,33 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", - "policyName": "testPolicy1", "operationId": "00000000-0000-0000-0000-000000000000", - "api-version": "2025-02-01" + "api-version": "2025-02-01", + "policyName": "testPolicy1", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { "body": { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", "name": "testPolicy1", "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", "properties": { "backupManagementType": "AzureIaasVM", + "protectedItemsCount": 1, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 1, + "durationType": "Days" + }, + "retentionTimes": [ + "2018-01-24T02:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, "schedulePolicy": { "schedulePolicyType": "SimpleSchedulePolicy", "scheduleRunFrequency": "Daily", @@ -23,22 +36,11 @@ ], "scheduleWeeklyFrequency": 0 }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": [ - "2018-01-24T02:00:00Z" - ], - "retentionDuration": { - "count": 1, - "durationType": "Days" - } - } - }, - "timeZone": "Pacific Standard Time", - "protectedItemsCount": 1 + "timeZone": "Pacific Standard Time" } } } - } + }, + "operationId": "ProtectionPolicyOperationResults_Get", + "title": "Get Protection Policy Operation Results" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicyOperationStatuses_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicyOperationStatuses_Get.json index 5e4f06ef8cae..16bc427a5d83 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicyOperationStatuses_Get.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ProtectionPolicyOperationStatuses_Get.json @@ -1,28 +1,30 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", - "policyName": "testPolicy1", "operationId": "00000000-0000-0000-0000-000000000000", - "api-version": "2025-02-01" + "api-version": "2025-02-01", + "policyName": "testPolicy1", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { "body": { - "id": "00000000-0000-0000-0000-000000000000", "name": "GetProtectionPolicyOperationStatus", - "status": "Succeeded", - "startTime": "2018-01-24T12:57:32.1142968Z", "endTime": "2018-01-24T12:57:32.1142968Z", + "id": "00000000-0000-0000-0000-000000000000", "properties": { - "objectType": "OperationStatusJobsExtendedInfo", + "failedJobsError": {}, "jobIds": [ "00000000-0000-0000-0000-000000000000" ], - "failedJobsError": {} - } + "objectType": "OperationStatusJobsExtendedInfo" + }, + "startTime": "2018-01-24T12:57:32.1142968Z", + "status": "Succeeded" } } - } + }, + "operationId": "ProtectionPolicyOperationStatuses_Get", + "title": "Get Protection Policy Operation Status" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/Provision_Ilr.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/Provision_Ilr.json index e7b597b74343..25f600328e14 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/Provision_Ilr.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/Provision_Ilr.json @@ -1,22 +1,22 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "PythonSDKBackupTestRg", - "vaultName": "PySDKBackupTestRsVault", - "fabricName": "Azure", - "containerName": "iaasvmcontainer;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1", - "protectedItemName": "vm;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1", - "recoveryPointId": "1", "api-version": "2025-02-01", + "containerName": "iaasvmcontainer;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1", + "fabricName": "Azure", "parameters": { "properties": { "initiatorName": "Hello World", + "objectType": "IaasVMILRRegistrationRequest", "recoveryPointId": "38823086363464", "renewExistingRegistration": true, - "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pysdktestrg/providers/Microsoft.Compute/virtualMachines/pysdktestv2vm1", - "objectType": "IaasVMILRRegistrationRequest" + "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pysdktestrg/providers/Microsoft.Compute/virtualMachines/pysdktestv2vm1" } - } + }, + "protectedItemName": "vm;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1", + "recoveryPointId": "1", + "resourceGroupName": "PythonSDKBackupTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" }, "responses": { "202": { @@ -26,5 +26,7 @@ "Retry-After": 60 } } - } + }, + "operationId": "ItemLevelRecoveryConnections_Provision", + "title": "Provision Instant Item Level Recovery for Azure Vm" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/RecoveryPointsRecommendedForMove_List.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/RecoveryPointsRecommendedForMove_List.json index 35e96968d695..967e2b36a666 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/RecoveryPointsRecommendedForMove_List.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/RecoveryPointsRecommendedForMove_List.json @@ -1,36 +1,41 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "rshhtestmdvmrg", - "vaultName": "rshvault", - "fabricName": "Azure", - "containerName": "IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall", - "protectedItemName": "VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall", "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall", + "fabricName": "Azure", "parameters": { - "objectType": "ListRecoveryPointsRecommendedForMoveRequest", "excludedRPList": [ "348916168024334", "348916168024335" - ] - } + ], + "objectType": "ListRecoveryPointsRecommendedForMoveRequest" + }, + "protectedItemName": "VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall", + "resourceGroupName": "rshhtestmdvmrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "rshvault" }, "responses": { "200": { "body": { + "nextLink": null, "value": [ { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/22244821112382", "name": "22244821112382", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/22244821112382", "properties": { + "isInstantIlrSessionActive": false, + "isManagedVirtualMachine": true, + "isSourceVMEncrypted": false, "objectType": "IaasVMRecoveryPoint", - "recoveryPointType": "CrashConsistent", - "recoveryPointTime": "2017-12-21T22:48:25.4353958Z", + "originalStorageAccountOption": false, "recoveryPointAdditionalInfo": "", - "sourceVMStorageType": "NormalStorage", - "isSourceVMEncrypted": false, - "isInstantIlrSessionActive": false, + "recoveryPointMoveReadinessInfo": { + "ArchivedRP": { + "isReadyForMove": true + } + }, "recoveryPointTierDetails": [ { "type": "InstantRP", @@ -41,28 +46,28 @@ "status": "Valid" } ], - "recoveryPointMoveReadinessInfo": { - "ArchivedRP": { - "isReadyForMove": true - } - }, - "isManagedVirtualMachine": true, - "virtualMachineSize": "Standard_D1", - "originalStorageAccountOption": false + "recoveryPointTime": "2017-12-21T22:48:25.4353958Z", + "recoveryPointType": "CrashConsistent", + "sourceVMStorageType": "NormalStorage", + "virtualMachineSize": "Standard_D1" } }, { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/24977149827250", "name": "24977149827250", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/24977149827250", "properties": { + "isInstantIlrSessionActive": false, + "isManagedVirtualMachine": true, + "isSourceVMEncrypted": false, "objectType": "IaasVMRecoveryPoint", - "recoveryPointType": "CrashConsistent", - "recoveryPointTime": "2017-12-20T22:49:44.3317945Z", + "originalStorageAccountOption": false, "recoveryPointAdditionalInfo": "", - "sourceVMStorageType": "NormalStorage", - "isSourceVMEncrypted": false, - "isInstantIlrSessionActive": false, + "recoveryPointMoveReadinessInfo": { + "ArchivedRP": { + "isReadyForMove": true + } + }, "recoveryPointTierDetails": [ { "type": "InstantRP", @@ -74,28 +79,25 @@ }, { "type": "ArchivedRP", - "status": "Rehydrated", "extendedInfo": { "RehydratedRPExpiryTime": "2020-12-21T22:48:25.4353958Z" - } + }, + "status": "Rehydrated" } ], - "recoveryPointMoveReadinessInfo": { - "ArchivedRP": { - "isReadyForMove": true - } - }, - "isManagedVirtualMachine": true, + "recoveryPointTime": "2017-12-20T22:49:44.3317945Z", + "recoveryPointType": "CrashConsistent", + "sourceVMStorageType": "NormalStorage", "virtualMachineSize": "Standard_D1", - "originalStorageAccountOption": false, "zones": [ "1" ] } } - ], - "nextLink": null + ] } } - } + }, + "operationId": "RecoveryPointsRecommendedForMove_List", + "title": "Get Protected Azure Vm Recovery Points Recommended for Move" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/RecoveryPoints_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/RecoveryPoints_Get.json index bc1cbbc64854..a48772eacf87 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/RecoveryPoints_Get.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/RecoveryPoints_Get.json @@ -1,48 +1,50 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "rshhtestmdvmrg", - "vaultName": "rshvault", - "fabricName": "Azure", + "api-version": "2025-02-01", "containerName": "IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall", + "fabricName": "Azure", "protectedItemName": "VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall", "recoveryPointId": "26083826328862", - "api-version": "2025-02-01" + "resourceGroupName": "rshhtestmdvmrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "rshvault" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/26083826328862", "name": "26083826328862", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/26083826328862", "properties": { + "isInstantIlrSessionActive": false, + "isManagedVirtualMachine": true, + "isPrivateAccessEnabledOnAnyDisk": true, + "isSourceVMEncrypted": false, "objectType": "IaasVMRecoveryPoint", - "recoveryPointType": "CrashConsistent", - "recoveryPointTime": "2017-11-22T22:32:46.6088472Z", + "originalStorageAccountOption": false, "recoveryPointAdditionalInfo": "", - "sourceVMStorageType": "NormalStorage", - "isSourceVMEncrypted": false, - "isInstantIlrSessionActive": false, + "recoveryPointMoveReadinessInfo": { + "ArchivedRP": { + "isReadyForMove": true + } + }, "recoveryPointTierDetails": [ { "type": "HardenedRP", "status": "Valid" } ], - "recoveryPointMoveReadinessInfo": { - "ArchivedRP": { - "isReadyForMove": true - } - }, - "isManagedVirtualMachine": true, + "recoveryPointTime": "2017-11-22T22:32:46.6088472Z", + "recoveryPointType": "CrashConsistent", + "sourceVMStorageType": "NormalStorage", "virtualMachineSize": "Standard_D1", - "originalStorageAccountOption": false, "zones": [ "1" - ], - "isPrivateAccessEnabledOnAnyDisk": true + ] } } } - } + }, + "operationId": "RecoveryPoints_Get", + "title": "Get Azure Vm Recovery Point Details" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/RecoveryPoints_List.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/RecoveryPoints_List.json index d91afc729479..5042f19c9292 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/RecoveryPoints_List.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/RecoveryPoints_List.json @@ -1,29 +1,34 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "rshhtestmdvmrg", - "vaultName": "rshvault", - "fabricName": "Azure", + "api-version": "2025-02-01", "containerName": "IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall", + "fabricName": "Azure", "protectedItemName": "VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall", - "api-version": "2025-02-01" + "resourceGroupName": "rshhtestmdvmrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "rshvault" }, "responses": { "200": { "body": { + "nextLink": null, "value": [ { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/22244821112382", "name": "22244821112382", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/22244821112382", "properties": { + "isInstantIlrSessionActive": false, + "isManagedVirtualMachine": true, + "isSourceVMEncrypted": false, "objectType": "IaasVMRecoveryPoint", - "recoveryPointType": "CrashConsistent", - "recoveryPointTime": "2017-12-21T22:48:25.4353958Z", + "originalStorageAccountOption": false, "recoveryPointAdditionalInfo": "", - "sourceVMStorageType": "NormalStorage", - "isSourceVMEncrypted": false, - "isInstantIlrSessionActive": false, + "recoveryPointMoveReadinessInfo": { + "Archive": { + "isReadyForMove": true + } + }, "recoveryPointTierDetails": [ { "type": "InstantRP", @@ -34,28 +39,30 @@ "status": "Valid" } ], - "recoveryPointMoveReadinessInfo": { - "Archive": { - "isReadyForMove": true - } - }, - "isManagedVirtualMachine": true, - "virtualMachineSize": "Standard_D1", - "originalStorageAccountOption": false + "recoveryPointTime": "2017-12-21T22:48:25.4353958Z", + "recoveryPointType": "CrashConsistent", + "sourceVMStorageType": "NormalStorage", + "virtualMachineSize": "Standard_D1" } }, { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/24977149827250", "name": "24977149827250", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rshhtestmdvmrg/providers/Microsoft.RecoveryServices/vaults/rshvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/protectedItems/VM;iaasvmcontainerv2;rshhtestmdvmrg;rshmdvmsmall/recoveryPoints/24977149827250", "properties": { + "isInstantIlrSessionActive": false, + "isManagedVirtualMachine": true, + "isPrivateAccessEnabledOnAnyDisk": true, + "isSourceVMEncrypted": false, "objectType": "IaasVMRecoveryPoint", - "recoveryPointType": "CrashConsistent", - "recoveryPointTime": "2017-12-20T22:49:44.3317945Z", + "originalStorageAccountOption": false, "recoveryPointAdditionalInfo": "", - "sourceVMStorageType": "NormalStorage", - "isSourceVMEncrypted": false, - "isInstantIlrSessionActive": false, + "recoveryPointMoveReadinessInfo": { + "ArchivedRP": { + "additionalInfo": "Recovery point cannot be moved to archive tier since it has already been moved.", + "isReadyForMove": false + } + }, "recoveryPointTierDetails": [ { "type": "InstantRP", @@ -67,39 +74,44 @@ }, { "type": "ArchivedRP", - "status": "Rehydrated", "extendedInfo": { "RehydratedRPExpiryTime": "2020-12-21T22:48:25.4353958Z" - } + }, + "status": "Rehydrated" } ], - "recoveryPointMoveReadinessInfo": { - "ArchivedRP": { - "isReadyForMove": false, - "additionalInfo": "Recovery point cannot be moved to archive tier since it has already been moved." - } - }, - "isManagedVirtualMachine": true, + "recoveryPointTime": "2017-12-20T22:49:44.3317945Z", + "recoveryPointType": "CrashConsistent", + "sourceVMStorageType": "NormalStorage", "virtualMachineSize": "Standard_D1", - "originalStorageAccountOption": false, "zones": [ "1" - ], - "isPrivateAccessEnabledOnAnyDisk": true + ] } }, { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/FijiValidation-asr-microsoftrrdclab3-408/providers/Microsoft.RecoveryServices/vaults/testVault408/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;fijivalidation-asr-microsoftrrdclab3-408;vm408/protectedItems/VM;iaasvmcontainerv2;fijivalidation-asr-microsoftrrdclab3-408;vm408/recoveryPoints/70477518625276", "name": "70477518625276", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/FijiValidation-asr-microsoftrrdclab3-408/providers/Microsoft.RecoveryServices/vaults/testVault408/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;fijivalidation-asr-microsoftrrdclab3-408;vm408/protectedItems/VM;iaasvmcontainerv2;fijivalidation-asr-microsoftrrdclab3-408;vm408/recoveryPoints/70477518625276", "properties": { + "extendedLocation": { + "name": "microsoftrrdclab3", + "type": "EdgeZone" + }, + "isInstantIlrSessionActive": false, + "isManagedVirtualMachine": true, + "isPrivateAccessEnabledOnAnyDisk": false, + "isSourceVMEncrypted": true, "objectType": "IaasVMRecoveryPoint", - "recoveryPointType": "CrashConsistent", - "recoveryPointTime": "2023-09-22T20:02:00.1225746Z", + "originalStorageAccountOption": false, + "osType": "Windows", "recoveryPointAdditionalInfo": "", - "sourceVMStorageType": "PremiumVMOnPartialPremiumStorage", - "isSourceVMEncrypted": true, - "isInstantIlrSessionActive": false, + "recoveryPointMoveReadinessInfo": { + "ArchivedRP": { + "additionalInfo": "We're still determining if this Recovery Point can be moved.. Please check again after some time.", + "isReadyForMove": false + } + }, "recoveryPointTierDetails": [ { "type": "InstantRP", @@ -110,27 +122,17 @@ "status": "Valid" } ], - "isManagedVirtualMachine": true, - "virtualMachineSize": "Standard_D2s_v3", - "originalStorageAccountOption": false, - "osType": "Windows", - "recoveryPointMoveReadinessInfo": { - "ArchivedRP": { - "isReadyForMove": false, - "additionalInfo": "We're still determining if this Recovery Point can be moved.. Please check again after some time." - } - }, - "extendedLocation": { - "name": "microsoftrrdclab3", - "type": "EdgeZone" - }, + "recoveryPointTime": "2023-09-22T20:02:00.1225746Z", + "recoveryPointType": "CrashConsistent", "securityType": "None", - "isPrivateAccessEnabledOnAnyDisk": false + "sourceVMStorageType": "PremiumVMOnPartialPremiumStorage", + "virtualMachineSize": "Standard_D2s_v3" } } - ], - "nextLink": null + ] } } - } + }, + "operationId": "RecoveryPoints_List", + "title": "Get Protected Azure Vm Recovery Points" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/Revoke_Ilr.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/Revoke_Ilr.json index 552cda0d9d94..b894c6271282 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/Revoke_Ilr.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/Revoke_Ilr.json @@ -1,13 +1,13 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "PythonSDKBackupTestRg", - "vaultName": "PySDKBackupTestRsVault", - "fabricName": "Azure", + "api-version": "2025-02-01", "containerName": "iaasvmcontainer;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1", + "fabricName": "Azure", "protectedItemName": "vm;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1", "recoveryPointId": "1", - "api-version": "2025-02-01" + "resourceGroupName": "PythonSDKBackupTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" }, "responses": { "202": { @@ -17,5 +17,7 @@ "Retry-After": 60 } } - } + }, + "operationId": "ItemLevelRecoveryConnections_Revoke", + "title": "Revoke Instant Item Level Recovery for Azure Vm" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/StopProtection.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/StopProtection.json index 11ec0570858e..e937007e4e92 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/StopProtection.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/StopProtection.json @@ -1,51 +1,53 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", - "fabricName": "Azure", - "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", "parameters": { "properties": { "protectedItemType": "Microsoft.Compute/virtualMachines", - "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", - "protectionState": "ProtectionStopped" + "protectionState": "ProtectionStopped", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1" } - } + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { - "202": { - "headers": { - "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", - "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", - "Retry-After": 60 - } - }, "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", "name": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", "properties": { + "backupManagementType": "AzureIaasVM", + "containerName": "iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", "friendlyName": "netvmtestv2vm1", - "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", - "protectionStatus": "Healthy", - "protectionState": "ProtectionStopped", "healthStatus": "Passed", "lastBackupStatus": "Completed", "lastBackupTime": "2018-01-22T12:25:32.048723Z", + "lastRecoveryPoint": null, + "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupPolicies/testPolicy1", "protectedItemDataId": "636482643132986882", "protectedItemType": "Microsoft.Compute/virtualMachines", - "backupManagementType": "AzureIaasVM", - "workloadType": "VM", - "containerName": "iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "protectionState": "ProtectionStopped", + "protectionStatus": "Healthy", "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", - "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupPolicies/testPolicy1", - "lastRecoveryPoint": null + "virtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "workloadType": "VM" } } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Retry-After": 60 + } } - } + }, + "operationId": "ProtectedItems_CreateOrUpdate", + "title": "Stop Protection with retain data on Azure IaasVm" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreRequest.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreRequest.json index 1c97b4f13e6a..617b6ca8ad37 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreRequest.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreRequest.json @@ -1,43 +1,45 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "netsdktestrg", - "vaultName": "testVault", - "fabricName": "Azure", - "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "recoveryPointId": "348916168024334", "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", "parameters": { "properties": { - "objectType": "IaasVMRestoreRequest", - "recoveryPointId": "348916168024334", - "recoveryType": "AlternateLocation", - "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", - "targetVirtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg2/providers/Microsoft.Compute/virtualmachines/RSMDALRVM981435", - "targetResourceGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg2", - "storageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Storage/storageAccounts/testingAccount", - "virtualNetworkId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualNetworks/testNet", - "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualNetworks/testNet/subnets/default", - "region": "southeastasia", "createNewCloudService": false, - "originalStorageAccountOption": false, "encryptionDetails": { "encryptionEnabled": false }, "identityInfo": { "isSystemAssignedIdentity": true - } + }, + "objectType": "IaasVMRestoreRequest", + "originalStorageAccountOption": false, + "recoveryPointId": "348916168024334", + "recoveryType": "AlternateLocation", + "region": "southeastasia", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "storageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Storage/storageAccounts/testingAccount", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualNetworks/testNet/subnets/default", + "targetResourceGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg2", + "targetVirtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg2/providers/Microsoft.Compute/virtualmachines/RSMDALRVM981435", + "virtualNetworkId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualNetworks/testNet" } - } + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "recoveryPointId": "348916168024334", + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "202": { "headers": { - "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", "Retry-After": 60 } } - } + }, + "operationId": "Restores_Trigger", + "title": "Restore to New Azure IaasVm with IaasVMRestoreRequest" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreRequest_IdentityBasedRestoreDetails.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreRequest_IdentityBasedRestoreDetails.json index a1af02de4fc5..3ac7206a5d91 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreRequest_IdentityBasedRestoreDetails.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreRequest_IdentityBasedRestoreDetails.json @@ -1,45 +1,47 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "netsdktestrg", - "vaultName": "testVault", - "fabricName": "Azure", - "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "recoveryPointId": "348916168024334", "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", "parameters": { "properties": { - "objectType": "IaasVMRestoreRequest", - "recoveryPointId": "348916168024334", - "recoveryType": "AlternateLocation", - "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", - "targetVirtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg2/providers/Microsoft.Compute/virtualmachines/RSMDALRVM981435", - "targetResourceGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg2", - "virtualNetworkId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualNetworks/testNet", - "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualNetworks/testNet/subnets/default", - "region": "southeastasia", "createNewCloudService": false, - "originalStorageAccountOption": false, "encryptionDetails": { "encryptionEnabled": false }, + "identityBasedRestoreDetails": { + "targetStorageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Storage/storageAccounts/testingAccount" + }, "identityInfo": { "isSystemAssignedIdentity": true }, - "identityBasedRestoreDetails": { - "targetStorageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Storage/storageAccounts/testingAccount" - } + "objectType": "IaasVMRestoreRequest", + "originalStorageAccountOption": false, + "recoveryPointId": "348916168024334", + "recoveryType": "AlternateLocation", + "region": "southeastasia", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualNetworks/testNet/subnets/default", + "targetResourceGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg2", + "targetVirtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg2/providers/Microsoft.Compute/virtualmachines/RSMDALRVM981435", + "virtualNetworkId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualNetworks/testNet" } - } + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "recoveryPointId": "348916168024334", + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "202": { "headers": { - "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", "Retry-After": 60 } } - } + }, + "operationId": "Restores_Trigger", + "title": "Restore to New Azure IaasVm with IaasVMRestoreRequest with identityBasedRestoreDetails" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreWithRehydrationRequest.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreWithRehydrationRequest.json index 64b2afb0f533..33f3abaf587a 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreWithRehydrationRequest.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_ALR_IaasVMRestoreWithRehydrationRequest.json @@ -1,44 +1,46 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "netsdktestrg", - "vaultName": "testVault", - "fabricName": "Azure", - "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "recoveryPointId": "348916168024334", "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", "parameters": { "properties": { + "createNewCloudService": false, + "encryptionDetails": { + "encryptionEnabled": false + }, "objectType": "IaasVMRestoreWithRehydrationRequest", + "originalStorageAccountOption": false, "recoveryPointId": "348916168024334", + "recoveryPointRehydrationInfo": { + "rehydrationPriority": "High", + "rehydrationRetentionDuration": "P7D" + }, "recoveryType": "AlternateLocation", + "region": "southeastasia", "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", - "targetVirtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg2/providers/Microsoft.Compute/virtualmachines/RSMDALRVM981435", - "targetResourceGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg2", "storageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Storage/storageAccounts/testingAccount", - "virtualNetworkId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualNetworks/testNet", "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualNetworks/testNet/subnets/default", - "region": "southeastasia", - "createNewCloudService": false, - "originalStorageAccountOption": false, - "encryptionDetails": { - "encryptionEnabled": false - }, - "recoveryPointRehydrationInfo": { - "rehydrationRetentionDuration": "P7D", - "rehydrationPriority": "High" - } + "targetResourceGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg2", + "targetVirtualMachineId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg2/providers/Microsoft.Compute/virtualmachines/RSMDALRVM981435", + "virtualNetworkId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.Network/virtualNetworks/testNet" } - } + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "recoveryPointId": "348916168024334", + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "202": { "headers": { - "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", "Retry-After": 60 } } - } + }, + "operationId": "Restores_Trigger", + "title": "Restore to New Azure IaasVm with IaasVMRestoreWithRehydrationRequest" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_ResourceGuardEnabled.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_ResourceGuardEnabled.json index 0bc74675b8ff..1b6856f5bcbc 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_ResourceGuardEnabled.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_ResourceGuardEnabled.json @@ -1,45 +1,47 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "netsdktestrg", - "vaultName": "testVault", - "fabricName": "Azure", - "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "recoveryPointId": "348916168024334", "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", "parameters": { "properties": { - "objectType": "IaasVMRestoreRequest", - "recoveryPointId": "348916168024334", - "recoveryType": "RestoreDisks", - "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", - "region": "southeastasia", "createNewCloudService": true, - "originalStorageAccountOption": false, "encryptionDetails": { "encryptionEnabled": false }, + "identityBasedRestoreDetails": { + "targetStorageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount" + }, "identityInfo": { "isSystemAssignedIdentity": false, "managedIdentityResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asmaskarRG1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asmaskartestmsi" }, - "identityBasedRestoreDetails": { - "targetStorageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount" - }, + "objectType": "IaasVMRestoreRequest", + "originalStorageAccountOption": false, + "recoveryPointId": "348916168024334", + "recoveryType": "RestoreDisks", + "region": "southeastasia", "resourceGuardOperationRequests": [ "/subscriptions/063bf7bc-e4dc-4cde-8840-8416fbd7921e/resourcegroups/ankurRG1/providers/Microsoft.DataProtection/resourceGuards/RG341/triggerRestoreRequests/default" - ] + ], + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1" } - } + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "recoveryPointId": "348916168024334", + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "202": { "headers": { - "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", "Retry-After": 60 } } - } + }, + "operationId": "Restores_Trigger", + "title": "Restore with Resource Guard Enabled" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreRequest.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreRequest.json index 14b199b41050..c66e1d763b7d 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreRequest.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreRequest.json @@ -1,23 +1,11 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "netsdktestrg", - "vaultName": "testVault", - "fabricName": "Azure", - "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "recoveryPointId": "348916168024334", "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", "parameters": { "properties": { - "objectType": "IaasVMRestoreRequest", - "recoveryPointId": "348916168024334", - "recoveryType": "RestoreDisks", - "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", - "storageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount", - "region": "southeastasia", "createNewCloudService": true, - "originalStorageAccountOption": false, "encryptionDetails": { "encryptionEnabled": false }, @@ -25,20 +13,34 @@ "isSystemAssignedIdentity": false, "managedIdentityResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asmaskarRG1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asmaskartestmsi" }, + "objectType": "IaasVMRestoreRequest", + "originalStorageAccountOption": false, + "recoveryPointId": "348916168024334", + "recoveryType": "RestoreDisks", + "region": "southeastasia", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "storageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount", "targetDiskNetworkAccessSettings": { - "targetDiskNetworkAccessOption": "EnablePrivateAccessForAllDisks", - "targetDiskAccessId": "/subscriptions/e7a191f5-713c-4bdb-b5e4-cf3dd90230ef/resourceGroups/arpja/providers/Microsoft.Compute/diskAccesses/arpja-diskaccess-ccy" + "targetDiskAccessId": "/subscriptions/e7a191f5-713c-4bdb-b5e4-cf3dd90230ef/resourceGroups/arpja/providers/Microsoft.Compute/diskAccesses/arpja-diskaccess-ccy", + "targetDiskNetworkAccessOption": "EnablePrivateAccessForAllDisks" } } - } + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "recoveryPointId": "348916168024334", + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "202": { "headers": { - "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", "Retry-After": 60 } } - } + }, + "operationId": "Restores_Trigger", + "title": "Restore Disks with IaasVMRestoreRequest" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreRequest_IdentityBasedRestoreDetails.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreRequest_IdentityBasedRestoreDetails.json index 0934381238be..a2d62e873739 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreRequest_IdentityBasedRestoreDetails.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreRequest_IdentityBasedRestoreDetails.json @@ -1,42 +1,44 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "netsdktestrg", - "vaultName": "testVault", - "fabricName": "Azure", - "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "recoveryPointId": "348916168024334", "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", "parameters": { "properties": { - "objectType": "IaasVMRestoreRequest", - "recoveryPointId": "348916168024334", - "recoveryType": "RestoreDisks", - "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", - "region": "southeastasia", "createNewCloudService": true, - "originalStorageAccountOption": false, "encryptionDetails": { "encryptionEnabled": false }, + "identityBasedRestoreDetails": { + "targetStorageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount" + }, "identityInfo": { "isSystemAssignedIdentity": false, "managedIdentityResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asmaskarRG1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asmaskartestmsi" }, - "identityBasedRestoreDetails": { - "targetStorageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount" - } + "objectType": "IaasVMRestoreRequest", + "originalStorageAccountOption": false, + "recoveryPointId": "348916168024334", + "recoveryType": "RestoreDisks", + "region": "southeastasia", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1" } - } + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "recoveryPointId": "348916168024334", + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "202": { "headers": { - "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", "Retry-After": 60 } } - } + }, + "operationId": "Restores_Trigger", + "title": "Restore Disks with IaasVMRestoreRequest with IdentityBasedRestoreDetails" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreWithRehydrationRequest.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreWithRehydrationRequest.json index d4c2ddcc3f13..abf369c76190 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreWithRehydrationRequest.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerRestore_RestoreDisks_IaasVMRestoreWithRehydrationRequest.json @@ -1,40 +1,42 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "netsdktestrg", - "vaultName": "testVault", - "fabricName": "Azure", - "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "recoveryPointId": "348916168024334", "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", "parameters": { "properties": { - "objectType": "IaasVMRestoreWithRehydrationRequest", - "recoveryPointId": "348916168024334", - "recoveryType": "RestoreDisks", - "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", - "storageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount", - "region": "southeastasia", "createNewCloudService": true, - "originalStorageAccountOption": false, "encryptionDetails": { "encryptionEnabled": false }, + "objectType": "IaasVMRestoreWithRehydrationRequest", + "originalStorageAccountOption": false, + "recoveryPointId": "348916168024334", "recoveryPointRehydrationInfo": { - "rehydrationRetentionDuration": "P7D", - "rehydrationPriority": "Standard" - } + "rehydrationPriority": "Standard", + "rehydrationRetentionDuration": "P7D" + }, + "recoveryType": "RestoreDisks", + "region": "southeastasia", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "storageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount" } - } + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "recoveryPointId": "348916168024334", + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "202": { "headers": { - "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", "Retry-After": 60 } } - } + }, + "operationId": "Restores_Trigger", + "title": "Restore Disks with IaasVMRestoreWithRehydrationRequest" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerValidateOperation_RestoreDisk.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerValidateOperation_RestoreDisk.json index 0b4b68853582..08ae08f9a410 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerValidateOperation_RestoreDisk.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/TriggerValidateOperation_RestoreDisk.json @@ -1,44 +1,46 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "testRG", - "vaultName": "testVault", - "fabricName": "Azure", - "containerName": "IaasVMContainer;iaasvmcontainerv2;testRG;testvmName", - "protectedItemName": "VM;iaasvmcontainerv2;testRG;testvmName", - "recoveryPointId": "348916168024334", "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;testRG;testvmName", + "fabricName": "Azure", "parameters": { "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVault/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;testRG;testvmName/protectedItems/VM;iaasvmcontainerv2;testRG;testvmName/recoveryPoints/348916168024334", "properties": { "objectType": "ValidateIaasVMRestoreOperationRequest", "restoreRequest": { - "recoveryPointId": "348916168024334", - "objectType": "IaasVMRestoreRequest", - "recoveryType": "RestoreDisks", - "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", - "storageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount", - "region": "southeastasia", "createNewCloudService": true, - "originalStorageAccountOption": false, "encryptionDetails": { "encryptionEnabled": false }, "identityInfo": { "isSystemAssignedIdentity": false, "managedIdentityResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asmaskarRG1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asmaskartestmsi" - } + }, + "objectType": "IaasVMRestoreRequest", + "originalStorageAccountOption": false, + "recoveryPointId": "348916168024334", + "recoveryType": "RestoreDisks", + "region": "southeastasia", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "storageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount" } } - } + }, + "protectedItemName": "VM;iaasvmcontainerv2;testRG;testvmName", + "recoveryPointId": "348916168024334", + "resourceGroupName": "testRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "202": { "headers": { - "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupValidateOperationResults/00000000-0000-0000-0000-000000000000?api-version=2022-03-01", "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupValidateOperationsStatuses/00000000-0000-0000-0000-000000000000?api-version=2022-03-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupValidateOperationResults/00000000-0000-0000-0000-000000000000?api-version=2022-03-01", "Retry-After": 10 } } - } + }, + "operationId": "ValidateOperation_Trigger", + "title": "Trigger Validate Operation" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/V2Policy/IaaS_v2_daily.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/V2Policy/IaaS_v2_daily.json index 91c07688703e..fd3a0638867d 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/V2Policy/IaaS_v2_daily.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/V2Policy/IaaS_v2_daily.json @@ -1,28 +1,12 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", - "policyName": "v2-daily-sample", "api-version": "2025-02-01", "parameters": { "properties": { "backupManagementType": "AzureIaasVM", - "timeZone": "India Standard Time", "instantRpRetentionRangeInDays": 30, "policyType": "V2", - "snapshotConsistencyType": "OnlyCrashConsistent", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicyV2", - "scheduleRunFrequency": "Daily", - "dailySchedule": { - "scheduleRunTimes": [ - "2018-01-24T10:00:00Z" - ] - } - }, "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", "dailySchedule": { "retentionDuration": { "count": 180, @@ -32,18 +16,6 @@ "2021-12-17T08:00:00+00:00" ] }, - "weeklySchedule": { - "daysOfTheWeek": [ - "Sunday" - ], - "retentionDuration": { - "count": 12, - "durationType": "Weeks" - }, - "retentionTimes": [ - "2021-12-17T08:00:00+00:00" - ] - }, "monthlySchedule": { "retentionDuration": { "count": 60, @@ -63,6 +35,19 @@ "2021-12-17T08:00:00+00:00" ] }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday" + ], + "retentionDuration": { + "count": 12, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2021-12-17T08:00:00+00:00" + ] + }, "yearlySchedule": { "monthsOfYear": [ "January" @@ -85,20 +70,35 @@ "2021-12-17T08:00:00+00:00" ] } - } + }, + "schedulePolicy": { + "dailySchedule": { + "scheduleRunTimes": [ + "2018-01-24T10:00:00Z" + ] + }, + "schedulePolicyType": "SimpleSchedulePolicyV2", + "scheduleRunFrequency": "Daily" + }, + "snapshotConsistencyType": "OnlyCrashConsistent", + "timeZone": "India Standard Time" } - } + }, + "policyName": "v2-daily-sample", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-sample", "name": "v2-daily-sample", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-sample", "properties": { "backupManagementType": "AzureIaasVM", "instantRpRetentionRangeInDays": 30, "policyType": "V2", - "snapshotConsistencyType": "OnlyCrashConsistent", "protectedItemsCount": 0, "resourceGuardOperationRequests": null, "retentionPolicy": { @@ -175,17 +175,19 @@ "schedulePolicyType": "SimpleSchedulePolicyV2", "scheduleRunFrequency": "Daily" }, + "snapshotConsistencyType": "OnlyCrashConsistent", "timeZone": "India Standard Time" - }, - "type": "Microsoft.RecoveryServices/vaults/backupPolicies" + } } }, "202": { "headers": { - "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-sample/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-06-01", "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-sample/operations/00000000-0000-0000-0000-000000000000?api-version=2020-06-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-sample/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-06-01", "Retry-After": 60 } } - } + }, + "operationId": "ProtectionPolicies_CreateOrUpdate", + "title": "Create or Update Enhanced Azure Vm Protection Policy with daily backup" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/V2Policy/IaaS_v2_hourly.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/V2Policy/IaaS_v2_hourly.json index c653577c039a..0d4674b93c90 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/V2Policy/IaaS_v2_hourly.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/V2Policy/IaaS_v2_hourly.json @@ -1,28 +1,12 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", - "policyName": "v2-daily-sample", "api-version": "2025-02-01", "parameters": { "properties": { "backupManagementType": "AzureIaasVM", - "timeZone": "India Standard Time", "instantRpRetentionRangeInDays": 30, "policyType": "V2", - "snapshotConsistencyType": "OnlyCrashConsistent", - "schedulePolicy": { - "hourlySchedule": { - "interval": 4, - "scheduleWindowDuration": 16, - "scheduleWindowStartTime": "2021-12-17T08:00:00Z" - }, - "schedulePolicyType": "SimpleSchedulePolicyV2", - "scheduleRunFrequency": "Hourly" - }, "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", "dailySchedule": { "retentionDuration": { "count": 180, @@ -32,18 +16,6 @@ "2021-12-17T08:00:00+00:00" ] }, - "weeklySchedule": { - "daysOfTheWeek": [ - "Sunday" - ], - "retentionDuration": { - "count": 12, - "durationType": "Weeks" - }, - "retentionTimes": [ - "2021-12-17T08:00:00+00:00" - ] - }, "monthlySchedule": { "retentionDuration": { "count": 60, @@ -63,6 +35,19 @@ "2021-12-17T08:00:00+00:00" ] }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday" + ], + "retentionDuration": { + "count": 12, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2021-12-17T08:00:00+00:00" + ] + }, "yearlySchedule": { "monthsOfYear": [ "January" @@ -85,20 +70,35 @@ "2021-12-17T08:00:00+00:00" ] } - } + }, + "schedulePolicy": { + "hourlySchedule": { + "interval": 4, + "scheduleWindowDuration": 16, + "scheduleWindowStartTime": "2021-12-17T08:00:00Z" + }, + "schedulePolicyType": "SimpleSchedulePolicyV2", + "scheduleRunFrequency": "Hourly" + }, + "snapshotConsistencyType": "OnlyCrashConsistent", + "timeZone": "India Standard Time" } - } + }, + "policyName": "v2-daily-sample", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-sample", "name": "v2-daily-sample", + "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-sample", "properties": { "backupManagementType": "AzureIaasVM", "instantRpRetentionRangeInDays": 30, "policyType": "V2", - "snapshotConsistencyType": "OnlyCrashConsistent", "protectedItemsCount": 0, "resourceGuardOperationRequests": null, "retentionPolicy": { @@ -175,17 +175,19 @@ "schedulePolicyType": "SimpleSchedulePolicyV2", "scheduleRunFrequency": "Hourly" }, + "snapshotConsistencyType": "OnlyCrashConsistent", "timeZone": "India Standard Time" - }, - "type": "Microsoft.RecoveryServices/vaults/backupPolicies" + } } }, "202": { "headers": { - "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-sample/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-06-01", "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-sample/operations/00000000-0000-0000-0000-000000000000?api-version=2020-06-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-sample/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-06-01", "Retry-After": 60 } } - } + }, + "operationId": "ProtectionPolicies_CreateOrUpdate", + "title": "Create or Update Enhanced Azure Vm Protection Policy with Hourly backup" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/V2Policy/v2-Get-Policy.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/V2Policy/v2-Get-Policy.json index f1bb9b373c14..fb72cf3ecca7 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/V2Policy/v2-Get-Policy.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/V2Policy/v2-Get-Policy.json @@ -1,22 +1,35 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", + "api-version": "2025-02-01", "policyName": "v2-daily-sample", - "api-version": "2025-02-01" + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-sample", "name": "v2-daily-sample", "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-sample", "properties": { "backupManagementType": "AzureIaasVM", "instantRpRetentionRangeInDays": 30, "policyType": "V2", - "snapshotConsistencyType": "OnlyCrashConsistent", + "protectedItemsCount": 0, + "resourceGuardOperationRequests": null, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 1, + "durationType": "Days" + }, + "retentionTimes": [ + "2018-01-24T02:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, "schedulePolicy": { "dailySchedule": { "scheduleRunTimes": [ @@ -26,23 +39,12 @@ "schedulePolicyType": "SimpleSchedulePolicyV2", "scheduleRunFrequency": "Daily" }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": [ - "2018-01-24T02:00:00Z" - ], - "retentionDuration": { - "count": 1, - "durationType": "Days" - } - } - }, - "timeZone": "Pacific Standard Time", - "protectedItemsCount": 0, - "resourceGuardOperationRequests": null + "snapshotConsistencyType": "OnlyCrashConsistent", + "timeZone": "Pacific Standard Time" } } } - } + }, + "operationId": "ProtectionPolicies_Get", + "title": "Get Azure IaasVm Enhanced Protection Policy Details" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/V2Policy/v2-List-Policies.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/V2Policy/v2-List-Policies.json index 2c877c341601..80d4b18a1f40 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/V2Policy/v2-List-Policies.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/V2Policy/v2-List-Policies.json @@ -1,21 +1,34 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", + "$filter": "backupManagementType eq 'AzureIaasVM'", "api-version": "2025-02-01", - "$filter": "backupManagementType eq 'AzureIaasVM'" + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { "body": { "value": [ { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/DefaultPolicy", "name": "DefaultPolicy", "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/DefaultPolicy", "properties": { "backupManagementType": "AzureIaasVM", + "protectedItemsCount": 0, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 30, + "durationType": "Days" + }, + "retentionTimes": [ + "2017-12-05T19:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, "schedulePolicy": { "schedulePolicyType": "SimpleSchedulePolicy", "scheduleRunFrequency": "Daily", @@ -23,28 +36,28 @@ "2017-12-05T19:00:00Z" ], "scheduleWeeklyFrequency": 0 - }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": [ - "2017-12-05T19:00:00Z" - ], - "retentionDuration": { - "count": 30, - "durationType": "Days" - } - } - }, - "protectedItemsCount": 0 + } } }, { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", "name": "testPolicy1", "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", "properties": { "backupManagementType": "AzureIaasVM", + "protectedItemsCount": 0, + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 1, + "durationType": "Days" + }, + "retentionTimes": [ + "2018-01-24T02:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, "schedulePolicy": { "schedulePolicyType": "SimpleSchedulePolicy", "scheduleRunFrequency": "Daily", @@ -53,55 +66,44 @@ ], "scheduleWeeklyFrequency": 0 }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": [ - "2018-01-24T02:00:00Z" - ], - "retentionDuration": { - "count": 1, - "durationType": "Days" - } - } - }, - "timeZone": "Pacific Standard Time", - "protectedItemsCount": 0 + "timeZone": "Pacific Standard Time" } }, { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-policy", "name": "v2-daily-policy", "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/v2-daily-policy", "properties": { "backupManagementType": "AzureIaasVM", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicyV2", - "scheduleRunFrequency": "Daily", - "dailySchedule": { - "scheduleRunTimes": [ - "2018-01-24T10:00:00Z" - ] - } - }, + "protectedItemsCount": 0, "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", "dailySchedule": { - "retentionTimes": [ - "2018-01-24T02:00:00Z" - ], "retentionDuration": { "count": 1, "durationType": "Days" - } - } + }, + "retentionTimes": [ + "2018-01-24T02:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" }, - "timeZone": "Pacific Standard Time", - "protectedItemsCount": 0 + "schedulePolicy": { + "dailySchedule": { + "scheduleRunTimes": [ + "2018-01-24T10:00:00Z" + ] + }, + "schedulePolicyType": "SimpleSchedulePolicyV2", + "scheduleRunFrequency": "Daily" + }, + "timeZone": "Pacific Standard Time" } } ] } } - } + }, + "operationId": "BackupPolicies_List", + "title": "List protection policies with backupManagementType filter as AzureIaasVm with both V1 and V2 policies" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ValidateOperationResults.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ValidateOperationResults.json index e6c6532da676..a81e4fcc945a 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ValidateOperationResults.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ValidateOperationResults.json @@ -1,19 +1,12 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", "operationId": "00000000-0000-0000-0000-000000000000", - "api-version": "2025-02-01" + "api-version": "2025-02-01", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { - "202": { - "headers": { - "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupValidateOperationResults/00000000-0000-0000-0000-000000000000?api-version=2022-03-01", - "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupValidateOperationsStatuses/00000000-0000-0000-0000-000000000000?api-version=2022-03-01", - "Retry-After": 10 - } - }, "200": { "body": { "validateOperationResponse": { @@ -28,6 +21,15 @@ ] } } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupValidateOperationsStatuses/00000000-0000-0000-0000-000000000000?api-version=2022-03-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupValidateOperationResults/00000000-0000-0000-0000-000000000000?api-version=2022-03-01", + "Retry-After": 10 + } } - } + }, + "operationId": "ValidateOperationResults_Get", + "title": "Get Operation Results of Validate Operation" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ValidateOperationStatus.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ValidateOperationStatus.json index 89f3bd0e7f6d..5590025cf878 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ValidateOperationStatus.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ValidateOperationStatus.json @@ -1,20 +1,17 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", "operationId": "00000000-0000-0000-0000-000000000000", - "api-version": "2025-02-01" + "api-version": "2025-02-01", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { - "headers": {}, "body": { - "id": "00000000-0000-0000-0000-000000000000", "name": "00000000-0000-0000-0000-000000000000", - "status": "Succeeded", - "startTime": "2017-10-29T06:04:18.207325Z", "endTime": "2017-10-29T06:04:18.207325Z", + "id": "00000000-0000-0000-0000-000000000000", "properties": { "objectType": "OperationStatusValidateOperationExtendedInfo", "validateOperationResponse": { @@ -28,8 +25,13 @@ } ] } - } - } + }, + "startTime": "2017-10-29T06:04:18.207325Z", + "status": "Succeeded" + }, + "headers": {} } - } + }, + "operationId": "ValidateOperationStatuses_Get", + "title": "Get Operation Status of Validate Operation" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ValidateOperation_RestoreDisk.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ValidateOperation_RestoreDisk.json index 0e86edf05ece..6bbc2995605e 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ValidateOperation_RestoreDisk.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ValidateOperation_RestoreDisk.json @@ -1,40 +1,39 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "testRG", - "vaultName": "testVault", - "fabricName": "Azure", - "containerName": "IaasVMContainer;iaasvmcontainerv2;testRG;testvmName", - "protectedItemName": "VM;iaasvmcontainerv2;testRG;testvmName", - "recoveryPointId": "348916168024334", "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;testRG;testvmName", + "fabricName": "Azure", "parameters": { "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVault/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;testRG;testvmName/protectedItems/VM;iaasvmcontainerv2;testRG;testvmName/recoveryPoints/348916168024334", "properties": { "objectType": "ValidateIaasVMRestoreOperationRequest", "restoreRequest": { - "recoveryPointId": "348916168024334", - "objectType": "IaasVMRestoreRequest", - "recoveryType": "RestoreDisks", - "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", - "storageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount", - "region": "southeastasia", "createNewCloudService": true, - "originalStorageAccountOption": false, "encryptionDetails": { "encryptionEnabled": false }, "identityInfo": { "isSystemAssignedIdentity": false, "managedIdentityResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asmaskarRG1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asmaskartestmsi" - } + }, + "objectType": "IaasVMRestoreRequest", + "originalStorageAccountOption": false, + "recoveryPointId": "348916168024334", + "recoveryType": "RestoreDisks", + "region": "southeastasia", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", + "storageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount" } } - } + }, + "protectedItemName": "VM;iaasvmcontainerv2;testRG;testvmName", + "recoveryPointId": "348916168024334", + "resourceGroupName": "testRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "200": { - "headers": {}, "body": { "validateOperationResponse": { "validationResults": [ @@ -47,7 +46,10 @@ } ] } - } + }, + "headers": {} } - } + }, + "operationId": "Operation_Validate", + "title": "Validate Operation" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ValidateOperation_RestoreDisk_IdentityBasedRestoreDetails.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ValidateOperation_RestoreDisk_IdentityBasedRestoreDetails.json index 05ded299a80d..dc08ad57dd4b 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ValidateOperation_RestoreDisk_IdentityBasedRestoreDetails.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureIaasVm/ValidateOperation_RestoreDisk_IdentityBasedRestoreDetails.json @@ -1,42 +1,41 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "testRG", - "vaultName": "testVault", - "fabricName": "Azure", - "containerName": "IaasVMContainer;iaasvmcontainerv2;testRG;testvmName", - "protectedItemName": "VM;iaasvmcontainerv2;testRG;testvmName", - "recoveryPointId": "348916168024334", "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;testRG;testvmName", + "fabricName": "Azure", "parameters": { "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVault/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;testRG;testvmName/protectedItems/VM;iaasvmcontainerv2;testRG;testvmName/recoveryPoints/348916168024334", "properties": { "objectType": "ValidateIaasVMRestoreOperationRequest", "restoreRequest": { - "recoveryPointId": "348916168024334", - "objectType": "IaasVMRestoreRequest", - "recoveryType": "RestoreDisks", - "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1", - "region": "southeastasia", "createNewCloudService": true, - "originalStorageAccountOption": false, "encryptionDetails": { "encryptionEnabled": false }, + "identityBasedRestoreDetails": { + "targetStorageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount" + }, "identityInfo": { "isSystemAssignedIdentity": false, "managedIdentityResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asmaskarRG1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asmaskartestmsi" }, - "identityBasedRestoreDetails": { - "targetStorageAccountId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testingRg/providers/Microsoft.Storage/storageAccounts/testAccount" - } + "objectType": "IaasVMRestoreRequest", + "originalStorageAccountOption": false, + "recoveryPointId": "348916168024334", + "recoveryType": "RestoreDisks", + "region": "southeastasia", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.Compute/virtualMachines/netvmtestv2vm1" } } - } + }, + "protectedItemName": "VM;iaasvmcontainerv2;testRG;testvmName", + "recoveryPointId": "348916168024334", + "resourceGroupName": "testRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "200": { - "headers": {}, "body": { "validateOperationResponse": { "validationResults": [ @@ -49,7 +48,10 @@ } ] } - } + }, + "headers": {} } - } + }, + "operationId": "Operation_Validate", + "title": "Validate Operation with identityBasedRestoreDetails" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectableContainers_List.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectableContainers_List.json index 9f25be8aaed8..73bb9f1fa04b 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectableContainers_List.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectableContainers_List.json @@ -1,42 +1,44 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "testRg", - "vaultName": "testvault", - "fabricName": "Azure", + "$filter": "backupManagementType eq 'AzureStorage' and workloadType eq 'AzureFileShare'", "api-version": "2025-02-01", - "$filter": "backupManagementType eq 'AzureStorage' and workloadType eq 'AzureFileShare'" + "fabricName": "Azure", + "resourceGroupName": "testRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testvault" }, "responses": { "200": { "body": { "value": [ { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectableContainers/StorageContainer;storage;test-rg;teststorage", "name": "StorageContainer;storage;test-rg;testst", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectableContainers", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectableContainers/StorageContainer;storage;test-rg;teststorage", "properties": { - "friendlyName": "teststorage", "backupManagementType": "AzureStorage", - "protectableContainerType": "StorageContainer", + "containerId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/teststorage", + "friendlyName": "teststorage", "healthStatus": "Healthy", - "containerId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/teststorage" + "protectableContainerType": "StorageContainer" } }, { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectableContainers/StorageContainer;ClassicStorage;test-rg;teststorage", "name": "StorageContainer;ClassicStorage;test-rg;teststorage", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectableContainers", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectableContainers/StorageContainer;ClassicStorage;test-rg;teststorage", "properties": { - "friendlyName": "teststorage", "backupManagementType": "AzureStorage", - "protectableContainerType": "StorageContainer", + "containerId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ClassicStorage/storageAccounts/teststorage", + "friendlyName": "teststorage", "healthStatus": "Healthy", - "containerId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.ClassicStorage/storageAccounts/teststorage" + "protectableContainerType": "StorageContainer" } } ] } } - } + }, + "operationId": "ProtectableContainers_List", + "title": "List protectable items with backupManagementType filter as AzureStorage" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionContainers_Inquire.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionContainers_Inquire.json index 7b7305895559..844c579a6850 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionContainers_Inquire.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionContainers_Inquire.json @@ -1,19 +1,21 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "test-rg", - "vaultName": "testvault", - "fabricName": "Azure", + "api-version": "2025-02-01", "containerName": "storagecontainer;Storage;test-rg;teststorage", - "api-version": "2025-02-01" + "fabricName": "Azure", + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testvault" }, "responses": { "202": { "headers": { - "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/storagecontainer;Storage;test-rg;teststorage/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/storagecontainer;Storage;test-rg;teststorage/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/storagecontainer;Storage;test-rg;teststorage/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", "Retry-After": 60 } } - } + }, + "operationId": "ProtectionContainers_Inquire", + "title": "Inquire Azure Storage Protection Containers" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionContainers_Inquire_Result.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionContainers_Inquire_Result.json index 2cff12a5451e..5ddb311022db 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionContainers_Inquire_Result.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionContainers_Inquire_Result.json @@ -1,33 +1,25 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "test-rg", - "vaultName": "testvault", - "fabricName": "Azure", - "containerName": "VMAppContainer;Compute;testRG;testSQL", "operationId": "00000000-0000-0000-0000-000000000000", - "api-version": "2025-02-01" + "api-version": "2025-02-01", + "containerName": "VMAppContainer;Compute;testRG;testSQL", + "fabricName": "Azure", + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testvault" }, "responses": { - "204": {}, - "202": { - "headers": { - "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;testRG;testSQL/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", - "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;testRG;testSQL/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", - "Retry-After": 60 - } - }, "200": { "body": { "name": "VMAppContainer;Compute;testRG;testSQL", - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;testRG;testSQL", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;testRG;testSQL", "properties": { + "backupManagementType": "AzureWorkload", + "containerType": "VMAppContainer", "extendedInfo": { "hostServerName": "testsql", - "nodesList": [], "inquiryInfo": { - "status": "Success", "errorDetail": { "code": "Success", "message": "Not Available", @@ -38,28 +30,38 @@ "inquiryDetails": [ { "type": "sql", - "itemCount": 14, "inquiryValidation": { - "status": "Success", "errorDetail": { "code": "Success", "message": "Not Available", "recommendations": [ "Not Available" ] - } - } + }, + "status": "Success" + }, + "itemCount": 14 } - ] - } + ], + "status": "Success" + }, + "nodesList": [] }, + "friendlyName": "testSQL", "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testSQL", - "backupManagementType": "AzureWorkload", - "workloadType": null, - "containerType": "VMAppContainer", - "friendlyName": "testSQL" + "workloadType": null } } - } - } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;testRG;testSQL/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;testRG;testSQL/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Retry-After": 60 + } + }, + "204": {} + }, + "operationId": "ProtectionContainerOperationResults_Get", + "title": "Get Azure Storage Protection Container Operation Result" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionContainers_List.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionContainers_List.json index 7c4f85a5755e..b1bb7627c4dd 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionContainers_List.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionContainers_List.json @@ -1,32 +1,34 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "testRg", - "vaultName": "testVault", + "$filter": "backupManagementType eq 'AzureWorkload'", "api-version": "2025-02-01", "fabricName": "Azure", - "$filter": "backupManagementType eq 'AzureWorkload'" + "resourceGroupName": "testRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/172424a4-d65f-421e-a8de-197d98aabeba/resourcegroups/testrg/providers/microsoft.recoveryservices/vaults/suchandr-test-vault-wcus/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;testrg;suchandrtestsa125", "name": "StorageContainer;Storage;testrg;suchandrtestsa125", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers", + "id": "/subscriptions/172424a4-d65f-421e-a8de-197d98aabeba/resourcegroups/testrg/providers/microsoft.recoveryservices/vaults/suchandr-test-vault-wcus/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;testrg;suchandrtestsa125", "properties": { - "sourceResourceId": "/subscriptions/172424a4-d65f-421e-a8de-197d98aabeba/resourceGroups/testrg/providers/Microsoft.Storage/storageAccounts/suchandrtestsa125", - "protectedItemCount": 2, - "friendlyName": "suchandrtestsa125", "backupManagementType": "AzureStorage", - "registrationStatus": "Registered", + "containerType": "StorageContainer", + "friendlyName": "suchandrtestsa125", "healthStatus": "Healthy", - "containerType": "StorageContainer" + "protectedItemCount": 2, + "registrationStatus": "Registered", + "sourceResourceId": "/subscriptions/172424a4-d65f-421e-a8de-197d98aabeba/resourceGroups/testrg/providers/Microsoft.Storage/storageAccounts/suchandrtestsa125" } } ] } } - } + }, + "operationId": "BackupProtectionContainers_List", + "title": "List Backup Protection Containers" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionContainers_Register.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionContainers_Register.json index 472ce53465a8..95bff22bfaf0 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionContainers_Register.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionContainers_Register.json @@ -1,44 +1,46 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "swaggertestvault", - "fabricName": "Azure", - "containerName": "StorageContainer;Storage;SwaggerTestRg;swaggertestsa", "api-version": "2025-02-01", + "containerName": "StorageContainer;Storage;SwaggerTestRg;swaggertestsa", + "fabricName": "Azure", "parameters": { "properties": { - "friendlyName": "swaggertestsa", + "acquireStorageAccountLock": "Acquire", "backupManagementType": "AzureStorage", - "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/SwaggerTestRg/providers/Microsoft.Storage/storageAccounts/swaggertestsa", "containerType": "StorageContainer", - "acquireStorageAccountLock": "Acquire" + "friendlyName": "swaggertestsa", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/SwaggerTestRg/providers/Microsoft.Storage/storageAccounts/swaggertestsa" } - } + }, + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "swaggertestvault" }, "responses": { - "202": { - "headers": { - "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;SwaggerTestRg;swaggertestsa/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2019-05-13-preview", - "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;SwaggerTestRg;swaggertestsa/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", - "Retry-After": 60 - } - }, "200": { "body": { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;SwaggerTestRg;swaggertestsa", "name": "StorageContainer;Storage;SwaggerTestRg;swaggertestsa", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;SwaggerTestRg;swaggertestsa", "properties": { - "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/SwaggerTestRg/providers/Microsoft.Storage/storageAccounts/swaggertestsa", - "protectedItemCount": 0, "acquireStorageAccountLock": "Acquire", - "friendlyName": "swaggertestsa", "backupManagementType": "AzureStorage", - "registrationStatus": "Registered", + "containerType": "StorageContainer", + "friendlyName": "swaggertestsa", "healthStatus": "Healthy", - "containerType": "StorageContainer" + "protectedItemCount": 0, + "registrationStatus": "Registered", + "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/SwaggerTestRg/providers/Microsoft.Storage/storageAccounts/swaggertestsa" } } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;SwaggerTestRg;swaggertestsa/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2019-05-13-preview", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;SwaggerTestRg;swaggertestsa/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Retry-After": 60 + } } - } + }, + "operationId": "ProtectionContainers_Register", + "title": "RegisterAzure Storage ProtectionContainers" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionPolicies_CreateOrUpdate_Daily.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionPolicies_CreateOrUpdate_Daily.json index 43fc6eb1fb45..774e340ce240 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionPolicies_CreateOrUpdate_Daily.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionPolicies_CreateOrUpdate_Daily.json @@ -1,48 +1,26 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "swaggertestvault", - "policyName": "dailyPolicy2", "api-version": "2025-02-01", "parameters": { "properties": { "backupManagementType": "AzureStorage", - "workLoadType": "AzureFileShare", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Daily", - "scheduleRunTimes": [ - "2021-09-29T08:00:00.000Z" - ] - }, - "timeZone": "UTC", "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", "dailySchedule": { - "retentionTimes": [ - "2021-09-29T08:00:00.000Z" - ], "retentionDuration": { "count": 5, "durationType": "Days" - } - }, - "weeklySchedule": { - "daysOfTheWeek": [ - "Sunday" - ], + }, "retentionTimes": [ "2021-09-29T08:00:00.000Z" - ], - "retentionDuration": { - "count": 12, - "durationType": "Weeks" - } + ] }, "monthlySchedule": { - "retentionScheduleFormatType": "Weekly", + "retentionDuration": { + "count": 60, + "durationType": "Months" + }, "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ "Sunday" @@ -53,18 +31,31 @@ }, "retentionTimes": [ "2021-09-29T08:00:00.000Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday" ], "retentionDuration": { - "count": 60, - "durationType": "Months" - } + "count": 12, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2021-09-29T08:00:00.000Z" + ] }, "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", "monthsOfYear": [ "January" ], + "retentionDuration": { + "count": 10, + "durationType": "Years" + }, "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ "Sunday" @@ -75,56 +66,49 @@ }, "retentionTimes": [ "2021-09-29T08:00:00.000Z" - ], - "retentionDuration": { - "count": 10, - "durationType": "Years" - } + ] } - } + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": [ + "2021-09-29T08:00:00.000Z" + ] + }, + "timeZone": "UTC", + "workLoadType": "AzureFileShare" } - } + }, + "policyName": "dailyPolicy2", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "swaggertestvault" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/dailyPolicy2", "name": "dailyPolicy2", "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/dailyPolicy2", "properties": { "backupManagementType": "AzureStorage", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Daily", - "scheduleRunTimes": [ - "2021-09-29T08:00:00Z" - ], - "scheduleWeeklyFrequency": 0 - }, + "protectedItemsCount": 0, "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", "dailySchedule": { - "retentionTimes": [ - "2021-09-29T08:00:00Z" - ], "retentionDuration": { "count": 5, "durationType": "Days" - } - }, - "weeklySchedule": { - "daysOfTheWeek": [ - "Sunday" - ], + }, "retentionTimes": [ "2021-09-29T08:00:00Z" - ], - "retentionDuration": { - "count": 12, - "durationType": "Weeks" - } + ] }, "monthlySchedule": { + "retentionDuration": { + "count": 60, + "durationType": "Months" + }, "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ @@ -136,17 +120,30 @@ }, "retentionTimes": [ "2021-09-29T08:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday" ], "retentionDuration": { - "count": 60, - "durationType": "Months" - } + "count": 12, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2021-09-29T08:00:00Z" + ] }, "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", "monthsOfYear": [ "January" ], + "retentionDuration": { + "count": 10, + "durationType": "Years" + }, + "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ "Sunday" @@ -157,24 +154,29 @@ }, "retentionTimes": [ "2021-09-29T08:00:00Z" - ], - "retentionDuration": { - "count": 10, - "durationType": "Years" - } + ] } }, - "timeZone": "UTC", - "protectedItemsCount": 0 + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Daily", + "scheduleRunTimes": [ + "2021-09-29T08:00:00Z" + ], + "scheduleWeeklyFrequency": 0 + }, + "timeZone": "UTC" } } }, "202": { "headers": { - "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/dailyPolicy2/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/dailyPolicy2/operations/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/dailyPolicy2/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", "Retry-After": 60 } } - } + }, + "operationId": "ProtectionPolicies_CreateOrUpdate", + "title": "Create or Update Daily Azure Storage Protection Policy" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionPolicies_CreateOrUpdate_Hardened.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionPolicies_CreateOrUpdate_Hardened.json index cfa39b188c91..767f3fb73bb7 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionPolicies_CreateOrUpdate_Hardened.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionPolicies_CreateOrUpdate_Hardened.json @@ -1,14 +1,9 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "swaggertestvault", - "policyName": "newPolicyV2", "api-version": "2025-02-01", "parameters": { "properties": { "backupManagementType": "AzureStorage", - "workLoadType": "AzureFileShare", "schedulePolicy": { "schedulePolicyType": "SimpleSchedulePolicy", "scheduleRunFrequency": "Daily", @@ -20,31 +15,22 @@ "vaultRetentionPolicy": { "snapshotRetentionInDays": 5, "vaultRetention": { - "retentionPolicyType": "LongTermRetentionPolicy", "dailySchedule": { - "retentionTimes": [ - "2023-07-18T09:30:00.000Z" - ], "retentionDuration": { "count": 30, "durationType": "Days" - } - }, - "weeklySchedule": { - "daysOfTheWeek": [ - "Sunday" - ], + }, "retentionTimes": [ "2023-07-18T09:30:00.000Z" - ], - "retentionDuration": { - "count": 12, - "durationType": "Weeks" - } + ] }, "monthlySchedule": { - "retentionScheduleFormatType": "Weekly", + "retentionDuration": { + "count": 60, + "durationType": "Months" + }, "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ "Sunday" @@ -55,18 +41,31 @@ }, "retentionTimes": [ "2023-07-18T09:30:00.000Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday" ], "retentionDuration": { - "count": 60, - "durationType": "Months" - } + "count": 12, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2023-07-18T09:30:00.000Z" + ] }, "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", "monthsOfYear": [ "January" ], + "retentionDuration": { + "count": 10, + "durationType": "Years" + }, "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ "Sunday" @@ -77,25 +76,27 @@ }, "retentionTimes": [ "2023-07-18T09:30:00.000Z" - ], - "retentionDuration": { - "count": 10, - "durationType": "Years" - } + ] } } - } + }, + "workLoadType": "AzureFileShare" } - } + }, + "policyName": "newPolicyV2", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "swaggertestvault" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/newPolicyV2", "name": "newPolicyV2", "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/newPolicyV2", "properties": { "backupManagementType": "AzureStorage", + "protectedItemsCount": 0, "schedulePolicy": { "schedulePolicyType": "SimpleSchedulePolicy", "scheduleRunFrequency": "Daily", @@ -103,34 +104,26 @@ "2023-07-18T09:30:00.000Z" ] }, + "timeZone": "UTC", "vaultRetentionPolicy": { "snapshotRetentionInDays": 5, "vaultRetention": { - "retentionPolicyType": "LongTermRetentionPolicy", "dailySchedule": { - "retentionTimes": [ - "2023-07-18T09:30:00.000Z" - ], "retentionDuration": { "count": 30, "durationType": "Days" - } - }, - "weeklySchedule": { - "daysOfTheWeek": [ - "Sunday" - ], + }, "retentionTimes": [ "2023-07-18T09:30:00.000Z" - ], - "retentionDuration": { - "count": 12, - "durationType": "Weeks" - } + ] }, "monthlySchedule": { - "retentionScheduleFormatType": "Weekly", + "retentionDuration": { + "count": 60, + "durationType": "Months" + }, "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ "Sunday" @@ -141,18 +134,31 @@ }, "retentionTimes": [ "2023-07-18T09:30:00.000Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday" ], "retentionDuration": { - "count": 60, - "durationType": "Months" - } + "count": 12, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2023-07-18T09:30:00.000Z" + ] }, "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", "monthsOfYear": [ "January" ], + "retentionDuration": { + "count": 10, + "durationType": "Years" + }, "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ "Sunday" @@ -163,25 +169,21 @@ }, "retentionTimes": [ "2023-07-18T09:30:00.000Z" - ], - "retentionDuration": { - "count": 10, - "durationType": "Years" - } + ] } } - }, - "timeZone": "UTC", - "protectedItemsCount": 0 + } } } }, "202": { "headers": { - "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/newPolicyV2/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/newPolicyV2/operations/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/newPolicyV2/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", "Retry-After": 60 } } - } + }, + "operationId": "ProtectionPolicies_CreateOrUpdate", + "title": "Create or Update Azure Storage Vault Standard Protection Policy" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionPolicies_CreateOrUpdate_Hourly.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionPolicies_CreateOrUpdate_Hourly.json index b93058bd84f2..7e9851f608b7 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionPolicies_CreateOrUpdate_Hourly.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/ProtectionPolicies_CreateOrUpdate_Hourly.json @@ -1,46 +1,24 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "swaggertestvault", - "policyName": "newPolicy2", "api-version": "2025-02-01", "parameters": { "properties": { "backupManagementType": "AzureStorage", - "workLoadType": "AzureFileShare", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Hourly", - "hourlySchedule": { - "interval": 4, - "scheduleWindowStartTime": "2021-09-29T08:00:00.000Z", - "scheduleWindowDuration": 12 - } - }, - "timeZone": "UTC", "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", "dailySchedule": { - "retentionTimes": null, "retentionDuration": { "count": 5, "durationType": "Days" - } - }, - "weeklySchedule": { - "daysOfTheWeek": [ - "Sunday" - ], - "retentionTimes": null, - "retentionDuration": { - "count": 12, - "durationType": "Weeks" - } + }, + "retentionTimes": null }, "monthlySchedule": { - "retentionScheduleFormatType": "Weekly", + "retentionDuration": { + "count": 60, + "durationType": "Months" + }, "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ "Sunday" @@ -49,18 +27,29 @@ "First" ] }, - "retentionTimes": null, + "retentionTimes": null + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday" + ], "retentionDuration": { - "count": 60, - "durationType": "Months" - } + "count": 12, + "durationType": "Weeks" + }, + "retentionTimes": null }, "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", "monthsOfYear": [ "January" ], + "retentionDuration": { + "count": 10, + "durationType": "Years" + }, "retentionScheduleDaily": null, + "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ "Sunday" @@ -69,58 +58,51 @@ "First" ] }, - "retentionTimes": null, - "retentionDuration": { - "count": 10, - "durationType": "Years" - } + "retentionTimes": null } - } + }, + "schedulePolicy": { + "hourlySchedule": { + "interval": 4, + "scheduleWindowDuration": 12, + "scheduleWindowStartTime": "2021-09-29T08:00:00.000Z" + }, + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Hourly" + }, + "timeZone": "UTC", + "workLoadType": "AzureFileShare" } - } + }, + "policyName": "newPolicy2", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "swaggertestvault" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/newPolicy2", "name": "newPolicy2", "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/newPolicy2", "properties": { "backupManagementType": "AzureStorage", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Hourly", - "hourlySchedule": { - "interval": 4, - "scheduleWindowStartTime": "2021-09-29T08:00:00Z", - "scheduleWindowDuration": 12 - }, - "scheduleWeeklyFrequency": 0 - }, + "protectedItemsCount": 0, "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", "dailySchedule": { - "retentionTimes": [ - "2021-09-29T20:00:00Z" - ], "retentionDuration": { "count": 5, "durationType": "Days" - } - }, - "weeklySchedule": { - "daysOfTheWeek": [ - "Sunday" - ], + }, "retentionTimes": [ "2021-09-29T20:00:00Z" - ], - "retentionDuration": { - "count": 12, - "durationType": "Weeks" - } + ] }, "monthlySchedule": { + "retentionDuration": { + "count": 60, + "durationType": "Months" + }, "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ @@ -132,17 +114,30 @@ }, "retentionTimes": [ "2021-09-29T20:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday" ], "retentionDuration": { - "count": 60, - "durationType": "Months" - } + "count": 12, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2021-09-29T20:00:00Z" + ] }, "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", "monthsOfYear": [ "January" ], + "retentionDuration": { + "count": 10, + "durationType": "Years" + }, + "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ "Sunday" @@ -153,24 +148,31 @@ }, "retentionTimes": [ "2021-09-29T20:00:00Z" - ], - "retentionDuration": { - "count": 10, - "durationType": "Years" - } + ] } }, - "timeZone": "UTC", - "protectedItemsCount": 0 + "schedulePolicy": { + "hourlySchedule": { + "interval": 4, + "scheduleWindowDuration": 12, + "scheduleWindowStartTime": "2021-09-29T08:00:00Z" + }, + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunFrequency": "Hourly", + "scheduleWeeklyFrequency": 0 + }, + "timeZone": "UTC" } } }, "202": { "headers": { - "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/newPolicy2/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/newPolicy2/operations/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/swaggertestvault/backupPolicies/newPolicy2/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", "Retry-After": 60 } } - } + }, + "operationId": "ProtectionPolicies_CreateOrUpdate", + "title": "Create or Update Hourly Azure Storage Protection Policy" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/SoftDeletedContainers_List.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/SoftDeletedContainers_List.json index e015ecb4bd20..c355efb0143d 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/SoftDeletedContainers_List.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureStorage/SoftDeletedContainers_List.json @@ -1,32 +1,34 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "testRg", - "vaultName": "testVault", + "$filter": "backupManagementType eq 'AzureWorkload'", "api-version": "2025-02-01", "fabricName": "Azure", - "$filter": "backupManagementType eq 'AzureWorkload'" + "resourceGroupName": "testRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/172424a4-d65f-421e-a8de-197d98aabeba/resourcegroups/testrg/providers/microsoft.recoveryservices/vaults/suchandr-test-vault-wcus/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;testrg;suchandrtestsa125", "name": "StorageContainer;Storage;testrg;suchandrtestsa125", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers", + "id": "/subscriptions/172424a4-d65f-421e-a8de-197d98aabeba/resourcegroups/testrg/providers/microsoft.recoveryservices/vaults/suchandr-test-vault-wcus/backupFabrics/Azure/protectionContainers/StorageContainer;Storage;testrg;suchandrtestsa125", "properties": { - "sourceResourceId": "/subscriptions/172424a4-d65f-421e-a8de-197d98aabeba/resourceGroups/testrg/providers/Microsoft.Storage/storageAccounts/suchandrtestsa125", - "protectedItemCount": 2, - "friendlyName": "suchandrtestsa125", "backupManagementType": "AzureStorage", - "registrationStatus": "SoftDeleted", + "containerType": "StorageContainer", + "friendlyName": "suchandrtestsa125", "healthStatus": "Healthy", - "containerType": "StorageContainer" + "protectedItemCount": 2, + "registrationStatus": "SoftDeleted", + "sourceResourceId": "/subscriptions/172424a4-d65f-421e-a8de-197d98aabeba/resourceGroups/testrg/providers/Microsoft.Storage/storageAccounts/suchandrtestsa125" } } ] } } - } + }, + "operationId": "DeletedProtectionContainers_List", + "title": "List Backup Protection Containers" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupPolicies_List.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupPolicies_List.json index 1ad3142f19a5..348fd6a76280 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupPolicies_List.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupPolicies_List.json @@ -1,29 +1,41 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", + "$filter": "backupManagementType eq 'AzureWorkload'", "api-version": "2025-02-01", - "$filter": "backupManagementType eq 'AzureWorkload'" + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { "body": { "value": [ { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/HourlyLogBackup", "name": "HourlyLogBackup", "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/HourlyLogBackup", "properties": { "backupManagementType": "AzureWorkload", - "workLoadType": "SQLDataBase", + "protectedItemsCount": 0, "settings": { - "timeZone": "UTC", - "issqlcompression": false + "issqlcompression": false, + "timeZone": "UTC" }, "subProtectionPolicy": [ { "policyType": "Full", + "retentionPolicy": { + "dailySchedule": { + "retentionDuration": { + "count": 30, + "durationType": "Days" + }, + "retentionTimes": [ + "2017-12-05T19:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy" + }, "schedulePolicy": { "schedulePolicyType": "SimpleSchedulePolicy", "scheduleRunFrequency": "Daily", @@ -31,40 +43,30 @@ "2017-12-05T19:00:00Z" ], "scheduleWeeklyFrequency": 0 - }, - "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "dailySchedule": { - "retentionTimes": [ - "2017-12-05T19:00:00Z" - ], - "retentionDuration": { - "count": 30, - "durationType": "Days" - } - } } }, { "policyType": "Log", - "schedulePolicy": { - "schedulePolicyType": "LogSchedulePolicy", - "scheduleFrequencyInMins": 60 - }, "retentionPolicy": { - "retentionPolicyType": "SimpleRetentionPolicy", "retentionDuration": { "count": 30, "durationType": "Days" - } + }, + "retentionPolicyType": "SimpleRetentionPolicy" + }, + "schedulePolicy": { + "scheduleFrequencyInMins": 60, + "schedulePolicyType": "LogSchedulePolicy" } } ], - "protectedItemsCount": 0 + "workLoadType": "SQLDataBase" } } ] } } - } + }, + "operationId": "BackupPolicies_List", + "title": "List protection policies with backupManagementType filter as AzureWorkload" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupProtectionIntent_Delete.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupProtectionIntent_Delete.json index ac68e3818978..78624a4c5985 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupProtectionIntent_Delete.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupProtectionIntent_Delete.json @@ -1,14 +1,16 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "myRG", - "vaultName": "myVault", + "api-version": "2025-02-01", "fabricName": "Azure", "intentObjectName": "249D9B07-D2EF-4202-AA64-65F35418564E", - "api-version": "2025-02-01", - "parameters": {} + "parameters": {}, + "resourceGroupName": "myRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "myVault" }, "responses": { "204": {} - } + }, + "operationId": "ProtectionIntent_Delete", + "title": "Delete Protection intent from item" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupProtectionIntent_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupProtectionIntent_Get.json index 72cb278b4084..b69d94994f9b 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupProtectionIntent_Get.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupProtectionIntent_Get.json @@ -1,26 +1,28 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "myRG", - "vaultName": "myVault", + "api-version": "2025-02-01", "fabricName": "Azure", "intentObjectName": "249D9B07-D2EF-4202-AA64-65F35418564E", - "api-version": "2025-02-01", - "parameters": {} + "parameters": {}, + "resourceGroupName": "myRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "myVault" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupFabrics/Azure/backupProtectionIntent/249D9B07-D2EF-4202-AA64-65F35418564E", "name": "249D9B07-D2EF-4202-AA64-65F35418564E", "type": "Microsoft.RecoveryServices/vaults/backupProtectionIntent", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupFabrics/Azure/backupProtectionIntent/249D9B07-D2EF-4202-AA64-65F35418564E", "properties": { - "protectionIntentItemType": "AzureWorkloadContainerAutoProtectionIntent", "backupManagementType": "AzureWorkload", + "itemId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupProtectionContainer/VMAppContainer;Compute;testVmName/backupProtectableItems/SQLInstance;MSSQLSERVER", "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupPolicies/myPolicy", - "itemId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupProtectionContainer/VMAppContainer;Compute;testVmName/backupProtectableItems/SQLInstance;MSSQLSERVER" + "protectionIntentItemType": "AzureWorkloadContainerAutoProtectionIntent" } } } - } + }, + "operationId": "ProtectionIntent_Get", + "title": "Get ProtectionIntent for an item" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupProtectionIntent_List.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupProtectionIntent_List.json index afabd18ce2b9..408284c5714e 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupProtectionIntent_List.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupProtectionIntent_List.json @@ -1,28 +1,30 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "myRG", - "vaultName": "myVault", "api-version": "2025-02-01", - "parameters": {} + "parameters": {}, + "resourceGroupName": "myRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "myVault" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupFabrics/Azure/backupProtectionIntent/249D9B07-D2EF-4202-AA64-65F35418564E", "name": "249D9B07-D2EF-4202-AA64-65F35418564E", "type": "Microsoft.RecoveryServices/vaults/backupProtectionIntent", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupFabrics/Azure/backupProtectionIntent/249D9B07-D2EF-4202-AA64-65F35418564E", "properties": { - "protectionIntentItemType": "AzureWorkloadContainerAutoProtectionIntent", "backupManagementType": "AzureWorkload", + "itemId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupProtectionContainer/VMAppContainer;Compute;testVmName/backupProtectableItems/SQLInstance;MSSQLSERVER", "policyId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupPolicies/myPolicy", - "itemId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/myVault/backupProtectionContainer/VMAppContainer;Compute;testVmName/backupProtectableItems/SQLInstance;MSSQLSERVER" + "protectionIntentItemType": "AzureWorkloadContainerAutoProtectionIntent" } } ] } } - } + }, + "operationId": "BackupProtectionIntent_List", + "title": "List protection intent with backupManagementType filter" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupWorkloadItems_List.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupWorkloadItems_List.json index 2ad0a59d6ea7..437611b2e9ca 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupWorkloadItems_List.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/BackupWorkloadItems_List.json @@ -1,22 +1,24 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "testRg", - "vaultName": "suchandr-seacan-rsv", - "api-version": "2025-02-01", "$filter": "backupManagementType eq 'AzureWorkload'", + "api-version": "2025-02-01", + "containerName": "VMAppContainer;Compute;bvtdtestag;sqlserver-1", "fabricName": "Azure", - "containerName": "VMAppContainer;Compute;bvtdtestag;sqlserver-1" + "resourceGroupName": "testRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "suchandr-seacan-rsv" }, "responses": { "200": { "body": { + "nextLink": null, "value": [ { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testRg/providers/Microsoft.RecoveryServices/vaults/suchandr-seacan-rsv/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;bvtdtestag;sqlserver-1/protectableItems/SQLInstance;MSSQLSERVER", "name": "SQLInstance;MSSQLSERVER", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/items", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/testRg/providers/Microsoft.RecoveryServices/vaults/suchandr-seacan-rsv/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;bvtdtestag;sqlserver-1/protectableItems/SQLInstance;MSSQLSERVER", "properties": { + "backupManagementType": "AzureWorkload", "dataDirectoryPaths": [ { "type": "Data", @@ -27,21 +29,21 @@ "path": "F:\\LOG\\" } ], + "friendlyName": "MSSQLSERVER", + "isAutoProtectable": true, "parentName": "MSSQLSERVER", + "protectionState": "NotProtected", "serverName": "sqlserver-1.contoso.com", - "isAutoProtectable": true, - "subinquireditemcount": 0, "subWorkloadItemCount": 3, - "backupManagementType": "AzureWorkload", - "workloadType": "SQL", + "subinquireditemcount": 0, "workloadItemType": "SQLInstance", - "friendlyName": "MSSQLSERVER", - "protectionState": "NotProtected" + "workloadType": "SQL" } } - ], - "nextLink": null + ] } } - } + }, + "operationId": "BackupWorkloadItems_List", + "title": "List Workload Items in Container" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/ProtectionContainers_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/ProtectionContainers_Get.json index 4e336f74241c..8a94811cb913 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/ProtectionContainers_Get.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/ProtectionContainers_Get.json @@ -1,25 +1,25 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "testRg", - "vaultName": "testVault", - "fabricName": "Azure", - "containerName": "VMAppContainer;Compute;testRG;testSQL", + "$filter": "backupManagementType eq 'AzureWorkload'", "api-version": "2025-02-01", - "$filter": "backupManagementType eq 'AzureWorkload'" + "containerName": "VMAppContainer;Compute;testRG;testSQL", + "fabricName": "Azure", + "resourceGroupName": "testRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "200": { "body": { "name": "VMAppContainer;Compute;testRG;testSQL", - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;testRG;testSQL", "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;testRG;testSQL", "properties": { + "backupManagementType": "AzureWorkload", + "containerType": "VMAppContainer", "extendedInfo": { "hostServerName": "testsql", - "nodesList": [], "inquiryInfo": { - "status": "Success", "errorDetail": { "code": "Success", "message": "Not Available", @@ -30,28 +30,30 @@ "inquiryDetails": [ { "type": "sql", - "itemCount": 14, "inquiryValidation": { - "status": "Success", "errorDetail": { "code": "Success", "message": "Not Available", "recommendations": [ "Not Available" ] - } - } + }, + "status": "Success" + }, + "itemCount": 14 } - ] - } + ], + "status": "Success" + }, + "nodesList": [] }, + "friendlyName": "testSQL", "sourceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines/testSQL", - "backupManagementType": "AzureWorkload", - "workloadType": null, - "containerType": "VMAppContainer", - "friendlyName": "testSQL" + "workloadType": null } } } - } + }, + "operationId": "ProtectionContainers_Get", + "title": "Get Protection Container Details" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/ProtectionContainers_Unregister.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/ProtectionContainers_Unregister.json index 5288dc6047e4..7d087d52b74a 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/ProtectionContainers_Unregister.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/ProtectionContainers_Unregister.json @@ -1,21 +1,23 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "testRg", - "vaultName": "testVault", "api-version": "2025-02-01", + "containerName": "storagecontainer;Storage;test-rg;teststorage", "fabricName": "Azure", - "containerName": "storagecontainer;Storage;test-rg;teststorage" + "resourceGroupName": "testRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "200": {}, "202": { "headers": { - "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/storagecontainer;Storage;test-rg;teststorage/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/storagecontainer;Storage;test-rg;teststorage/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/storagecontainer;Storage;test-rg;teststorage/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", "Retry-After": 60 } }, "204": {} - } + }, + "operationId": "ProtectionContainers_Unregister", + "title": "Unregister Protection Container" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/ProtectionPolicies_CreateOrUpdate_Complex.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/ProtectionPolicies_CreateOrUpdate_Complex.json index b94409661b6f..430712e9e3a6 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/ProtectionPolicies_CreateOrUpdate_Complex.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/AzureWorkload/ProtectionPolicies_CreateOrUpdate_Complex.json @@ -1,48 +1,22 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", - "policyName": "testPolicy1", "api-version": "2025-02-01", "parameters": { "properties": { "backupManagementType": "AzureWorkload", - "workLoadType": "SQLDataBase", "settings": { - "timeZone": "Pacific Standard Time", - "issqlcompression": false + "issqlcompression": false, + "timeZone": "Pacific Standard Time" }, "subProtectionPolicy": [ { "policyType": "Full", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Weekly", - "scheduleRunTimes": [ - "2018-01-24T10:00:00Z" - ], - "scheduleRunDays": [ - "Sunday", - "Tuesday" - ] - }, "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "weeklySchedule": { - "daysOfTheWeek": [ - "Sunday", - "Tuesday" - ], - "retentionTimes": [ - "2018-01-24T10:00:00Z" - ], - "retentionDuration": { - "count": 2, - "durationType": "Weeks" - } - }, "monthlySchedule": { + "retentionDuration": { + "count": 1, + "durationType": "Months" + }, "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ @@ -54,19 +28,33 @@ }, "retentionTimes": [ "2018-01-24T10:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday", + "Tuesday" ], "retentionDuration": { - "count": 1, - "durationType": "Months" - } + "count": 2, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2018-01-24T10:00:00Z" + ] }, "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", "monthsOfYear": [ "January", "June", "December" ], + "retentionDuration": { + "count": 1, + "durationType": "Years" + }, + "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ "Sunday" @@ -77,96 +65,86 @@ }, "retentionTimes": [ "2018-01-24T10:00:00Z" - ], - "retentionDuration": { - "count": 1, - "durationType": "Years" - } + ] } - } - }, - { - "policyType": "Differential", + }, "schedulePolicy": { "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunDays": [ + "Sunday", + "Tuesday" + ], "scheduleRunFrequency": "Weekly", "scheduleRunTimes": [ "2018-01-24T10:00:00Z" - ], - "scheduleRunDays": [ - "Friday" ] - }, + } + }, + { + "policyType": "Differential", "retentionPolicy": { - "retentionPolicyType": "SimpleRetentionPolicy", "retentionDuration": { "count": 8, "durationType": "Days" - } + }, + "retentionPolicyType": "SimpleRetentionPolicy" + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunDays": [ + "Friday" + ], + "scheduleRunFrequency": "Weekly", + "scheduleRunTimes": [ + "2018-01-24T10:00:00Z" + ] } }, { "policyType": "Log", - "schedulePolicy": { - "schedulePolicyType": "LogSchedulePolicy", - "scheduleFrequencyInMins": 60 - }, "retentionPolicy": { - "retentionPolicyType": "SimpleRetentionPolicy", "retentionDuration": { "count": 7, "durationType": "Days" - } + }, + "retentionPolicyType": "SimpleRetentionPolicy" + }, + "schedulePolicy": { + "scheduleFrequencyInMins": 60, + "schedulePolicyType": "LogSchedulePolicy" } } - ] + ], + "workLoadType": "SQLDataBase" } - } + }, + "policyName": "testPolicy1", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { "body": { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", "name": "testPolicy1", "type": "Microsoft.RecoveryServices/vaults/backupPolicies", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1", "properties": { "backupManagementType": "AzureWorkload", - "workLoadType": "SQLDataBase", + "protectedItemsCount": 0, "settings": { - "timeZone": "Pacific Standard Time", - "issqlcompression": false + "issqlcompression": false, + "timeZone": "Pacific Standard Time" }, "subProtectionPolicy": [ { "policyType": "Full", - "schedulePolicy": { - "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Weekly", - "scheduleRunDays": [ - "Sunday", - "Tuesday" - ], - "scheduleRunTimes": [ - "2018-01-24T10:00:00Z" - ], - "scheduleWeeklyFrequency": 0 - }, "retentionPolicy": { - "retentionPolicyType": "LongTermRetentionPolicy", - "weeklySchedule": { - "daysOfTheWeek": [ - "Sunday", - "Tuesday" - ], - "retentionTimes": [ - "2018-01-24T10:00:00Z" - ], - "retentionDuration": { - "count": 2, - "durationType": "Weeks" - } - }, "monthlySchedule": { + "retentionDuration": { + "count": 1, + "durationType": "Months" + }, "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ @@ -178,19 +156,33 @@ }, "retentionTimes": [ "2018-01-24T10:00:00Z" + ] + }, + "retentionPolicyType": "LongTermRetentionPolicy", + "weeklySchedule": { + "daysOfTheWeek": [ + "Sunday", + "Tuesday" ], "retentionDuration": { - "count": 1, - "durationType": "Months" - } + "count": 2, + "durationType": "Weeks" + }, + "retentionTimes": [ + "2018-01-24T10:00:00Z" + ] }, "yearlySchedule": { - "retentionScheduleFormatType": "Weekly", "monthsOfYear": [ "January", "June", "December" ], + "retentionDuration": { + "count": 1, + "durationType": "Years" + }, + "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": [ "Sunday" @@ -201,60 +193,70 @@ }, "retentionTimes": [ "2018-01-24T10:00:00Z" - ], - "retentionDuration": { - "count": 1, - "durationType": "Years" - } + ] } + }, + "schedulePolicy": { + "schedulePolicyType": "SimpleSchedulePolicy", + "scheduleRunDays": [ + "Sunday", + "Tuesday" + ], + "scheduleRunFrequency": "Weekly", + "scheduleRunTimes": [ + "2018-01-24T10:00:00Z" + ], + "scheduleWeeklyFrequency": 0 } }, { "policyType": "Differential", + "retentionPolicy": { + "retentionDuration": { + "count": 8, + "durationType": "Days" + }, + "retentionPolicyType": "SimpleRetentionPolicy" + }, "schedulePolicy": { "schedulePolicyType": "SimpleSchedulePolicy", - "scheduleRunFrequency": "Weekly", "scheduleRunDays": [ "Friday" ], + "scheduleRunFrequency": "Weekly", "scheduleRunTimes": [ "2018-01-24T10:00:00Z" ], "scheduleWeeklyFrequency": 0 - }, - "retentionPolicy": { - "retentionPolicyType": "SimpleRetentionPolicy", - "retentionDuration": { - "count": 8, - "durationType": "Days" - } } }, { "policyType": "Log", - "schedulePolicy": { - "schedulePolicyType": "LogSchedulePolicy", - "scheduleFrequencyInMins": 60 - }, "retentionPolicy": { - "retentionPolicyType": "SimpleRetentionPolicy", "retentionDuration": { "count": 7, "durationType": "Days" - } + }, + "retentionPolicyType": "SimpleRetentionPolicy" + }, + "schedulePolicy": { + "scheduleFrequencyInMins": 60, + "schedulePolicyType": "LogSchedulePolicy" } } ], - "protectedItemsCount": 0 + "workLoadType": "SQLDataBase" } } }, "202": { "headers": { - "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1/operations/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupPolicies/testPolicy1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-06-01", "Retry-After": 60 } } - } + }, + "operationId": "ProtectionPolicies_CreateOrUpdate", + "title": "Create or Update Full Azure Workload Protection Policy" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupDataMove/BackupDataMoveOperationStatus_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupDataMove/BackupDataMoveOperationStatus_Get.json index 1b07b3c8289a..1590fa63930d 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupDataMove/BackupDataMoveOperationStatus_Get.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupDataMove/BackupDataMoveOperationStatus_Get.json @@ -1,20 +1,22 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "sourceRG", - "vaultName": "source-rsv", "operationId": "00000000-0000-0000-0000-000000000000", - "api-version": "2025-02-01" + "api-version": "2025-02-01", + "resourceGroupName": "sourceRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "source-rsv" }, "responses": { "200": { "body": { - "id": "0f48183b-0a44-4dca-aec1-bba5daab888a", "name": "0f48183b-0a44-4dca-aec1-bba5daab888a", - "status": "Succeeded", + "endTime": "2020-02-27T11:59:47.5901592Z", + "id": "0f48183b-0a44-4dca-aec1-bba5daab888a", "startTime": "2020-02-27T11:59:47.5901592Z", - "endTime": "2020-02-27T11:59:47.5901592Z" + "status": "Succeeded" } } - } + }, + "operationId": "GetOperationStatus", + "title": "Get OperationStatus" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupDataMove/PrepareDataMoveOperationResult_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupDataMove/PrepareDataMoveOperationResult_Get.json index dc2a1774adc8..bc98a8eadf82 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupDataMove/PrepareDataMoveOperationResult_Get.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupDataMove/PrepareDataMoveOperationResult_Get.json @@ -1,23 +1,25 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "sourceRG", - "vaultName": "source-rsv", "operationId": "00000000-0000-0000-0000-000000000000", - "api-version": "2025-02-01" + "api-version": "2025-02-01", + "resourceGroupName": "sourceRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "source-rsv" }, "responses": { + "200": { + "body": { + "objectType": "PrepareDataMoveResponse" + } + }, "202": { "headers": { - "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sourceRG/providers/Microsoft.RecoveryServices/vaults/source-rsv/backupStorageConfig/vaultStorageConfig/operationResult/00000000-0000-0000-0000-000000000000?api-version=2020-07-01-preview", "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sourceRG/providers/Microsoft.RecoveryServices/vaults/source-rsv/backupStorageConfig/vaultStorageConfig/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2020-07-01-preview", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sourceRG/providers/Microsoft.RecoveryServices/vaults/source-rsv/backupStorageConfig/vaultStorageConfig/operationResult/00000000-0000-0000-0000-000000000000?api-version=2020-07-01-preview", "Retry-After": 60 } - }, - "200": { - "body": { - "objectType": "PrepareDataMoveResponse" - } } - } + }, + "operationId": "BMSPrepareDataMoveOperationResult_Get", + "title": "Get operation result for PrepareDataMove" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupDataMove/PrepareDataMove_Post.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupDataMove/PrepareDataMove_Post.json index 64bfbc20327c..52334bfa2c1e 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupDataMove/PrepareDataMove_Post.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupDataMove/PrepareDataMove_Post.json @@ -1,23 +1,25 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "sourceRG", - "vaultName": "source-rsv", "api-version": "2025-02-01", "parameters": { - "targetResourceId": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/targetRG/providers/Microsoft.RecoveryServices/vaults/target-rsv", + "dataMoveLevel": "Vault", "targetRegion": "USGov Virginia", - "dataMoveLevel": "Vault" - } + "targetResourceId": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/targetRG/providers/Microsoft.RecoveryServices/vaults/target-rsv" + }, + "resourceGroupName": "sourceRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "source-rsv" }, "responses": { "200": {}, "202": { "headers": { - "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sourceRG/providers/Microsoft.RecoveryServices/vaults/source-rsv/backupStorageConfig/vaultStorageConfig/prepareDataMove/operationResult/00000000-0000-0000-0000-000000000000?api-version=2020-07-01-preview", "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sourceRG/providers/Microsoft.RecoveryServices/vaults/source-rsv/backupStorageConfig/vaultStorageConfig/backupDataMove/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2020-07-01-preview", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sourceRG/providers/Microsoft.RecoveryServices/vaults/source-rsv/backupStorageConfig/vaultStorageConfig/prepareDataMove/operationResult/00000000-0000-0000-0000-000000000000?api-version=2020-07-01-preview", "Retry-After": 60 } } - } + }, + "operationId": "BMSPrepareDataMove", + "title": "Prepare Data Move" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupDataMove/TriggerDataMove_Post.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupDataMove/TriggerDataMove_Post.json index f41a402b5711..e7d93a476ee0 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupDataMove/TriggerDataMove_Post.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupDataMove/TriggerDataMove_Post.json @@ -1,15 +1,15 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "targetRG", - "vaultName": "target-rsv", "api-version": "2025-02-01", "parameters": { - "sourceResourceId": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/sourceRG/providers/Microsoft.RecoveryServices/vaults/source-rsv", - "sourceRegion": "USGov Iowa", + "correlationId": "MTg2OTcyMzM4NzYyMjc1NDY3Nzs1YmUzYmVmNi04YjJiLTRhOTItOTllYi01NTM0MDllYjk2NjE=", "dataMoveLevel": "Vault", - "correlationId": "MTg2OTcyMzM4NzYyMjc1NDY3Nzs1YmUzYmVmNi04YjJiLTRhOTItOTllYi01NTM0MDllYjk2NjE=" - } + "sourceRegion": "USGov Iowa", + "sourceResourceId": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/sourceRG/providers/Microsoft.RecoveryServices/vaults/source-rsv" + }, + "resourceGroupName": "targetRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "target-rsv" }, "responses": { "200": {}, @@ -19,5 +19,7 @@ "Retry-After": 60 } } - } + }, + "operationId": "BMSTriggerDataMove", + "title": "Trigger Data Move" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupResourceEncryptionConfig_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupResourceEncryptionConfig_Get.json index 00419109781c..2ea56830af2c 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupResourceEncryptionConfig_Get.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupResourceEncryptionConfig_Get.json @@ -1,27 +1,29 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", "resourceGroupName": "rishgrp", - "vaultName": "rishTestVault", - "api-version": "2025-02-01" + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "rishTestVault" }, "responses": { "200": { - "headers": {}, "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rishgrp/providers/Microsoft.RecoveryServicesBVTD2/vaults/rishTestVault/backupEncryptionConfigs/backupResourceEncryptionConfig", "name": "backupResourceEncryptionConfig", "type": "Microsoft.RecoveryServices/vaults/backupEncryptionConfigs", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rishgrp/providers/Microsoft.RecoveryServicesBVTD2/vaults/rishTestVault/backupEncryptionConfigs/backupResourceEncryptionConfig", "properties": { - "userAssignedIdentity": "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi", - "useSystemAssignedIdentity": false, "encryptionAtRestType": "CustomerManaged", + "infrastructureEncryptionState": "Disabled", "keyUri": "https://gktestkv1.vault.azure.net/keys/Test1/ed2e8cdc7f86477ebf0c6462b504a9ed", - "subscriptionId": "1a2311d9-66f5-47d3-a9fb-7a37da63934b", "lastUpdateStatus": "Succeeded", - "infrastructureEncryptionState": "Disabled" + "subscriptionId": "1a2311d9-66f5-47d3-a9fb-7a37da63934b", + "useSystemAssignedIdentity": false, + "userAssignedIdentity": "/subscriptions/85bf5e8c-3084-4f42-add2-746ebb7e97b2/resourcegroups/defaultrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/examplemsi" } - } + }, + "headers": {} } - } + }, + "operationId": "BackupResourceEncryptionConfigs_Get", + "title": "Get Vault Encryption Configuration" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupResourceEncryptionConfig_Put.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupResourceEncryptionConfig_Put.json index a16f3fd04d3d..d0e9a89f273d 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupResourceEncryptionConfig_Put.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/BackupResourceEncryptionConfig_Put.json @@ -1,19 +1,21 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "test-rg", - "vaultName": "source-rsv", "api-version": "2025-02-01", "parameters": { "properties": { "encryptionAtRestType": "CustomerManaged", + "infrastructureEncryptionState": "true", "keyUri": "https://gktestkv1.vault.azure.net/keys/Test1/ed2e8cdc7f86477ebf0c6462b504a9ed", - "subscriptionId": "1a2311d9-66f5-47d3-a9fb-7a37da63934b", - "infrastructureEncryptionState": "true" + "subscriptionId": "1a2311d9-66f5-47d3-a9fb-7a37da63934b" } - } + }, + "resourceGroupName": "test-rg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "source-rsv" }, "responses": { "200": {} - } + }, + "operationId": "BackupResourceEncryptionConfigs_Update", + "title": "Update Vault Encryption Configuration" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupProtectedItem_UsageSummary_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupProtectedItem_UsageSummary_Get.json index ad58567b3e84..e3acf6ca965c 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupProtectedItem_UsageSummary_Get.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupProtectedItem_UsageSummary_Get.json @@ -1,62 +1,64 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "testRG", - "vaultName": "testVault", + "$filter": "type eq 'BackupProtectedItemCountSummary'", "api-version": "2025-02-01", - "$filter": "type eq 'BackupProtectedItemCountSummary'" + "resourceGroupName": "testRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "200": { "body": { "value": [ { - "unit": "Count", + "name": { + "localizedValue": "Azure Virtual Machine", + "value": "AzureIaasVM" + }, "currentValue": 7, "limit": -1, - "name": { - "value": "AzureIaasVM", - "localizedValue": "Azure Virtual Machine" - } + "unit": "Count" }, { - "unit": "Count", + "name": { + "localizedValue": "Azure Backup Agent", + "value": "MAB" + }, "currentValue": 3, "limit": -1, - "name": { - "value": "MAB", - "localizedValue": "Azure Backup Agent" - } + "unit": "Count" }, { - "unit": "Count", + "name": { + "localizedValue": "Azure Backup Server", + "value": "AzureBackupServer" + }, "currentValue": 1, "limit": -1, - "name": { - "value": "AzureBackupServer", - "localizedValue": "Azure Backup Server" - } + "unit": "Count" }, { - "unit": "Count", + "name": { + "localizedValue": "Azure Storage (Azure Files)", + "value": "AzureStorage" + }, "currentValue": 2, "limit": -1, - "name": { - "value": "AzureStorage", - "localizedValue": "Azure Storage (Azure Files)" - } + "unit": "Count" }, { - "unit": "Count", + "name": { + "localizedValue": "SQL in Azure VM", + "value": "AzureWorkload" + }, "currentValue": 2, "limit": -1, - "name": { - "value": "AzureWorkload", - "localizedValue": "SQL in Azure VM" - } + "unit": "Count" } ] } } - } + }, + "operationId": "BackupUsageSummaries_List", + "title": "Get Protected Items Usages Summary" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupProtectionContainers_UsageSummary_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupProtectionContainers_UsageSummary_Get.json index 93879f7999f4..8bab69b8a3b2 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupProtectionContainers_UsageSummary_Get.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupProtectionContainers_UsageSummary_Get.json @@ -1,44 +1,46 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "testRG", - "vaultName": "testVault", + "$filter": "type eq 'BackupProtectionContainerCountSummary'", "api-version": "2025-02-01", - "$filter": "type eq 'BackupProtectionContainerCountSummary'" + "resourceGroupName": "testRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "200": { "body": { "value": [ { - "unit": "Count", + "name": { + "localizedValue": "Azure Backup Server", + "value": "AzureBackupServer" + }, "currentValue": 2, "limit": -1, - "name": { - "value": "AzureBackupServer", - "localizedValue": "Azure Backup Server" - } + "unit": "Count" }, { - "unit": "Count", + "name": { + "localizedValue": "Azure Backup Agent", + "value": "MAB" + }, "currentValue": 3, "limit": -1, - "name": { - "value": "MAB", - "localizedValue": "Azure Backup Agent" - } + "unit": "Count" }, { - "unit": "Count", + "name": { + "localizedValue": "SQL in Azure VM", + "value": "AzureWorkload" + }, "currentValue": 1, "limit": -1, - "name": { - "value": "AzureWorkload", - "localizedValue": "SQL in Azure VM" - } + "unit": "Count" } ] } } - } + }, + "operationId": "BackupUsageSummaries_List", + "title": "Get Protected Containers Usages Summary" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupResourceVaultConfigs_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupResourceVaultConfigs_Get.json index 8ce61ed295c2..d778c5e98c09 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupResourceVaultConfigs_Get.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupResourceVaultConfigs_Get.json @@ -1,20 +1,22 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", "resourceGroupName": "SwaggerTestRg", - "vaultName": "SwaggerTest", - "api-version": "2025-02-01" + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "SwaggerTest" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/SwaggerTest/backupconfig/vaultconfig", "name": "vaultconfig", "type": "Microsoft.RecoveryServices/vaults/backupconfig", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/SwaggerTest/backupconfig/vaultconfig", "properties": { "enhancedSecurityState": "Enabled" } } } - } + }, + "operationId": "BackupResourceVaultConfigs_Get", + "title": "Get Vault Security Config" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupResourceVaultConfigs_Patch.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupResourceVaultConfigs_Patch.json index a65a304bcc5c..48873de46df2 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupResourceVaultConfigs_Patch.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupResourceVaultConfigs_Patch.json @@ -1,25 +1,27 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "SwaggerTest", "api-version": "2025-02-01", "parameters": { "properties": { "enhancedSecurityState": "Enabled" } - } + }, + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "SwaggerTest" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/SwaggerTest/backupconfig/vaultconfig", "name": "vaultconfig", "type": "Microsoft.RecoveryServices/vaults/backupconfig", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/SwaggerTest/backupconfig/vaultconfig", "properties": { "enhancedSecurityState": "Enabled" } } } - } + }, + "operationId": "BackupResourceVaultConfigs_Update", + "title": "Update Vault Security Config" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupResourceVaultConfigs_Put.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupResourceVaultConfigs_Put.json index 4e8a71e77246..54214df5ec56 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupResourceVaultConfigs_Put.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupResourceVaultConfigs_Put.json @@ -1,27 +1,29 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "SwaggerTest", "api-version": "2025-02-01", "parameters": { "properties": { "enhancedSecurityState": "Enabled", "softDeleteFeatureState": "Enabled" } - } + }, + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "SwaggerTest" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/SwaggerTest/backupconfig/vaultconfig", "name": "vaultconfig", "type": "Microsoft.RecoveryServices/vaults/backupconfig", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/SwaggerTest/backupconfig/vaultconfig", "properties": { "enhancedSecurityState": "Enabled", "softDeleteFeatureState": "Enabled" } } } - } + }, + "operationId": "BackupResourceVaultConfigs_Put", + "title": "Update Vault Security Config" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupSecurityPin_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupSecurityPin_Get.json index 13d77a15287a..9af6ae2972e5 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupSecurityPin_Get.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupSecurityPin_Get.json @@ -1,17 +1,19 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", "resourceGroupName": "SwaggerTestRg", - "vaultName": "SwaggerTest", - "api-version": "2025-02-01" + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "SwaggerTest" }, "responses": { "200": { "body": { - "token": "200432", - "expiryTimeInUtcTicks": 636495150137443121, - "securityPIN": "200432" + "expiryTimeInUtcTicks": 636495150137443100, + "securityPIN": "200432", + "token": "200432" } } - } + }, + "operationId": "SecurityPINs_Get", + "title": "Get Vault Security Pin" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupStorageConfig_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupStorageConfig_Get.json index f90946c42e72..78a8b790b358 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupStorageConfig_Get.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupStorageConfig_Get.json @@ -1,23 +1,25 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", "resourceGroupName": "PythonSDKBackupTestRg", - "vaultName": "PySDKBackupTestRsVault", - "api-version": "2025-02-01" + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" }, "responses": { "200": { - "headers": {}, "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupstorageconfig/vaultstorageconfig", "name": "vaultstorageconfig", "type": "Microsoft.RecoveryServices/vaults/backupstorageconfig", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupstorageconfig/vaultstorageconfig", "properties": { "storageModelType": "GeoRedundant", "storageType": "GeoRedundant", "storageTypeState": "Locked" } - } + }, + "headers": {} } - } + }, + "operationId": "BackupResourceStorageConfigsNonCRR_Get", + "title": "Get Vault Storage Configuration" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupStorageConfig_Patch.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupStorageConfig_Patch.json index 09f8d93a3419..54b81a03c837 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupStorageConfig_Patch.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupStorageConfig_Patch.json @@ -1,17 +1,19 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "PythonSDKBackupTestRg", - "vaultName": "PySDKBackupTestRsVault", "api-version": "2025-02-01", "parameters": { "properties": { "storageType": "LocallyRedundant", "storageTypeState": "Unlocked" } - } + }, + "resourceGroupName": "PythonSDKBackupTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" }, "responses": { "204": {} - } + }, + "operationId": "BackupResourceStorageConfigsNonCRR_Patch", + "title": "Update Vault Storage Configuration" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupStorageConfig_Put.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupStorageConfig_Put.json index 453a4ffa6c53..df71c0fec289 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupStorageConfig_Put.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/BackupStorageConfig_Put.json @@ -1,29 +1,31 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "PythonSDKBackupTestRg", - "vaultName": "PySDKBackupTestRsVault", "api-version": "2025-02-01", "parameters": { "properties": { "storageType": "LocallyRedundant", "storageTypeState": "Unlocked" } - } + }, + "resourceGroupName": "PythonSDKBackupTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" }, "responses": { "200": { - "headers": {}, "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupstorageconfig/vaultstorageconfig", "name": "vaultstorageconfig", "type": "Microsoft.RecoveryServices/vaults/backupstorageconfig", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupstorageconfig/vaultstorageconfig", "properties": { "storageModelType": "LocallyRedundant", "storageType": "LocallyRedundant", "storageTypeState": "Unlocked" } - } + }, + "headers": {} } - } + }, + "operationId": "BackupResourceStorageConfigsNonCRR_Update", + "title": "Update Vault Storage Configuration" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/CancelJobOperationResult.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/CancelJobOperationResult.json index 9c1d289138bd..b1c0e9898ec2 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/CancelJobOperationResult.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/CancelJobOperationResult.json @@ -1,20 +1,22 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", - "jobName": "00000000-0000-0000-0000-000000000000", "operationId": "00000000-0000-0000-0000-000000000000", - "api-version": "2025-02-01" + "api-version": "2025-02-01", + "jobName": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { - "204": {}, "200": {}, "202": { "headers": { "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", "Retry-After": 60 } - } - } + }, + "204": {} + }, + "operationId": "JobOperationResults_Get", + "title": "Cancel Job Operation Result" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ExportJobsOperationResult.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ExportJobsOperationResult.json index 2e60cf0c2f4c..3fe7e6faba39 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ExportJobsOperationResult.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ExportJobsOperationResult.json @@ -1,32 +1,25 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", "operationId": "00000000-0000-0000-0000-000000000000", - "api-version": "2025-02-01" + "api-version": "2025-02-01", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { - "headers": {}, "body": { + "headers": {}, "operation": { - "objectType": "ExportJobsOperationResultInfo", + "blobSasKey": "?sv=2014-02-14&sr=b&sig=&st=2017-11-29T07%3A53%3A34Z&se=2017-11-29T08%3A03%3A34Z&sp=r", "blobUrl": "https://azureblob.blob.core.windows.net/reportcontainer/exportjobsreportc00000000-0000-0000-0000-000000000000", - "blobSasKey": "?sv=2014-02-14&sr=b&sig=&st=2017-11-29T07%3A53%3A34Z&se=2017-11-29T08%3A03%3A34Z&sp=r" - }, - "headers": {} - } + "objectType": "ExportJobsOperationResultInfo" + } + }, + "headers": {} }, "202": { - "headers": { - "Retry-After": 60, - "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01" - }, "body": { - "operation": { - "objectType": "ExportJobsOperationResultInfo" - }, "headers": { "Location": [ "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01" @@ -34,8 +27,17 @@ "Retry-After": [ "60" ] + }, + "operation": { + "objectType": "ExportJobsOperationResultInfo" } + }, + "headers": { + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/operationResults/00000000-0000-0000-0000-000000000000?api-version=2017-07-01", + "Retry-After": 60 } } - } + }, + "operationId": "ExportJobsOperationResults_Get", + "title": "Export Jobs Operation Results" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/GetJobDetails.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/GetJobDetails.json index 33b2c6743247..e79dfef9c725 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/GetJobDetails.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/GetJobDetails.json @@ -1,46 +1,48 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", + "api-version": "2025-02-01", "jobName": "00000000-0000-0000-0000-000000000000", - "api-version": "2025-02-01" + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { "body": { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000", "name": "00000000-0000-0000-0000-000000000000", "type": "Microsoft.RecoveryServices/vaults/backupJobs", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000", "properties": { - "jobType": "AzureIaaSVMJob", + "activityId": "00000000-0000-0000-0000-000000000000", + "backupManagementType": "AzureIaasVM", "duration": "PT9.8782791S", - "virtualMachineVersion": "Compute", + "entityFriendlyName": "testvm", "extendedInfo": { + "propertyBag": { + "VM Name": "testvm" + }, "tasksList": [ { - "taskId": "Take Snapshot", "duration": "PT0S", - "status": "InProgress" + "status": "InProgress", + "taskId": "Take Snapshot" }, { - "taskId": "Transfer data to vault", "duration": "PT0S", - "status": "NotStarted" + "status": "NotStarted", + "taskId": "Transfer data to vault" } - ], - "propertyBag": { - "VM Name": "testvm" - } + ] }, - "entityFriendlyName": "testvm", - "backupManagementType": "AzureIaasVM", + "jobType": "AzureIaaSVMJob", "operation": "Backup", - "status": "InProgress", "startTime": "2017-08-03T05:31:07.014604Z", - "activityId": "00000000-0000-0000-0000-000000000000" + "status": "InProgress", + "virtualMachineVersion": "Compute" } } } - } + }, + "operationId": "JobDetails_Get", + "title": "Get Job Details" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ListJobs.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ListJobs.json index e32f912d6d51..1550c045dbd9 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ListJobs.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ListJobs.json @@ -1,49 +1,51 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", - "api-version": "2025-02-01" + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { "body": { "value": [ { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000", "name": "00000000-0000-0000-0000-000000000000", "type": "Microsoft.RecoveryServices/vaults/backupJobs", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000", "properties": { - "jobType": "AzureIaaSVMJob", + "activityId": "00000000-0000-0000-0000-000000000000", + "backupManagementType": "AzureIaasVM", "duration": "PT12.4272909S", - "virtualMachineVersion": "Compute", "entityFriendlyName": "testvm", - "backupManagementType": "AzureIaasVM", + "jobType": "AzureIaaSVMJob", "operation": "Backup", - "status": "InProgress", "startTime": "2017-08-03T05:31:07.014604Z", - "activityId": "00000000-0000-0000-0000-000000000000" + "status": "InProgress", + "virtualMachineVersion": "Compute" } }, { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000", "name": "00000000-0000-0000-0000-000000000000", "type": "Microsoft.RecoveryServices/vaults/backupJobs", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000", "properties": { - "jobType": "AzureIaaSVMJob", + "activityId": "00000000-0000-0000-0000-000000000000", + "backupManagementType": "AzureIaasVM", "duration": "PT31.3066291S", - "virtualMachineVersion": "Compute", + "endTime": "2017-08-03T05:31:03.7553376Z", "entityFriendlyName": "testvm", - "backupManagementType": "AzureIaasVM", + "jobType": "AzureIaaSVMJob", "operation": "ConfigureBackup", - "status": "Completed", "startTime": "2017-08-03T05:30:32.4487085Z", - "endTime": "2017-08-03T05:31:03.7553376Z", - "activityId": "00000000-0000-0000-0000-000000000000" + "status": "Completed", + "virtualMachineVersion": "Compute" } } ] } } - } + }, + "operationId": "BackupJobs_List", + "title": "List All Jobs" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ListJobsWithAllSupportedFilters.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ListJobsWithAllSupportedFilters.json index 0dcf1df119a8..a3efe27e4acf 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ListJobsWithAllSupportedFilters.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ListJobsWithAllSupportedFilters.json @@ -1,33 +1,35 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", + "$filter": "startTime eq '2016-01-01 00:00:00 AM' and endTime eq '2017-11-29 00:00:00 AM' and operation eq 'Backup' and backupManagementType eq 'AzureIaasVM' and status eq 'InProgress'", "api-version": "2025-02-01", - "$filter": "startTime eq '2016-01-01 00:00:00 AM' and endTime eq '2017-11-29 00:00:00 AM' and operation eq 'Backup' and backupManagementType eq 'AzureIaasVM' and status eq 'InProgress'" + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { "body": { "value": [ { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000", "name": "00000000-0000-0000-0000-000000000000", "type": "Microsoft.RecoveryServices/vaults/backupJobs", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000", "properties": { - "jobType": "AzureIaaSVMJob", + "activityId": "00000000-0000-0000-0000-000000000000", + "backupManagementType": "AzureIaasVM", "duration": "PT12.4272909S", - "virtualMachineVersion": "Compute", "entityFriendlyName": "testvm", - "backupManagementType": "AzureIaasVM", + "jobType": "AzureIaaSVMJob", "operation": "Backup", - "status": "InProgress", "startTime": "2017-08-03T05:31:07.014604Z", - "activityId": "00000000-0000-0000-0000-000000000000" + "status": "InProgress", + "virtualMachineVersion": "Compute" } } ] } } - } + }, + "operationId": "BackupJobs_List", + "title": "List Jobs With Filters" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ListJobsWithStartTimeAndEndTimeFilters.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ListJobsWithStartTimeAndEndTimeFilters.json index 1e946340ee04..ffc44d1d8fe7 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ListJobsWithStartTimeAndEndTimeFilters.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ListJobsWithStartTimeAndEndTimeFilters.json @@ -1,51 +1,53 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", + "$filter": "startTime eq '2016-01-01 00:00:00 AM' and endTime eq '2017-11-29 00:00:00 AM'", "api-version": "2025-02-01", - "$filter": "startTime eq '2016-01-01 00:00:00 AM' and endTime eq '2017-11-29 00:00:00 AM'" + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "200": { "body": { + "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs?api-version=2017-07-01&%24filter=startTime+eq+%272016-01-01+00%3a00%3a00+AM%27+and+endTime+eq+%272017-11-29+00%3a00%3a00+AM%27&%24skiptoken=%3c%3fxml+version%3d%221.0%22+encoding%3d%22utf-16%22%3f%3e%0d%0a%3cContinuationToken%3e%0d%0a++%3cContinuationToken%3e%0d%0a++++%3cVersion%3e2.0%3c%2fVersion%3e%0d%0a++++%3cType%3eTable%3c%2fType%3e%0d%0a++++%3cNextPartitionKey%3e1!28!NzI5MTk0OTM1MDkwNjEwODQzMA--%3c%2fNextPartitionKey%3e%0d%0a++++%3cNextRowKey%3e1!108!am9ic3N0YXJ0dGltZWluZGV4XzBfMjUxODkxNDYzNTI2NjE5Nzg5OF8wXzYwOWZkM2JmLTU4MzctNDFkYi1iMjExLTY1MzliNDNlZjM1OA--%3c%2fNextRowKey%3e%0d%0a++++%3cTargetLocation%3ePrimary%3c%2fTargetLocation%3e%0d%0a++%3c%2fContinuationToken%3e%0d%0a%3c%2fContinuationToken%3e", "value": [ { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000", "name": "00000000-0000-0000-0000-000000000000", "type": "Microsoft.RecoveryServices/vaults/backupJobs", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000", "properties": { - "jobType": "AzureIaaSVMJob", + "activityId": "00000000-0000-0000-0000-000000000000", + "backupManagementType": "AzureIaasVM", "duration": "PT12.4272909S", - "virtualMachineVersion": "Compute", "entityFriendlyName": "testvm", - "backupManagementType": "AzureIaasVM", + "jobType": "AzureIaaSVMJob", "operation": "Backup", - "status": "InProgress", "startTime": "2017-08-03T05:31:07.014604Z", - "activityId": "00000000-0000-0000-0000-000000000000" + "status": "InProgress", + "virtualMachineVersion": "Compute" } }, { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000", "name": "00000000-0000-0000-0000-000000000000", "type": "Microsoft.RecoveryServices/vaults/backupJobs", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs/00000000-0000-0000-0000-000000000000", "properties": { - "jobType": "AzureIaaSVMJob", + "activityId": "00000000-0000-0000-0000-000000000000", + "backupManagementType": "AzureIaasVM", "duration": "PT31.3066291S", - "virtualMachineVersion": "Compute", + "endTime": "2017-08-03T05:31:03.7553376Z", "entityFriendlyName": "testvm", - "backupManagementType": "AzureIaasVM", + "jobType": "AzureIaaSVMJob", "operation": "ConfigureBackup", - "status": "Completed", "startTime": "2017-08-03T05:30:32.4487085Z", - "endTime": "2017-08-03T05:31:03.7553376Z", - "activityId": "00000000-0000-0000-0000-000000000000" + "status": "Completed", + "virtualMachineVersion": "Compute" } } - ], - "nextLink": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SwaggerTestRg/providers/Microsoft.RecoveryServices/vaults/NetSDKTestRsVault/backupJobs?api-version=2017-07-01&%24filter=startTime+eq+%272016-01-01+00%3a00%3a00+AM%27+and+endTime+eq+%272017-11-29+00%3a00%3a00+AM%27&%24skiptoken=%3c%3fxml+version%3d%221.0%22+encoding%3d%22utf-16%22%3f%3e%0d%0a%3cContinuationToken%3e%0d%0a++%3cContinuationToken%3e%0d%0a++++%3cVersion%3e2.0%3c%2fVersion%3e%0d%0a++++%3cType%3eTable%3c%2fType%3e%0d%0a++++%3cNextPartitionKey%3e1!28!NzI5MTk0OTM1MDkwNjEwODQzMA--%3c%2fNextPartitionKey%3e%0d%0a++++%3cNextRowKey%3e1!108!am9ic3N0YXJ0dGltZWluZGV4XzBfMjUxODkxNDYzNTI2NjE5Nzg5OF8wXzYwOWZkM2JmLTU4MzctNDFkYi1iMjExLTY1MzliNDNlZjM1OA--%3c%2fNextRowKey%3e%0d%0a++++%3cTargetLocation%3ePrimary%3c%2fTargetLocation%3e%0d%0a++%3c%2fContinuationToken%3e%0d%0a%3c%2fContinuationToken%3e" + ] } } - } + }, + "operationId": "BackupJobs_List", + "title": "List Jobs With Time Filter" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ProtectedItem_Delete.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ProtectedItem_Delete.json index a5bf2f830ecd..1f806b98da05 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ProtectedItem_Delete.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ProtectedItem_Delete.json @@ -1,12 +1,12 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "PythonSDKBackupTestRg", - "vaultName": "PySDKBackupTestRsVault", - "fabricName": "Azure", + "api-version": "2025-02-01", "containerName": "iaasvmcontainer;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1", + "fabricName": "Azure", "protectedItemName": "vm;iaasvmcontainerv2;pysdktestrg;pysdktestv2vm1", - "api-version": "2025-02-01" + "resourceGroupName": "PythonSDKBackupTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" }, "responses": { "200": {}, @@ -18,5 +18,7 @@ } }, "204": {} - } + }, + "operationId": "ProtectedItems_Delete", + "title": "Delete Protection from Azure Virtual Machine" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ProtectedItem_Delete_OperationResult.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ProtectedItem_Delete_OperationResult.json index 41564b46f997..3331a9a1abb6 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ProtectedItem_Delete_OperationResult.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ProtectedItem_Delete_OperationResult.json @@ -1,12 +1,13 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "PythonSDKBackupTestRg", - "vaultName": "PySDKBackupTestRsVault", "operationId": "00000000-0000-0000-0000-000000000000", - "api-version": "2025-02-01" + "api-version": "2025-02-01", + "resourceGroupName": "PythonSDKBackupTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" }, "responses": { + "200": {}, "202": { "headers": { "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/PythonSDKBackupTestRg/providers/Microsoft.RecoveryServices/vaults/PySDKBackupTestRsVault/backupOperations/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", @@ -14,7 +15,8 @@ "Retry-After": 60 } }, - "200": {}, "204": {} - } + }, + "operationId": "BackupOperationResults_Get", + "title": "Get Result for Protected Item Delete Operation" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ProtectedItem_Delete_OperationStatus.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ProtectedItem_Delete_OperationStatus.json index 89537c4e927d..8b112be578ea 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ProtectedItem_Delete_OperationStatus.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/ProtectedItem_Delete_OperationStatus.json @@ -1,21 +1,23 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "PythonSDKBackupTestRg", - "vaultName": "PySDKBackupTestRsVault", "operationId": "00000000-0000-0000-0000-000000000000", - "api-version": "2025-02-01" + "api-version": "2025-02-01", + "resourceGroupName": "PythonSDKBackupTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "PySDKBackupTestRsVault" }, "responses": { "200": { - "headers": {}, "body": { - "id": "00000000-0000-0000-0000-000000000000", "name": "00000000-0000-0000-0000-000000000000", - "status": "InProgress", + "endTime": "0001-01-01T00:00:00.00000Z", + "id": "00000000-0000-0000-0000-000000000000", "startTime": "2017-08-03T06:52:53.886027Z", - "endTime": "0001-01-01T00:00:00.00000Z" - } + "status": "InProgress" + }, + "headers": {} } - } + }, + "operationId": "BackupOperationStatuses_Get", + "title": "Get Protected Item Delete Operation Status" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/RefreshContainers.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/RefreshContainers.json index ab69839e27e4..afade7ea2ac6 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/RefreshContainers.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/RefreshContainers.json @@ -1,10 +1,10 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", + "api-version": "2025-02-01", "fabricName": "Azure", - "api-version": "2025-02-01" + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "202": { @@ -13,5 +13,7 @@ "Retry-After": 60 } } - } + }, + "operationId": "ProtectionContainers_Refresh", + "title": "Trigger Azure Vm Discovery" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/RefreshContainers_OperationResults.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/RefreshContainers_OperationResults.json index 8c9f61d49908..02940118da47 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/RefreshContainers_OperationResults.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/RefreshContainers_OperationResults.json @@ -1,11 +1,11 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", - "fabricName": "Azure", "operationId": "00000000-0000-0000-0000-000000000000", - "api-version": "2025-02-01" + "api-version": "2025-02-01", + "fabricName": "Azure", + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "202": { @@ -15,5 +15,7 @@ } }, "204": {} - } + }, + "operationId": "ProtectionContainerRefreshOperationResults_Get", + "title": "Azure Vm Discovery Operation Result" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/TriggerBackup_Post.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/TriggerBackup_Post.json index 6257c7803ce0..47a983e612ea 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/TriggerBackup_Post.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/TriggerBackup_Post.json @@ -1,25 +1,27 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "linuxRsVaultRG", - "vaultName": "linuxRsVault", - "fabricName": "Azure", - "containerName": "IaasVMContainer;iaasvmcontainerv2;testrg;v1win2012r", - "protectedItemName": "VM;iaasvmcontainerv2;testrg;v1win2012r", "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;testrg;v1win2012r", + "fabricName": "Azure", "parameters": { "properties": { "objectType": "IaasVMBackupRequest" } - } + }, + "protectedItemName": "VM;iaasvmcontainerv2;testrg;v1win2012r", + "resourceGroupName": "linuxRsVaultRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "linuxRsVault" }, "responses": { "202": { "headers": { - "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/linuxRsVaultRG/providers/Microsoft.RecoveryServices/vaults/linuxRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainer;testrg;v1win2012r/protectedItems/VM;iaasvmcontainer;testrg;v1win2012r/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", "Azure-AsyncOperation": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/linuxRsVaultRG/providers/Microsoft.RecoveryServices/vaults/linuxRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainer;testrg;v1win2012r/protectedItems/VM;iaasvmcontainer;testrg;v1win2012r/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", + "Location": "https://management.azure.com/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/linuxRsVaultRG/providers/Microsoft.RecoveryServices/vaults/linuxRsVault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainer;testrg;v1win2012r/protectedItems/VM;iaasvmcontainer;testrg;v1win2012r/operationResults/00000000-0000-0000-0000-000000000000?api-version=2016-12-01", "Retry-After": 60 } } - } + }, + "operationId": "Backups_Trigger", + "title": "Trigger Backup" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/TriggerCancelJob.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/TriggerCancelJob.json index 5d673c1cf95a..ecb1cc6037d5 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/TriggerCancelJob.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/TriggerCancelJob.json @@ -1,10 +1,10 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", + "api-version": "2025-02-01", "jobName": "00000000-0000-0000-0000-000000000000", - "api-version": "2025-02-01" + "resourceGroupName": "SwaggerTestRg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "202": { @@ -13,5 +13,7 @@ "Retry-After": 60 } } - } + }, + "operationId": "JobCancellations_Trigger", + "title": "Cancel Job" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/TriggerExportJobs.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/TriggerExportJobs.json index f0aa346a9f7d..421ad5ba8d2b 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/TriggerExportJobs.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Common/TriggerExportJobs.json @@ -1,9 +1,9 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", "resourceGroupName": "SwaggerTestRg", - "vaultName": "NetSDKTestRsVault", - "api-version": "2025-02-01" + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "NetSDKTestRsVault" }, "responses": { "202": { @@ -12,5 +12,7 @@ "Retry-After": 60 } } - } + }, + "operationId": "Jobs_Export", + "title": "Export Jobs" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Dpm/BackupEngines_Get.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Dpm/BackupEngines_Get.json index dae2d4edf0e5..a3204403d6af 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Dpm/BackupEngines_Get.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Dpm/BackupEngines_Get.json @@ -1,35 +1,37 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "testRG", - "vaultName": "testVault", + "api-version": "2025-02-01", "backupEngineName": "testServer", - "api-version": "2025-02-01" + "resourceGroupName": "testRG", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "200": { "body": { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupEngines/testServer", "name": "testServer", "type": "Microsoft.RecoveryServices/vaults/backupEngines", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupEngines/testServer", "properties": { - "backupEngineType": "DpmBackupEngine", - "dpmVersion": "5.1.348.0", - "isDpmUpgradeAvailable": false, "azureBackupAgentVersion": "2.0.9532.0", - "isAzureBackupAgentUpgradeAvailable": false, - "registrationStatus": "Registered", "backupEngineState": "Active", - "friendlyName": "testServer", + "backupEngineType": "DpmBackupEngine", + "dpmVersion": "5.1.348.0", "extendedInfo": { + "availableDiskSpace": 50, + "diskCount": 5, "protectedItemsCount": 35, "protectedServersCount": 21, - "diskCount": 5, - "availableDiskSpace": 50, "usedDiskSpace": 20 - } + }, + "friendlyName": "testServer", + "isAzureBackupAgentUpgradeAvailable": false, + "isDpmUpgradeAvailable": false, + "registrationStatus": "Registered" } } } - } + }, + "operationId": "BackupEngines_Get", + "title": "Get Dpm/AzureBackupServer/Lajolla Backup Engine Details" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Dpm/BackupEngines_List.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Dpm/BackupEngines_List.json index 96ed0aff88b6..f7572ca255e9 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Dpm/BackupEngines_List.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/Dpm/BackupEngines_List.json @@ -1,60 +1,62 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", + "api-version": "2025-02-01", "resourceGroupName": "testRG", - "vaultName": "testVault", - "api-version": "2025-02-01" + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "200": { "body": { "value": [ { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupEngines/testServer1", "name": "testServer1", "type": "Microsoft.RecoveryServices/vaults/backupEngines", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupEngines/testServer1", "properties": { - "backupEngineType": "DpmBackupEngine", - "dpmVersion": "5.1.348.0", - "isDpmUpgradeAvailable": false, "azureBackupAgentVersion": "2.0.9532.0", - "isAzureBackupAgentUpgradeAvailable": false, - "registrationStatus": "Registered", "backupEngineState": "Active", - "friendlyName": "testServer1", + "backupEngineType": "DpmBackupEngine", + "dpmVersion": "5.1.348.0", "extendedInfo": { + "availableDiskSpace": 50, + "diskCount": 5, "protectedItemsCount": 35, "protectedServersCount": 21, - "diskCount": 5, - "availableDiskSpace": 50, "usedDiskSpace": 20 - } + }, + "friendlyName": "testServer1", + "isAzureBackupAgentUpgradeAvailable": false, + "isDpmUpgradeAvailable": false, + "registrationStatus": "Registered" } }, { - "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupEngines/testServer5", "name": "testServer5", "type": "Microsoft.RecoveryServices/vaults/backupEngines", + "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testRG/providers/Microsoft.RecoveryServices/vaults/testVault/backupEngines/testServer5", "properties": { - "backupEngineType": "DpmBackupEngine", - "dpmVersion": "5.1.348.0", - "isDpmUpgradeAvailable": false, "azureBackupAgentVersion": "2.0.9530.0", - "isAzureBackupAgentUpgradeAvailable": false, - "registrationStatus": "Registered", "backupEngineState": "Active", - "friendlyName": "testServer5", + "backupEngineType": "DpmBackupEngine", + "dpmVersion": "5.1.348.0", "extendedInfo": { + "availableDiskSpace": 50, + "diskCount": 5, "protectedItemsCount": 35, "protectedServersCount": 21, - "diskCount": 5, - "availableDiskSpace": 50, "usedDiskSpace": 20 - } + }, + "friendlyName": "testServer5", + "isAzureBackupAgentUpgradeAvailable": false, + "isDpmUpgradeAvailable": false, + "registrationStatus": "Registered" } } ] } } - } + }, + "operationId": "BackupEngines_List", + "title": "List Dpm/AzureBackupServer/Lajolla Backup Engines" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ListOperations.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ListOperations.json index 5ed323fe6712..1f53be2b8522 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ListOperations.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ListOperations.json @@ -9,455 +9,457 @@ { "name": "microsoft.recoveryservices/vaults/usages/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Vault Usage", + "description": "Returns usage details for a Recovery Services Vault.", "operation": "Recovery Services Vault usage details.", - "description": "Returns usage details for a Recovery Services Vault." + "provider": "microsoft.recoveryservices", + "resource": "Vault Usage" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupUsageSummaries/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Backup Usages Summaries", + "description": "Returns summaries for Protected Items and Protected Servers for a Recovery Services .", "operation": "Recovery Services Protected Items and Protected Servers usage summaries details.", - "description": "Returns summaries for Protected Items and Protected Servers for a Recovery Services ." + "provider": "microsoft.recoveryservices", + "resource": "Backup Usages Summaries" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/storageConfig/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Vault Storage Config", + "description": "Returns Storage Configuration for Recovery Services Vault.", "operation": "Get Resource Storage Config", - "description": "Returns Storage Configuration for Recovery Services Vault." + "provider": "microsoft.recoveryservices", + "resource": "Vault Storage Config" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/storageConfig/write", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Vault Storage Config", + "description": "Updates Storage Configuration for Recovery Services Vault.", "operation": "Write Resource Storage Config", - "description": "Updates Storage Configuration for Recovery Services Vault." + "provider": "microsoft.recoveryservices", + "resource": "Vault Storage Config" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupconfig/vaultconfig/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Vault Config", + "description": "Returns Configuration for Recovery Services Vault.", "operation": "Get Resource Config", - "description": "Returns Configuration for Recovery Services Vault." + "provider": "microsoft.recoveryservices", + "resource": "Vault Config" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupconfig/vaultconfig/write", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Vault Config", + "description": "Updates Configuration for Recovery Services Vault.", "operation": "Update Resource Config", - "description": "Updates Configuration for Recovery Services Vault." + "provider": "microsoft.recoveryservices", + "resource": "Vault Config" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/tokenInfo/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Token Info", + "description": "Returns token information for Recovery Services Vault.", "operation": "Get Vault Token Info", - "description": "Returns token information for Recovery Services Vault." + "provider": "microsoft.recoveryservices", + "resource": "Token Info" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupSecurityPIN/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "SecurityPINInfo", + "description": "Returns Security PIN Information for Recovery Services Vault.", "operation": "Get Security PIN Info", - "description": "Returns Security PIN Information for Recovery Services Vault." + "provider": "microsoft.recoveryservices", + "resource": "SecurityPINInfo" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupManagementMetaData/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Backup Management Metadata", + "description": "Returns Backup Management Metadata for Recovery Services Vault.", "operation": "Get Backup Management Metadata", - "description": "Returns Backup Management Metadata for Recovery Services Vault." + "provider": "microsoft.recoveryservices", + "resource": "Backup Management Metadata" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupOperationResults/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Backup Operation Results", + "description": "Returns Backup Operation Result for Recovery Services Vault.", "operation": "Get Backup Operation Result", - "description": "Returns Backup Operation Result for Recovery Services Vault." + "provider": "microsoft.recoveryservices", + "resource": "Backup Operation Results" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupOperations/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Backup Operation Status", + "description": "Returns Backup Operation Status for Recovery Services Vault.", "operation": "Get Backup Operation Status", - "description": "Returns Backup Operation Status for Recovery Services Vault." + "provider": "microsoft.recoveryservices", + "resource": "Backup Operation Status" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupJobs/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Backup Jobs", + "description": "Returns all Job Objects", "operation": "Get Jobs", - "description": "Returns all Job Objects" + "provider": "microsoft.recoveryservices", + "resource": "Backup Jobs" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupJobs/cancel/action", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Backup Jobs", + "description": "Cancel the Job", "operation": "Cancel Jobs", - "description": "Cancel the Job" + "provider": "microsoft.recoveryservices", + "resource": "Backup Jobs" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupJobsExport/action", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Export Backup Jobs", + "description": "Export Jobs", "operation": "Export Jobs", - "description": "Export Jobs" + "provider": "microsoft.recoveryservices", + "resource": "Export Backup Jobs" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupJobs/operationResults/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Backup Jobs Operation Results", + "description": "Returns the Result of Job Operation.", "operation": "Get Job Operation Result", - "description": "Returns the Result of Job Operation." + "provider": "microsoft.recoveryservices", + "resource": "Backup Jobs Operation Results" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupJobsExport/operationResults/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Export Backup Jobs Operation Results", + "description": "Returns the Result of Export Job Operation.", "operation": "Get Export Job Operation Result", - "description": "Returns the Result of Export Job Operation." + "provider": "microsoft.recoveryservices", + "resource": "Export Backup Jobs Operation Results" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Recovery Points", + "description": "Get Recovery Points for Protected Items.", "operation": "Get Recovery Points", - "description": "Get Recovery Points for Protected Items." + "provider": "microsoft.recoveryservices", + "resource": "Recovery Points" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/restore/action", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Recovery Points", + "description": "Restore Recovery Points for Protected Items.", "operation": "Restore Recovery Points", - "description": "Restore Recovery Points for Protected Items." + "provider": "microsoft.recoveryservices", + "resource": "Recovery Points" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/provisionInstantItemRecovery/action", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Recovery Points", + "description": "Provision Instant Item Recovery for Protected Item", "operation": "Provision Instant Item Recovery for Protected Item", - "description": "Provision Instant Item Recovery for Protected Item" + "provider": "microsoft.recoveryservices", + "resource": "Recovery Points" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/revokeInstantItemRecovery/action", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Recovery Points", + "description": "Revoke Instant Item Recovery for Protected Item", "operation": "Revoke Instant Item Recovery for Protected Item", - "description": "Revoke Instant Item Recovery for Protected Item" + "provider": "microsoft.recoveryservices", + "resource": "Recovery Points" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupPolicies/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Backup Policies", + "description": "Returns all Protection Policies", "operation": "Get Protection Policy", - "description": "Returns all Protection Policies" + "provider": "microsoft.recoveryservices", + "resource": "Backup Policies" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupPolicies/write", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Backup Policies", + "description": "Creates Protection Policy", "operation": "Create Protection Policy", - "description": "Creates Protection Policy" + "provider": "microsoft.recoveryservices", + "resource": "Backup Policies" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupPolicies/delete", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Backup Policies", + "description": "Delete a Protection Policy", "operation": "Delete Protection Policy", - "description": "Delete a Protection Policy" + "provider": "microsoft.recoveryservices", + "resource": "Backup Policies" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupPolicies/operationResults/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Backup Policy Operation Results", + "description": "Get Results of Policy Operation.", "operation": "Get Policy Operation Results", - "description": "Get Results of Policy Operation." + "provider": "microsoft.recoveryservices", + "resource": "Backup Policy Operation Results" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupPolicies/operationsStatus/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Backup Policy Operation Status", + "description": "Get Status of Policy Operation.", "operation": "Get Policy Operation Status", - "description": "Get Status of Policy Operation." + "provider": "microsoft.recoveryservices", + "resource": "Backup Policy Operation Status" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Protected Items", + "description": "Returns object details of the Protected Item", "operation": "Get Protected Item Details", - "description": "Returns object details of the Protected Item" + "provider": "microsoft.recoveryservices", + "resource": "Protected Items" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupProtectedItems/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Protected Items", + "description": "Returns the list of all Protected Items.", "operation": "Get All Protected Items", - "description": "Returns the list of all Protected Items." + "provider": "microsoft.recoveryservices", + "resource": "Protected Items" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/write", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Protected Items", + "description": "Create a backup Protected Item", "operation": "Create Backup Protected Item", - "description": "Create a backup Protected Item" + "provider": "microsoft.recoveryservices", + "resource": "Protected Items" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/delete", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Protected Items", + "description": "Deletes Protected Item", "operation": "Delete Protected Items", - "description": "Deletes Protected Item" + "provider": "microsoft.recoveryservices", + "resource": "Protected Items" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/operationResults/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Protected Item Operation Results", + "description": "Gets Result of Operation Performed on Protected Items.", "operation": "Get Protected Items Operation Results", - "description": "Gets Result of Operation Performed on Protected Items." + "provider": "microsoft.recoveryservices", + "resource": "Protected Item Operation Results" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/operationsStatus/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Protected Item Operation Status", + "description": "Returns the status of Operation performed on Protected Items.", "operation": "Get Protected Items operation status", - "description": "Returns the status of Operation performed on Protected Items." + "provider": "microsoft.recoveryservices", + "resource": "Protected Item Operation Status" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/protectedItems/backup/action", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Protected Items", + "description": "Performs Backup for Protected Item.", "operation": "Backup Protected Item", - "description": "Performs Backup for Protected Item." + "provider": "microsoft.recoveryservices", + "resource": "Protected Items" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupProtectableItems/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Backup Protectable Items", + "description": "Returns list of all Protectable Items.", "operation": "Get Protectable Items", - "description": "Returns list of all Protectable Items." + "provider": "microsoft.recoveryservices", + "resource": "Backup Protectable Items" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/refreshContainers/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Refresh Containers", + "description": "Refreshes the container list", "operation": "Refresh container", - "description": "Refreshes the container list" + "provider": "microsoft.recoveryservices", + "resource": "Refresh Containers" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupFabrics/operationResults/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Refresh Containers Operation Results", + "description": "Returns status of the operation", "operation": "Get Operation Results", - "description": "Returns status of the operation" + "provider": "microsoft.recoveryservices", + "resource": "Refresh Containers Operation Results" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupProtectionContainers/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Backup Protection Containers", + "description": "Returns all containers belonging to the subscription", "operation": "Get Containers In Subscription", - "description": "Returns all containers belonging to the subscription" + "provider": "microsoft.recoveryservices", + "resource": "Backup Protection Containers" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Protection Containers", + "description": "Returns all registered containers", "operation": "Get Registered Container", - "description": "Returns all registered containers" + "provider": "microsoft.recoveryservices", + "resource": "Protection Containers" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/operationResults/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Protection Containers Operation Results", + "description": "Gets result of Operation performed on Protection Container.", "operation": "Get Container Operation Results", - "description": "Gets result of Operation performed on Protection Container." + "provider": "microsoft.recoveryservices", + "resource": "Protection Containers Operation Results" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupEngines", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Backup Engines", + "description": "Returns all the backup management servers registered with vault.", "operation": "List of backup management servers.", - "description": "Returns all the backup management servers registered with vault." + "provider": "microsoft.recoveryservices", + "resource": "Backup Engines" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupStatus", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Backup Status", + "description": "Check Backup Status for Recovery Services Vaults", "operation": "Check Backup Status for Vault", - "description": "Check Backup Status for Recovery Services Vaults" + "provider": "microsoft.recoveryservices", + "resource": "Backup Status" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupPreValidateProtection", "display": { - "provider": "microsoft.recoveryservices", - "resource": "PreValidate Protection", + "description": "", "operation": "Pre Validate Enable Protection", - "description": "" + "provider": "microsoft.recoveryservices", + "resource": "PreValidate Protection" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupValidateFeatures", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Validate Features", + "description": "Validate Features", "operation": "Validate Features", - "description": "Validate Features" + "provider": "microsoft.recoveryservices", + "resource": "Validate Features" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupFabrics/backupProtectionIntent/write", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Protection Intent", + "description": "Create a backup Protection Intent", "operation": "Create backup Protection Intent", - "description": "Create a backup Protection Intent" + "provider": "microsoft.recoveryservices", + "resource": "Protection Intent" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupFabrics/{fabricName}/protectionContainers/{containerName}/items/read", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Workload Items", + "description": "Get all items in a container", "operation": "Get all items in a container", - "description": "Get all items in a container" + "provider": "microsoft.recoveryservices", + "resource": "Workload Items" }, "origin": "user" }, { "name": "microsoft.recoveryservices/vaults/backupFabrics/protectionContainers/inquire/action", "display": { - "provider": "microsoft.recoveryservices", - "resource": "Protection Containers Inquire", + "description": "Get all items in a container", "operation": "Get all items in a container", - "description": "Get all items in a container" + "provider": "microsoft.recoveryservices", + "resource": "Protection Containers Inquire" }, "origin": "user" } ] } } - } + }, + "operationId": "Operations_List", + "title": "ListOperations" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/PrivateEndpointConnection/DeletePrivateEndpointConnection.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/PrivateEndpointConnection/DeletePrivateEndpointConnection.json index 8831775723e4..20518800ae63 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/PrivateEndpointConnection/DeletePrivateEndpointConnection.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/PrivateEndpointConnection/DeletePrivateEndpointConnection.json @@ -1,10 +1,10 @@ { "parameters": { - "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", - "resourceGroupName": "gaallaRG", - "vaultName": "gaallavaultbvtd2msi", + "api-version": "2025-02-01", "privateEndpointConnectionName": "gaallatestpe2.5704c932-249a-490b-a142-1396838cd3b", - "api-version": "2025-02-01" + "resourceGroupName": "gaallaRG", + "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", + "vaultName": "gaallavaultbvtd2msi" }, "responses": { "200": {}, @@ -15,5 +15,7 @@ } }, "204": {} - } + }, + "operationId": "PrivateEndpointConnection_Delete", + "title": "Delete PrivateEndpointConnection" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/PrivateEndpointConnection/GetPrivateEndpointConnection.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/PrivateEndpointConnection/GetPrivateEndpointConnection.json index a814ff6c9bdc..8b0e81f7b22a 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/PrivateEndpointConnection/GetPrivateEndpointConnection.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/PrivateEndpointConnection/GetPrivateEndpointConnection.json @@ -1,31 +1,33 @@ { "parameters": { - "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", - "resourceGroupName": "gaallaRG", - "vaultName": "gaallavaultbvtd2msi", + "api-version": "2025-02-01", "privateEndpointConnectionName": "gaallatestpe2.5704c932-249a-490b-a142-1396838cd3b", - "api-version": "2025-02-01" + "resourceGroupName": "gaallaRG", + "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", + "vaultName": "gaallavaultbvtd2msi" }, "responses": { "200": { "body": { - "id": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/gaallaRG/providers/Microsoft.RecoveryServicesBVTD2/vaults/gaallavaultbvtd2msi/privateEndpointConnections/gaallatestpe3.3592346090307038890.backup.5704c932-249a-490b-a142-1396838cd3b", "name": "gaallatestpe1.3592346090307038890.backup.5704c932-249a-490b-a142-1396838cd3b", "type": "Microsoft.RecoveryServices/vaults/privateEndpointConnections", + "id": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/gaallaRG/providers/Microsoft.RecoveryServicesBVTD2/vaults/gaallavaultbvtd2msi/privateEndpointConnections/gaallatestpe3.3592346090307038890.backup.5704c932-249a-490b-a142-1396838cd3b", "properties": { - "provisioningState": "Pending", + "groupIds": [ + "AzureBackup_secondary" + ], "privateEndpoint": { "id": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/gaallaRG/providers/Microsoft.Network/privateEndpoints/gaallatestpe3" }, "privateLinkServiceConnectionState": { - "status": "Approved", - "description": "Approved by johndoe@company.com" + "description": "Approved by johndoe@company.com", + "status": "Approved" }, - "groupIds": [ - "AzureBackup_secondary" - ] + "provisioningState": "Pending" } } } - } + }, + "operationId": "PrivateEndpointConnection_Get", + "title": "Get PrivateEndpointConnection" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/PrivateEndpointConnection/GetPrivateEndpointConnectionOperationStatus.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/PrivateEndpointConnection/GetPrivateEndpointConnectionOperationStatus.json index 739c065aa5fc..cc55e5967574 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/PrivateEndpointConnection/GetPrivateEndpointConnectionOperationStatus.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/PrivateEndpointConnection/GetPrivateEndpointConnectionOperationStatus.json @@ -1,21 +1,23 @@ { "parameters": { - "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", - "resourceGroupName": "gaallaRG", - "privateEndpointConnectionName": "gaallatestpe2.5704c932-249a-490b-a142-1396838cd3b", - "vaultName": "gaallavaultbvtd2msi", "operationId": "0f48183b-0a44-4dca-aec1-bba5daab888a", - "api-version": "2025-02-01" + "api-version": "2025-02-01", + "privateEndpointConnectionName": "gaallatestpe2.5704c932-249a-490b-a142-1396838cd3b", + "resourceGroupName": "gaallaRG", + "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", + "vaultName": "gaallavaultbvtd2msi" }, "responses": { "200": { "body": { - "id": "0f48183b-0a44-4dca-aec1-bba5daab888a", "name": "0f48183b-0a44-4dca-aec1-bba5daab888a", - "status": "Succeeded", + "endTime": "2020-02-27T11:59:47.5901592Z", + "id": "0f48183b-0a44-4dca-aec1-bba5daab888a", "startTime": "2020-02-27T11:59:47.5901592Z", - "endTime": "2020-02-27T11:59:47.5901592Z" + "status": "Succeeded" } } - } + }, + "operationId": "PrivateEndpoint_GetOperationStatus", + "title": "Get OperationStatus" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/PrivateEndpointConnection/PutPrivateEndpointConnection.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/PrivateEndpointConnection/PutPrivateEndpointConnection.json index 671e8711cd15..fcf948014e48 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/PrivateEndpointConnection/PutPrivateEndpointConnection.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/PrivateEndpointConnection/PutPrivateEndpointConnection.json @@ -1,70 +1,72 @@ { "parameters": { - "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", - "resourceGroupName": "gaallaRG", - "vaultName": "gaallavaultbvtd2msi", - "privateEndpointConnectionName": "gaallatestpe2.5704c932-249a-490b-a142-1396838cd3b", "api-version": "2025-02-01", "parameters": { "properties": { - "provisioningState": "Succeeded", + "groupIds": [ + "AzureBackup_secondary" + ], "privateEndpoint": { "id": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/gaallaRG/providers/Microsoft.Network/privateEndpoints/gaallatestpe3" }, "privateLinkServiceConnectionState": { - "status": "Approved", - "description": "Approved by johndoe@company.com" + "description": "Approved by johndoe@company.com", + "status": "Approved" }, - "groupIds": [ - "AzureBackup_secondary" - ] + "provisioningState": "Succeeded" } - } + }, + "privateEndpointConnectionName": "gaallatestpe2.5704c932-249a-490b-a142-1396838cd3b", + "resourceGroupName": "gaallaRG", + "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", + "vaultName": "gaallavaultbvtd2msi" }, "responses": { - "201": { + "200": { "body": { - "id": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/gaallaRG/providers/Microsoft.RecoveryServicesBVTD2/vaults/gaallavaultbvtd2msi/privateEndpointConnections/gaallatestpe3.3592346090307038890.backup.5704c932-249a-490b-a142-1396838cd3b", "name": "gaallatestpe1.3592346090307038890.backup.5704c932-249a-490b-a142-1396838cd3b", "type": "Microsoft.RecoveryServices/vaults/privateEndpointConnections", + "id": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/gaallaRG/providers/Microsoft.RecoveryServicesBVTD2/vaults/gaallavaultbvtd2msi/privateEndpointConnections/gaallatestpe3.3592346090307038890.backup.5704c932-249a-490b-a142-1396838cd3b", "properties": { - "provisioningState": "Pending", + "groupIds": [ + "AzureBackup_secondary" + ], "privateEndpoint": { "id": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/gaallaRG/providers/Microsoft.Network/privateEndpoints/gaallatestpe3" }, "privateLinkServiceConnectionState": { - "status": "Approved", - "description": "Approved by johndoe@company.com" + "description": "Approved by johndoe@company.com", + "status": "Approved" }, - "groupIds": [ - "AzureBackup_secondary" - ] + "provisioningState": "Succeeded" } - }, - "headers": { - "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6c48fa17-39c7-45f1-90ac-47a587128ace/resourceGroups/backupadminrg/providers/Microsoft.RecoveryServices/Vaults/demo-pevault-2/privateEndpointConnections/autoapprovalpeecy4.3679789459502941542.backup.5ede856d-d9f0-461e-a15b-370c84525817/operationsStatus/2908a25d-8036-48d2-bdcc-fdce26b9771f?api-versi", - "Retry-After": "60" } }, - "200": { + "201": { "body": { - "id": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/gaallaRG/providers/Microsoft.RecoveryServicesBVTD2/vaults/gaallavaultbvtd2msi/privateEndpointConnections/gaallatestpe3.3592346090307038890.backup.5704c932-249a-490b-a142-1396838cd3b", "name": "gaallatestpe1.3592346090307038890.backup.5704c932-249a-490b-a142-1396838cd3b", "type": "Microsoft.RecoveryServices/vaults/privateEndpointConnections", + "id": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/gaallaRG/providers/Microsoft.RecoveryServicesBVTD2/vaults/gaallavaultbvtd2msi/privateEndpointConnections/gaallatestpe3.3592346090307038890.backup.5704c932-249a-490b-a142-1396838cd3b", "properties": { - "provisioningState": "Succeeded", + "groupIds": [ + "AzureBackup_secondary" + ], "privateEndpoint": { "id": "/subscriptions/04cf684a-d41f-4550-9f70-7708a3a2283b/resourceGroups/gaallaRG/providers/Microsoft.Network/privateEndpoints/gaallatestpe3" }, "privateLinkServiceConnectionState": { - "status": "Approved", - "description": "Approved by johndoe@company.com" + "description": "Approved by johndoe@company.com", + "status": "Approved" }, - "groupIds": [ - "AzureBackup_secondary" - ] + "provisioningState": "Pending" } + }, + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6c48fa17-39c7-45f1-90ac-47a587128ace/resourceGroups/backupadminrg/providers/Microsoft.RecoveryServices/Vaults/demo-pevault-2/privateEndpointConnections/autoapprovalpeecy4.3679789459502941542.backup.5ede856d-d9f0-461e-a15b-370c84525817/operationsStatus/2908a25d-8036-48d2-bdcc-fdce26b9771f?api-versi", + "Retry-After": "60" } } - } + }, + "operationId": "PrivateEndpointConnection_Put", + "title": "Update PrivateEndpointConnection" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/DeleteResourceGuardProxy.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/DeleteResourceGuardProxy.json index 987e5fdba2ba..7f8bf91d3028 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/DeleteResourceGuardProxy.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/DeleteResourceGuardProxy.json @@ -1,13 +1,15 @@ { "parameters": { - "subscriptionId": "0b352192-dcac-4cc7-992e-a96190ccc68c", - "vaultName": "sampleVault", + "api-version": "2025-02-01", "resourceGroupName": "SampleResourceGroup", "resourceGuardProxyName": "swaggerExample", - "api-version": "2025-02-01" + "subscriptionId": "0b352192-dcac-4cc7-992e-a96190ccc68c", + "vaultName": "sampleVault" }, "responses": { "200": {}, "204": {} - } + }, + "operationId": "ResourceGuardProxy_Delete", + "title": "Delete ResourceGuardProxy" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/GetResourceGuardProxy.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/GetResourceGuardProxy.json index 4ec39c326297..7f0c2e1fe699 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/GetResourceGuardProxy.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/GetResourceGuardProxy.json @@ -1,33 +1,35 @@ { "parameters": { - "subscriptionId": "0b352192-dcac-4cc7-992e-a96190ccc68c", - "vaultName": "sampleVault", + "api-version": "2025-02-01", "resourceGroupName": "SampleResourceGroup", "resourceGuardProxyName": "swaggerExample", - "api-version": "2025-02-01" + "subscriptionId": "0b352192-dcac-4cc7-992e-a96190ccc68c", + "vaultName": "sampleVault" }, "responses": { "200": { "body": { - "id": "/backupmanagement/resources/sampleVault/backupResourceGuardProxies/swaggerExample", "name": "swaggerExample", "type": "Microsoft.RecoveryServices/vaults/backupResourceGuardProxies", + "id": "/backupmanagement/resources/sampleVault/backupResourceGuardProxies/swaggerExample", "properties": { - "resourceGuardResourceId": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew", + "description": "Please take JIT access before performing any of the critical operation", + "lastUpdatedTime": "2021-02-11T12:20:47.8210031Z", "resourceGuardOperationDetails": [ { - "vaultCriticalOperation": "Microsoft.DataProtection/resourceGuards/deleteResourceGuardProxyRequests", - "defaultResourceRequest": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/deleteResourceGuardProxyRequests/default" + "defaultResourceRequest": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/deleteResourceGuardProxyRequests/default", + "vaultCriticalOperation": "Microsoft.DataProtection/resourceGuards/deleteResourceGuardProxyRequests" }, { - "vaultCriticalOperation": "Microsoft.DataProtection/resourceGuards/disableSoftDeleteRequests", - "defaultResourceRequest": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/resourceguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/disableSoftDeleteRequests/default" + "defaultResourceRequest": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/resourceguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/disableSoftDeleteRequests/default", + "vaultCriticalOperation": "Microsoft.DataProtection/resourceGuards/disableSoftDeleteRequests" } ], - "lastUpdatedTime": "2021-02-11T12:20:47.8210031Z", - "description": "Please take JIT access before performing any of the critical operation" + "resourceGuardResourceId": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew" } } } - } + }, + "operationId": "ResourceGuardProxy_Get", + "title": "Get ResourceGuardProxy" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/ListResourceGuardProxy.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/ListResourceGuardProxy.json index 8898fbe8feff..aee2e865e06f 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/ListResourceGuardProxy.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/ListResourceGuardProxy.json @@ -1,36 +1,38 @@ { "parameters": { - "subscriptionId": "0b352192-dcac-4cc7-992e-a96190ccc68c", - "vaultName": "sampleVault", + "api-version": "2025-02-01", "resourceGroupName": "SampleResourceGroup", - "api-version": "2025-02-01" + "subscriptionId": "0b352192-dcac-4cc7-992e-a96190ccc68c", + "vaultName": "sampleVault" }, "responses": { "200": { "body": { "value": [ { - "id": "/backupmanagement/resources/sampleVault/backupResourceGuardProxies/swaggerExample", "name": "swaggerExample", "type": "Microsoft.RecoveryServices/vaults/backupResourceGuardProxies", + "id": "/backupmanagement/resources/sampleVault/backupResourceGuardProxies/swaggerExample", "properties": { - "resourceGuardResourceId": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew", + "description": "Please take JIT access before performing any of the critical operation", + "lastUpdatedTime": "2021-02-11T12:20:47.8210031Z", "resourceGuardOperationDetails": [ { - "vaultCriticalOperation": "Microsoft.DataProtection/resourceGuards/deleteResourceGuardProxyRequests", - "defaultResourceRequest": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/deleteResourceGuardProxyRequests/default" + "defaultResourceRequest": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/deleteResourceGuardProxyRequests/default", + "vaultCriticalOperation": "Microsoft.DataProtection/resourceGuards/deleteResourceGuardProxyRequests" }, { - "vaultCriticalOperation": "Microsoft.DataProtection/resourceGuards/disableSoftDeleteRequests", - "defaultResourceRequest": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/disableSoftDeleteRequests/default" + "defaultResourceRequest": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/disableSoftDeleteRequests/default", + "vaultCriticalOperation": "Microsoft.DataProtection/resourceGuards/disableSoftDeleteRequests" } ], - "lastUpdatedTime": "2021-02-11T12:20:47.8210031Z", - "description": "Please take JIT access before performing any of the critical operation" + "resourceGuardResourceId": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew" } } ] } } - } + }, + "operationId": "ResourceGuardProxies_Get", + "title": "Get VaultGuardProxies" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/PutResourceGuardProxy.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/PutResourceGuardProxy.json index d3a23e81b171..d3778a335420 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/PutResourceGuardProxy.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/PutResourceGuardProxy.json @@ -1,38 +1,40 @@ { "parameters": { - "subscriptionId": "0b352192-dcac-4cc7-992e-a96190ccc68c", - "vaultName": "sampleVault", - "resourceGroupName": "SampleResourceGroup", - "resourceGuardProxyName": "swaggerExample", "api-version": "2025-02-01", "parameters": { "properties": { "resourceGuardResourceId": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew" } - } + }, + "resourceGroupName": "SampleResourceGroup", + "resourceGuardProxyName": "swaggerExample", + "subscriptionId": "0b352192-dcac-4cc7-992e-a96190ccc68c", + "vaultName": "sampleVault" }, "responses": { "200": { "body": { - "id": "/backupmanagement/resources/sampleVault/backupResourceGuardProxies/swaggerExample", "name": "swaggerExample", "type": "Microsoft.RecoveryServices/vaults/backupResourceGuardProxies", + "id": "/backupmanagement/resources/sampleVault/backupResourceGuardProxies/swaggerExample", "properties": { - "resourceGuardResourceId": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew", + "description": "Please take JIT access before performing any of the critical operation", + "lastUpdatedTime": "2021-02-11T12:20:47.8210031Z", "resourceGuardOperationDetails": [ { - "vaultCriticalOperation": "Microsoft.DataProtection/resourceGuards/deleteResourceGuardProxyRequests", - "defaultResourceRequest": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/deleteResourceGuardProxyRequests/default" + "defaultResourceRequest": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/deleteResourceGuardProxyRequests/default", + "vaultCriticalOperation": "Microsoft.DataProtection/resourceGuards/deleteResourceGuardProxyRequests" }, { - "vaultCriticalOperation": "Microsoft.DataProtection/resourceGuards/disableSoftDeleteRequests", - "defaultResourceRequest": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/disableSoftDeleteRequests/default" + "defaultResourceRequest": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/disableSoftDeleteRequests/default", + "vaultCriticalOperation": "Microsoft.DataProtection/resourceGuards/disableSoftDeleteRequests" } ], - "lastUpdatedTime": "2021-02-11T12:20:47.8210031Z", - "description": "Please take JIT access before performing any of the critical operation" + "resourceGuardResourceId": "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew" } } } - } + }, + "operationId": "ResourceGuardProxy_Put", + "title": "Create ResourceGuardProxy" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/UnlockDeleteResourceGuardProxy.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/UnlockDeleteResourceGuardProxy.json index f952bbd20116..9a1d71096bdf 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/UnlockDeleteResourceGuardProxy.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/ResourceGuardProxyCRUD/UnlockDeleteResourceGuardProxy.json @@ -1,16 +1,16 @@ { "parameters": { - "subscriptionId": "0b352192-dcac-4cc7-992e-a96190ccc68c", - "vaultName": "sampleVault", - "resourceGroupName": "SampleResourceGroup", - "resourceGuardProxyName": "swaggerExample", "api-version": "2025-02-01", "parameters": { "resourceGuardOperationRequests": [ "/subscriptions/c999d45b-944f-418c-a0d8-c3fcfd1802c8/resourceGroups/vaultguardRGNew/providers/Microsoft.DataProtection/resourceGuards/VaultGuardTestNew/deleteProtectedItemRequests/default" ], "resourceToBeDeleted": "/subscriptions/62b829ee-7936-40c9-a1c9-47a93f9f3965/resourceGroups/gaallarg/providers/Microsoft.RecoveryServices/vaults/MercuryCrrVault/backupFabrics/Azure/protectionContainers/VMAppContainer;compute;crrtestrg;crrtestvm/protectedItems/SQLDataBase;mssqlserver;testdb" - } + }, + "resourceGroupName": "SampleResourceGroup", + "resourceGuardProxyName": "swaggerExample", + "subscriptionId": "0b352192-dcac-4cc7-992e-a96190ccc68c", + "vaultName": "sampleVault" }, "responses": { "200": { @@ -18,5 +18,7 @@ "unlockDeleteExpiryTime": "2021-02-11T13:12:27.7870742Z" } } - } + }, + "operationId": "ResourceGuardProxy_UnlockDelete", + "title": "UnlockDelete ResourceGuardProxy" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/FetchTieringCostForPolicy.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/FetchTieringCostForPolicy.json index 290fb9d613a3..c58167f48afb 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/FetchTieringCostForPolicy.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/FetchTieringCostForPolicy.json @@ -1,32 +1,34 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "netsdktestrg", - "vaultName": "testVault", "api-version": "2025-02-01", "parameters": { "objectType": "FetchTieringCostSavingsInfoForPolicyRequest", "policyName": "monthly", "sourceTierType": "HardenedRP", "targetTierType": "ArchivedRP" - } + }, + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { - "202": { - "headers": { - "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", - "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", - "Retry-After": 60 - } - }, "200": { "body": { "objectType": "TieringCostSavingInfo", - "sourceTierSizeReductionInBytes": 1204000, - "targetTierSizeIncreaseInBytes": 1892, "retailSourceTierCostPerGBPerMonth": 0.02, - "retailTargetTierCostPerGBPerMonth": 0.003 + "retailTargetTierCostPerGBPerMonth": 0.003, + "sourceTierSizeReductionInBytes": 1204000, + "targetTierSizeIncreaseInBytes": 1892 + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", + "Retry-After": 60 } } - } + }, + "operationId": "FetchTieringCost_Post", + "title": "Get the tiering savings cost info for policy" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/FetchTieringCostForProtectedItem.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/FetchTieringCostForProtectedItem.json index 29bc59778aeb..94927d2bb1ac 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/FetchTieringCostForProtectedItem.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/FetchTieringCostForProtectedItem.json @@ -1,33 +1,35 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "netsdktestrg", - "vaultName": "testVault", "api-version": "2025-02-01", "parameters": { - "objectType": "FetchTieringCostSavingsInfoForProtectedItemRequest", "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "objectType": "FetchTieringCostSavingsInfoForProtectedItemRequest", "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", "sourceTierType": "HardenedRP", "targetTierType": "ArchivedRP" - } + }, + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "200": { "body": { "objectType": "TieringCostSavingInfo", - "sourceTierSizeReductionInBytes": 1204000, - "targetTierSizeIncreaseInBytes": 1892, "retailSourceTierCostPerGBPerMonth": 0.02, - "retailTargetTierCostPerGBPerMonth": 0.003 + "retailTargetTierCostPerGBPerMonth": 0.003, + "sourceTierSizeReductionInBytes": 1204000, + "targetTierSizeIncreaseInBytes": 1892 } }, "202": { "headers": { - "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", "Retry-After": 60 } } - } + }, + "operationId": "FetchTieringCost_Post", + "title": "Get the tiering savings cost info for protected item" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/FetchTieringCostForRehydrate.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/FetchTieringCostForRehydrate.json index f2d637c439d8..d3fc32d1f5f9 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/FetchTieringCostForRehydrate.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/FetchTieringCostForRehydrate.json @@ -1,18 +1,18 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "netsdktestrg", - "vaultName": "testVault", "api-version": "2025-02-01", "parameters": { - "objectType": "FetchTieringCostInfoForRehydrationRequest", "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "objectType": "FetchTieringCostInfoForRehydrationRequest", "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", "recoveryPointId": "1222343434", "rehydrationPriority": "High", "sourceTierType": "ArchivedRP", "targetTierType": "HardenedRP" - } + }, + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "200": { @@ -24,10 +24,12 @@ }, "202": { "headers": { - "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", "Retry-After": 60 } } - } + }, + "operationId": "FetchTieringCost_Post", + "title": "Get the rehydration cost for recovery point" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/FetchTieringCostForVault.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/FetchTieringCostForVault.json index a0726d88015f..fcd1d3ed1d67 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/FetchTieringCostForVault.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/FetchTieringCostForVault.json @@ -1,31 +1,33 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "netsdktestrg", - "vaultName": "testVault", "api-version": "2025-02-01", "parameters": { "objectType": "FetchTieringCostSavingsInfoForVaultRequest", "sourceTierType": "HardenedRP", "targetTierType": "ArchivedRP" - } + }, + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "200": { "body": { "objectType": "TieringCostSavingInfo", - "sourceTierSizeReductionInBytes": 1204000, - "targetTierSizeIncreaseInBytes": 1892, "retailSourceTierCostPerGBPerMonth": 0.02, - "retailTargetTierCostPerGBPerMonth": 0.003 + "retailTargetTierCostPerGBPerMonth": 0.003, + "sourceTierSizeReductionInBytes": 1204000, + "targetTierSizeIncreaseInBytes": 1892 } }, "202": { "headers": { - "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupTieringCost/default/operationResults/00000000-0000-0000-0000-000000000000?api-version=2025-02-01", "Retry-After": 60 } } - } + }, + "operationId": "FetchTieringCost_Post", + "title": "Get the tiering savings cost info for vault" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/GetTieringCostOperationResult.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/GetTieringCostOperationResult.json index 01b814939c1b..754693c31c10 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/GetTieringCostOperationResult.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/GetTieringCostOperationResult.json @@ -1,20 +1,22 @@ { "parameters": { - "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", - "resourceGroupName": "gaallaRG", - "vaultName": "gaallavaultbvtd2msi", "operationId": "0f48183b-0a44-4dca-aec1-bba5daab888a", - "api-version": "2025-02-01" + "api-version": "2025-02-01", + "resourceGroupName": "gaallaRG", + "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", + "vaultName": "gaallavaultbvtd2msi" }, "responses": { "200": { "body": { "objectType": "TieringCostSavingInfo", - "sourceTierSizeReductionInBytes": 1204000, - "targetTierSizeIncreaseInBytes": 1892, "retailSourceTierCostPerGBPerMonth": 0.02, - "retailTargetTierCostPerGBPerMonth": 0.003 + "retailTargetTierCostPerGBPerMonth": 0.003, + "sourceTierSizeReductionInBytes": 1204000, + "targetTierSizeIncreaseInBytes": 1892 } } - } + }, + "operationId": "GetTieringCostOperationResult_Get", + "title": "Fetch Tiering Cost Operation Result" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/GetTieringCostOperationStatus.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/GetTieringCostOperationStatus.json index 739c065aa5fc..68379e87a74e 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/GetTieringCostOperationStatus.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TieringCost/GetTieringCostOperationStatus.json @@ -1,21 +1,23 @@ { "parameters": { - "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", - "resourceGroupName": "gaallaRG", - "privateEndpointConnectionName": "gaallatestpe2.5704c932-249a-490b-a142-1396838cd3b", - "vaultName": "gaallavaultbvtd2msi", "operationId": "0f48183b-0a44-4dca-aec1-bba5daab888a", - "api-version": "2025-02-01" + "api-version": "2025-02-01", + "privateEndpointConnectionName": "gaallatestpe2.5704c932-249a-490b-a142-1396838cd3b", + "resourceGroupName": "gaallaRG", + "subscriptionId": "04cf684a-d41f-4550-9f70-7708a3a2283b", + "vaultName": "gaallavaultbvtd2msi" }, "responses": { "200": { "body": { - "id": "0f48183b-0a44-4dca-aec1-bba5daab888a", "name": "0f48183b-0a44-4dca-aec1-bba5daab888a", - "status": "Succeeded", + "endTime": "2020-02-27T11:59:47.5901592Z", + "id": "0f48183b-0a44-4dca-aec1-bba5daab888a", "startTime": "2020-02-27T11:59:47.5901592Z", - "endTime": "2020-02-27T11:59:47.5901592Z" + "status": "Succeeded" } } - } + }, + "operationId": "TieringCostOperationStatus_Get", + "title": "Fetch Tiering Cost Operation Status" } diff --git a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TriggerRecoveryPointMove_Post.json b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TriggerRecoveryPointMove_Post.json index 2a583327d01e..f5c0cb3108f2 100644 --- a/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TriggerRecoveryPointMove_Post.json +++ b/specification/recoveryservicesbackup/resource-manager/Microsoft.RecoveryServices/stable/2025-02-01/examples/TriggerRecoveryPointMove_Post.json @@ -1,26 +1,28 @@ { "parameters": { - "subscriptionId": "00000000-0000-0000-0000-000000000000", - "resourceGroupName": "netsdktestrg", - "vaultName": "testVault", - "fabricName": "Azure", - "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", - "recoveryPointId": "348916168024334", "api-version": "2025-02-01", + "containerName": "IaasVMContainer;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "fabricName": "Azure", "parameters": { "objectType": "MoveRPAcrossTiersRequest", "sourceTierType": "HardenedRP", "targetTierType": "ArchivedRP" - } + }, + "protectedItemName": "VM;iaasvmcontainerv2;netsdktestrg;netvmtestv2vm1", + "recoveryPointId": "348916168024334", + "resourceGroupName": "netsdktestrg", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "vaultName": "testVault" }, "responses": { "202": { "headers": { - "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationsStatus/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", + "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/netsdktestrg/providers/Microsoft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/protectedItems/vm;iaasVMContainerV2;netsdktestrg;netvmtestv2vm1/operationResults/00000000-0000-0000-0000-000000000000?api-version=2020-09-01", "Retry-After": 60 } } - } + }, + "operationId": "MoveRecoveryPoint", + "title": "Trigger RP Move Operation" }