diff --git a/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/examples/ReplicationProtectionIntents_Create.json b/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/examples/ReplicationProtectionIntents_Create.json new file mode 100644 index 000000000000..0c9d85e9c635 --- /dev/null +++ b/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/examples/ReplicationProtectionIntents_Create.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "api-version": "2018-07-10", + "intentObjectName": "vm1", + "resourceName": "vault1", + "resourceGroupName": "resourceGroupPS1", + "subscriptionId": "509099b2-9d2c-4636-b43e-bd5cafb6be69", + "input": { + "properties": { + "providerSpecificDetails": { + "instanceType": "A2A", + "fabricObjectId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/removeOne/providers/Microsoft.Compute/virtualMachines/vmPpgAv5", + "primaryLocation": "eastUs2", + "recoveryLocation": "westus2", + "recoverySubscriptionId": "ed5bcdf6-d61e-47bd-8ea9-f2bd379a2640", + "recoveryAvailabilityType": "Single", + "recoveryResourceGroupId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/removeOne-asr" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/Subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/2007vttp/providers/Microsoft.RecoveryServices/vaults/tp2007vt/replicationProtectionIntents/vm1", + "name": "vm1", + "type": "Microsoft.RecoveryServices/vaults/replicationProtectionIntents", + "properties": { + "friendlyName": "vm1", + "jobId": "/Subscriptions/d90d145a-4cdd-45a3-b2c4-971d69775278/resourceGroups/a2acl-rg-vault-prod-gip-ccy/providers/Microsoft.RecoveryServices/vaults/a2acl-vault-prod-gip-ccy/replicationJobs/02004ea7-d498-4bb4-bdeb-cdb611706867", + "jobState": "InProgress", + "providerSpecificDetails": { + "instanceType": "A2A" + } + } + } + } + } +} diff --git a/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/examples/ReplicationProtectionIntents_Get.json b/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/examples/ReplicationProtectionIntents_Get.json new file mode 100644 index 000000000000..db171d8f4779 --- /dev/null +++ b/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/examples/ReplicationProtectionIntents_Get.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "api-version": "2018-07-10", + "intentObjectName": "vm1", + "resourceName": "vault1", + "resourceGroupName": "resourceGroupPS1", + "subscriptionId": "509099b2-9d2c-4636-b43e-bd5cafb6be69" + }, + "responses": { + "200": { + "body": { + "id": "/Subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/2007vttp/providers/Microsoft.RecoveryServices/vaults/tp2007vt/replicationProtectionIntents/vm1", + "name": "vm1", + "type": "Microsoft.RecoveryServices/vaults/replicationProtectionIntents", + "properties": { + "friendlyName": "vm1", + "jobId": "/Subscriptions/d90d145a-4cdd-45a3-b2c4-971d69775278/resourceGroups/a2acl-rg-vault-prod-gip-ccy/providers/Microsoft.RecoveryServices/vaults/a2acl-vault-prod-gip-ccy/replicationJobs/02004ea7-d498-4bb4-bdeb-cdb611706867", + "jobState": "InProgress", + "providerSpecificDetails": { + "instanceType": "A2A", + "fabricObjectId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/removeOne/providers/Microsoft.Compute/virtualMachines/vmPpgAv5", + "primaryLocation": "eastUs2", + "recoveryLocation": "westus2", + "recoverySubscriptionId": "ed5bcdf6-d61e-47bd-8ea9-f2bd379a2640", + "recoveryAvailabilityType": "Single" + } + } + } + } + } +} diff --git a/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/examples/ReplicationProtectionIntents_List.json b/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/examples/ReplicationProtectionIntents_List.json new file mode 100644 index 000000000000..58722a7381dd --- /dev/null +++ b/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/examples/ReplicationProtectionIntents_List.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2018-07-10", + "resourceName": "2007vttp", + "resourceGroupName": "resourceGroupPS1", + "subscriptionId": "509099b2-9d2c-4636-b43e-bd5cafb6be69" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/Subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/2007vttp/providers/Microsoft.RecoveryServices/vaults/tp2007vt/replicationProtectionIntents/vm1", + "name": "vm1", + "type": "Microsoft.RecoveryServices/vaults/replicationProtectionIntents", + "properties": { + "friendlyName": "vm1", + "jobId": "/Subscriptions/d90d145a-4cdd-45a3-b2c4-971d69775278/resourceGroups/a2acl-rg-vault-prod-gip-ccy/providers/Microsoft.RecoveryServices/vaults/a2acl-vault-prod-gip-ccy/replicationJobs/02004ea7-d498-4bb4-bdeb-cdb611706867", + "jobState": "InProgress", + "providerSpecificDetails": { + "instanceType": "A2A", + "fabricObjectId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/removeOne/providers/Microsoft.Compute/virtualMachines/vmPpgAv5", + "primaryLocation": "eastUs2", + "recoveryLocation": "westus2", + "recoverySubscriptionId": "ed5bcdf6-d61e-47bd-8ea9-f2bd379a2640", + "recoveryAvailabilityType": "Single" + } + } + } + ] + } + } + } +} diff --git a/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/service.json b/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/service.json index b0a4baffd3a6..6b1cf26f5dc2 100644 --- a/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/service.json +++ b/specification/recoveryservicessiterecovery/resource-manager/Microsoft.RecoveryServices/stable/2018-07-10/service.json @@ -4070,6 +4070,153 @@ } } }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionIntents": { + "get": { + "tags": [ + "ReplicationProtectionIntents" + ], + "summary": "Gets the list of replication protection intent objects.", + "description": "Gets the list of ASR replication protection intent objects in the vault.", + "operationId": "ReplicationProtectionIntents_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/ResourceName" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/SubscriptionId" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ReplicationProtectionIntentCollection" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "Gets the list of replication protection intent objects.": { + "$ref": "./examples/ReplicationProtectionIntents_List.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationProtectionIntents/{intentObjectName}": { + "get": { + "tags": [ + "ReplicationProtectionIntent" + ], + "summary": "Gets the details of a Replication protection intent item.", + "description": "Gets the details of an ASR replication protection intent.", + "operationId": "ReplicationProtectionIntents_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/ResourceName" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/SubscriptionId" + }, + { + "name": "intentObjectName", + "in": "path", + "description": "Replication protection intent name.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ReplicationProtectionIntent" + } + } + }, + "x-ms-examples": { + "Gets the details of a Replication protection intent item.": { + "$ref": "./examples/ReplicationProtectionIntents_Get.json" + } + } + }, + "put": { + "tags": [ + "ReplicationProtectionIntent" + ], + "summary": "Create protection intent Resource.", + "description": "The operation to create an ASR replication protection intent item.", + "operationId": "ReplicationProtectionIntents_Create", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/ApiVersion" + }, + { + "$ref": "#/parameters/ResourceName" + }, + { + "$ref": "#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/SubscriptionId" + }, + { + "name": "intentObjectName", + "in": "path", + "description": "A name for the replication protection item.", + "required": true, + "type": "string" + }, + { + "name": "input", + "in": "body", + "description": "Create Protection Intent Input.", + "required": true, + "schema": { + "$ref": "#/definitions/CreateProtectionIntentInput" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ReplicationProtectionIntent" + } + } + }, + "x-ms-examples": { + "Create protection intent Resource.": { + "$ref": "./examples/ReplicationProtectionIntents_Create.json" + } + } + } + }, "/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationProtectionContainerMappings/{mappingName}": { "get": { "tags": [ @@ -7468,6 +7615,125 @@ }, "x-ms-discriminator-value": "A2A" }, + "A2ACreateProtectionIntentInput": { + "description": "A2A create protection intent input.", + "required": [ + "fabricObjectId", + "primaryLocation", + "recoveryLocation", + "recoverySubscriptionId", + "recoveryAvailabilityType", + "recoveryResourceGroupId" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/CreateProtectionIntentProviderSpecificDetails" + } + ], + "properties": { + "fabricObjectId": { + "description": "The fabric specific object Id of the virtual machine.", + "type": "string" + }, + "primaryLocation": { + "description": "The primary location for the virtual machine.", + "type": "string" + }, + "recoveryLocation": { + "description": "The recovery location for the virtual machine.", + "type": "string" + }, + "recoverySubscriptionId": { + "description": "The recovery subscription Id of the virtual machine.", + "type": "string" + }, + "recoveryAvailabilityType": { + "description": "The recovery availability type of the virtual machine.", + "enum": [ + "Single", + "AvailabilitySet", + "AvailabilityZone" + ], + "type": "string", + "x-ms-enum": { + "name": "A2ARecoveryAvailabilityType", + "modelAsString": true + } + }, + "protectionProfileCustomInput": { + "$ref": "#/definitions/ProtectionProfileCustomDetails", + "description": "The protection profile custom inputs." + }, + "recoveryResourceGroupId": { + "description": "The recovery resource group Id. Valid for V2 scenarios.", + "type": "string" + }, + "primaryStagingStorageAccountCustomInput": { + "$ref": "#/definitions/StorageAccountCustomDetails", + "description": "The primary staging storage account input." + }, + "recoveryAvailabilitySetCustomInput": { + "$ref": "#/definitions/RecoveryAvailabilitySetCustomDetails", + "description": "The recovery availability set input." + }, + "recoveryVirtualNetworkCustomInput": { + "$ref": "#/definitions/RecoveryVirtualNetworkCustomDetails", + "description": "The recovery virtual network input." + }, + "recoveryProximityPlacementGroupCustomInput": { + "$ref": "#/definitions/RecoveryProximityPlacementGroupCustomDetails", + "description": "The recovery proximity placement group custom input." + }, + "autoProtectionOfDataDisk": { + "description": "A value indicating whether the auto protection is enabled.", + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string", + "x-ms-enum": { + "name": "AutoProtectionOfDataDisk", + "modelAsString": true + } + }, + "vmDisks": { + "description": "The list of vm disk inputs.", + "type": "array", + "items": { + "$ref": "#/definitions/A2AProtectionIntentDiskInputDetails" + } + }, + "vmManagedDisks": { + "description": "The list of vm managed disk inputs.", + "type": "array", + "items": { + "$ref": "#/definitions/A2AProtectionIntentManagedDiskInputDetails" + } + }, + "multiVmGroupName": { + "description": "The multi vm group name.", + "type": "string" + }, + "multiVmGroupId": { + "description": "The multi vm group id.", + "type": "string" + }, + "recoveryBootDiagStorageAccount": { + "$ref": "#/definitions/StorageAccountCustomDetails", + "description": "The boot diagnostic storage account." + }, + "diskEncryptionInfo": { + "$ref": "#/definitions/DiskEncryptionInfo", + "description": "The recovery disk encryption information (for two pass flows)." + }, + "recoveryAvailabilityZone": { + "description": "The recovery availability zone.", + "type": "string" + } + }, + "x-ms-discriminator-value": "A2A" + }, "A2AEnableProtectionInput": { "description": "A2A enable protection input.", "type": "object", @@ -7926,6 +8192,64 @@ }, "x-ms-discriminator-value": "A2A" }, + "A2AProtectionIntentDiskInputDetails": { + "description": "Azure VM disk input details.", + "required": [ + "diskUri" + ], + "type": "object", + "properties": { + "diskUri": { + "description": "The disk Uri.", + "type": "string" + }, + "recoveryAzureStorageAccountCustomInput": { + "$ref": "#/definitions/StorageAccountCustomDetails", + "description": "The recovery VHD storage account input." + }, + "primaryStagingStorageAccountCustomInput": { + "$ref": "#/definitions/StorageAccountCustomDetails", + "description": "The primary staging storage account input." + } + } + }, + "A2AProtectionIntentManagedDiskInputDetails": { + "description": "Azure VM managed disk input details.", + "required": [ + "diskId" + ], + "type": "object", + "properties": { + "diskId": { + "description": "The disk Id.", + "type": "string" + }, + "primaryStagingStorageAccountCustomInput": { + "$ref": "#/definitions/StorageAccountCustomDetails", + "description": "The primary staging storage account input." + }, + "recoveryResourceGroupCustomInput": { + "$ref": "#/definitions/RecoveryResourceGroupCustomDetails", + "description": "The recovery resource group input." + }, + "recoveryReplicaDiskAccountType": { + "description": "The replica disk type. Its an optional value and will be same as source disk type if not user provided.", + "type": "string" + }, + "recoveryTargetDiskAccountType": { + "description": "The target disk type after failover. Its an optional value and will be same as source disk type if not user provided.", + "type": "string" + }, + "recoveryDiskEncryptionSetId": { + "description": "The recovery disk encryption set Id.", + "type": "string" + }, + "diskEncryptionInfo": { + "$ref": "#/definitions/DiskEncryptionInfo", + "description": "The recovery disk encryption information (for one / single pass flows)." + } + } + }, "A2ARecoveryPointDetails": { "description": "A2A provider specific recovery point details.", "type": "object", @@ -8197,6 +8521,120 @@ }, "x-ms-discriminator-value": "A2A" }, + "A2AReplicationIntentDetails": { + "description": "A2A provider specific settings.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ReplicationProtectionIntentProviderSpecificSettings" + } + ], + "properties": { + "fabricObjectId": { + "description": "The fabric specific object Id of the virtual machine.", + "type": "string" + }, + "policyId": { + "description": "The ID of Policy governing this PE.", + "type": "string" + }, + "primaryLocation": { + "description": "The primary location for the virtual machine.", + "type": "string" + }, + "recoveryLocation": { + "description": "The recovery location for the virtual machine.", + "type": "string" + }, + "recoverySubscriptionId": { + "description": "The recovery subscription Id of the virtual machine.", + "type": "string" + }, + "primaryFabricFriendlyName": { + "description": "The recovery fabric Name.", + "type": "string" + }, + "recoveryFabricFriendlyName": { + "description": "The recovery fabric Name.", + "type": "string" + }, + "primaryContainerFriendlyName": { + "description": "The primary container Name.", + "type": "string" + }, + "recoveryContainerFriendlyName": { + "description": "The recovery container Name.", + "type": "string" + }, + "recoveryAvailabilityType": { + "description": "The recovery availability type of the virtual machine.", + "type": "string" + }, + "vmDisks": { + "description": "The list of vm disk details.", + "type": "array", + "items": { + "$ref": "#/definitions/A2AVmDiskDetails" + } + }, + "vmManagedDisks": { + "description": "The list of vm managed disk details.", + "type": "array", + "items": { + "$ref": "#/definitions/A2AVmManagedDiskDetails" + } + }, + "recoveryResourceGroupId": { + "description": "The recovery resource group id.", + "type": "string" + }, + "recoveryAvailabilitySetId": { + "description": "The recovery availability set Id.", + "type": "string" + }, + "recoveryVirtualNetworkId": { + "description": "The recovery virtual network Id.", + "type": "string" + }, + "recoveryProximityPlacementGroupId": { + "description": "The recovery proximity placement group custom details.", + "type": "string" + }, + "autoProtectionOfDataDiskStatus": { + "description": "A value indicating whether the auto protection is enabled.", + "enum": [ + "Disabled", + "Enabled" + ], + "type": "string", + "x-ms-enum": { + "name": "AutoProtectionOfDataDiskStatus", + "modelAsString": true + } + }, + "multiVmGroupName": { + "description": "The multi vm group name.", + "type": "string" + }, + "multiVmGroupId": { + "description": "The multi vm group id.", + "type": "string" + }, + "recoveryBootDiagStorageAccountId": { + "description": "The boot diagnostic storage account.", + "type": "string" + }, + "diskEncryptionInfo": { + "$ref": "#/definitions/DiskEncryptionInfo", + "description": "The recovery disk encryption information (for two pass flows)." + }, + "recoveryAvailabilityZone": { + "description": "The recovery availability zone.", + "type": "string" + } + }, + "x-ms-discriminator-value": "A2A" + }, "A2AReprotectInput": { "description": "Azure specific reprotect input.", "type": "object", @@ -8416,6 +8854,24 @@ }, "x-ms-discriminator-value": "A2A" }, + "A2AVmDiskDetails": { + "description": "Azure VM disk details.", + "type": "object", + "properties": { + "diskUri": { + "description": "The disk Uri.", + "type": "string" + }, + "recoveryAzureStorageAccountId": { + "description": "The recovery VHD storage account Id.", + "type": "string" + }, + "primaryStagingAzureStorageAccountId": { + "description": "The primary staging storage account Id.", + "type": "string" + } + } + }, "A2AVmDiskInputDetails": { "description": "Azure VM disk input details.", "type": "object", @@ -8424,13 +8880,47 @@ "description": "The disk Uri.", "type": "string" }, - "recoveryAzureStorageAccountId": { - "description": "The recovery VHD storage account Id.", + "recoveryAzureStorageAccountId": { + "description": "The recovery VHD storage account Id.", + "type": "string" + }, + "primaryStagingAzureStorageAccountId": { + "description": "The primary staging storage account Id.", + "type": "string" + } + } + }, + "A2AVmManagedDiskDetails": { + "description": "Azure VM managed disk input details.", + "type": "object", + "properties": { + "diskId": { + "description": "The disk Id.", + "type": "string" + }, + "primaryStagingAzureStorageAccountId": { + "description": "The primary staging storage account Arm Id.", + "type": "string" + }, + "recoveryResourceGroupId": { + "description": "The target resource group Arm Id.", "type": "string" }, - "primaryStagingAzureStorageAccountId": { - "description": "The primary staging storage account Id.", + "recoveryReplicaDiskAccountType": { + "description": "The replica disk type.", "type": "string" + }, + "recoveryTargetDiskAccountType": { + "description": "The target disk type after failover.", + "type": "string" + }, + "recoveryDiskEncryptionSetId": { + "description": "The recovery disk encryption set Id.", + "type": "string" + }, + "diskEncryptionInfo": { + "$ref": "#/definitions/DiskEncryptionInfo", + "description": "The recovery disk encryption information (for one / single pass flows)." } } }, @@ -9213,6 +9703,37 @@ } } }, + "CreateProtectionIntentInput": { + "description": "Create protection intent input.", + "type": "object", + "properties": { + "properties": { + "$ref": "#/definitions/CreateProtectionIntentProperties", + "description": "Create protection intent input properties." + } + } + }, + "CreateProtectionIntentProperties": { + "description": "Create protection intent input properties.", + "type": "object", + "properties": { + "providerSpecificDetails": { + "$ref": "#/definitions/CreateProtectionIntentProviderSpecificDetails", + "description": "The ReplicationProviderInput. For A2A provider, it will be A2ACreateProtectionIntentInput object. For other providers, it can be null." + } + } + }, + "CreateProtectionIntentProviderSpecificDetails": { + "description": "Create protection intent provider specific input.", + "type": "object", + "properties": { + "instanceType": { + "description": "The class type.", + "type": "string" + } + }, + "discriminator": "instanceType" + }, "CreateRecoveryPlanInput": { "description": "Create recovery plan input class.", "required": [ @@ -9790,6 +10311,115 @@ }, "discriminator": "instanceType" }, + "ExistingProtectionProfile": { + "description": "Existing storage account input.", + "required": [ + "protectionProfileId" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ProtectionProfileCustomDetails" + } + ], + "properties": { + "protectionProfileId": { + "description": "The protection profile Arm Id. Throw error, if resource does not exists.", + "type": "string" + } + }, + "x-ms-discriminator-value": "Existing" + }, + "ExistingRecoveryAvailabilitySet": { + "description": "Existing recovery availability set input.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/RecoveryAvailabilitySetCustomDetails" + } + ], + "properties": { + "recoveryAvailabilitySetId": { + "description": "The recovery availability set Id. Will throw error, if resource does not exist.", + "type": "string" + } + }, + "x-ms-discriminator-value": "Existing" + }, + "ExistingRecoveryProximityPlacementGroup": { + "description": "Existing recovery proximity placement group input.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/RecoveryProximityPlacementGroupCustomDetails" + } + ], + "properties": { + "recoveryProximityPlacementGroupId": { + "description": "The recovery proximity placement group Id. Will throw error, if resource does not exist.", + "type": "string" + } + }, + "x-ms-discriminator-value": "Existing" + }, + "ExistingRecoveryRecoveryResourceGroup": { + "description": "Existing recovery resource group input.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/RecoveryResourceGroupCustomDetails" + } + ], + "properties": { + "recoveryResourceGroupId": { + "description": "The recovery resource group Id. Valid for V2 scenarios.", + "type": "string" + } + }, + "x-ms-discriminator-value": "Existing" + }, + "ExistingRecoveryVirtualNetwork": { + "description": "Existing recovery virtual network input.", + "required": [ + "recoveryVirtualNetworkId" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/RecoveryVirtualNetworkCustomDetails" + } + ], + "properties": { + "recoveryVirtualNetworkId": { + "description": "The recovery virtual network Id. Will throw error, if resource does not exist.", + "type": "string" + }, + "recoverySubnetName": { + "description": "The recovery subnet name.", + "type": "string" + } + }, + "x-ms-discriminator-value": "Existing" + }, + "ExistingStorageAccount": { + "description": "Existing storage account input.", + "required": [ + "azureStorageAccountId" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/StorageAccountCustomDetails" + } + ], + "properties": { + "azureStorageAccountId": { + "description": "The storage account Arm Id. Throw error, if resource does not exists.", + "type": "string" + } + }, + "x-ms-discriminator-value": "Existing" + }, "ExportJobDetails": { "description": "This class represents details for export jobs workflow.", "type": "object", @@ -15047,6 +15677,53 @@ } } }, + "NewProtectionProfile": { + "description": "New Protection profile input.", + "required": [ + "policyName", + "multiVmSyncStatus" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ProtectionProfileCustomDetails" + } + ], + "properties": { + "policyName": { + "description": "The protection profile input.", + "type": "string" + }, + "recoveryPointHistory": { + "format": "int32", + "description": "The duration in minutes until which the recovery points need to be stored.", + "type": "integer" + }, + "crashConsistentFrequencyInMinutes": { + "format": "int32", + "description": "The crash consistent snapshot frequency (in minutes).", + "type": "integer" + }, + "appConsistentFrequencyInMinutes": { + "format": "int32", + "description": "The app consistent snapshot frequency (in minutes).", + "type": "integer" + }, + "multiVmSyncStatus": { + "description": "A value indicating whether multi-VM sync has to be enabled. Value should be 'Enabled' or 'Disabled'.", + "enum": [ + "Enable", + "Disable" + ], + "type": "string", + "x-ms-enum": { + "name": "SetMultiVmSyncStatus", + "modelAsString": true + } + } + }, + "x-ms-discriminator-value": "New" + }, "Object": { "description": "Base of all objects.", "type": "object", @@ -15859,6 +16536,17 @@ } } }, + "ProtectionProfileCustomDetails": { + "description": "Protection Profile custom input.", + "type": "object", + "properties": { + "resourceType": { + "description": "The class type.", + "type": "string" + } + }, + "discriminator": "resourceType" + }, "ProviderError": { "description": "This class contains the error details per object.", "type": "object", @@ -16053,6 +16741,17 @@ } } }, + "RecoveryAvailabilitySetCustomDetails": { + "description": "Recovery Availability Set custom input.", + "type": "object", + "properties": { + "resourceType": { + "description": "The class type.", + "type": "string" + } + }, + "discriminator": "resourceType" + }, "RecoveryPlan": { "description": "Recovery plan details.", "type": "object", @@ -16952,6 +17651,28 @@ } } }, + "RecoveryProximityPlacementGroupCustomDetails": { + "description": "Recovery Proximity placement group custom input.", + "type": "object", + "properties": { + "resourceType": { + "description": "The class type.", + "type": "string" + } + }, + "discriminator": "resourceType" + }, + "RecoveryResourceGroupCustomDetails": { + "description": "Recovery Resource Group custom input.", + "type": "object", + "properties": { + "resourceType": { + "description": "The class type.", + "type": "string" + } + }, + "discriminator": "resourceType" + }, "RecoveryServicesProvider": { "description": "Provider details.", "type": "object", @@ -17063,6 +17784,17 @@ } } }, + "RecoveryVirtualNetworkCustomDetails": { + "description": "Recovery Virtual network custom input.", + "type": "object", + "properties": { + "resourceType": { + "description": "The class type.", + "type": "string" + } + }, + "discriminator": "resourceType" + }, "RemoveDisksInput": { "description": "Input for remove disk(s) operation.", "type": "object", @@ -17439,6 +18171,83 @@ } } }, + "ReplicationProtectionIntent": { + "description": "Replication protection intent.", + "allOf": [ + { + "$ref": "#/definitions/Resource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/ReplicationProtectionIntentProperties", + "description": "The custom data." + } + } + }, + "ReplicationProtectionIntentCollection": { + "description": "Replication protection intent objects collection.", + "type": "object", + "properties": { + "value": { + "description": "The Replication protection intent details.", + "type": "array", + "items": { + "$ref": "#/definitions/ReplicationProtectionIntent" + } + }, + "nextLink": { + "description": "The value of next link.", + "type": "string" + } + } + }, + "ReplicationProtectionIntentProperties": { + "description": "Replication protection intent custom data details.", + "type": "object", + "properties": { + "friendlyName": { + "description": "The name.", + "type": "string" + }, + "jobId": { + "description": "The job Id.", + "type": "string", + "readOnly": true + }, + "jobState": { + "description": "The job state.", + "type": "string", + "readOnly": true + }, + "isActive": { + "description": "A value indicating whether the intent object is active.", + "type": "boolean", + "readOnly": true + }, + "creationTimeUTC": { + "description": "The creation time in UTC.", + "type": "string", + "readOnly": true + }, + "providerSpecificDetails": { + "$ref": "#/definitions/ReplicationProtectionIntentProviderSpecificSettings", + "description": "The Replication provider custom settings." + } + } + }, + "ReplicationProtectionIntentProviderSpecificSettings": { + "description": "Replication provider specific settings.", + "type": "object", + "properties": { + "instanceType": { + "description": "Gets the Instance type.", + "type": "string", + "readOnly": true + } + }, + "discriminator": "instanceType" + }, "ReplicationProviderContainerUnmappingInput": { "description": "Provider specific input for unpairing operations.", "type": "object", @@ -17805,6 +18614,17 @@ } } }, + "StorageAccountCustomDetails": { + "description": "Storage account custom input.", + "type": "object", + "properties": { + "resourceType": { + "description": "The class type.", + "type": "string" + } + }, + "discriminator": "resourceType" + }, "StorageClassification": { "description": "Storage object definition.", "type": "object", diff --git a/specification/recoveryservicessiterecovery/resource-manager/readme.md b/specification/recoveryservicessiterecovery/resource-manager/readme.md index 4433d2f58926..8f810519daae 100644 --- a/specification/recoveryservicessiterecovery/resource-manager/readme.md +++ b/specification/recoveryservicessiterecovery/resource-manager/readme.md @@ -25,6 +25,10 @@ directive: - from: service.json suppress: OAV131 reason: Testing purpose. + + - from: service.json + suppress: R4010 + reason: Testing purpose ``` ## Configuration