Azure Site Recovery · Schema
MigrationItemCollection
Migration item collection.
Disaster RecoveryReplicationBusiness ContinuityFailoverMicrosoft AzureAzure Resource Manager
Properties
| Name | Type | Description |
|---|---|---|
| value | array | The MigrationItem items on this page |
| nextLink | string | The link to the next page of items |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/microsoft-azure-site-recovery/json-schema/microsoft-azure-site-recovery-migration-item-collection-schema.json",
"title": "MigrationItemCollection",
"description": "Migration item collection.",
"x-generated": "2026-11-12",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/microsoft-azure-site-recovery-replicationmigrationitems-api-openapi.yml#/components/schemas/MigrationItemCollection",
"type": "object",
"properties": {
"value": {
"type": "array",
"description": "The MigrationItem items on this page",
"items": {
"$ref": "#/$defs/MigrationItem"
}
},
"nextLink": {
"type": "string",
"format": "uri",
"description": "The link to the next page of items"
}
},
"required": [
"value"
],
"$defs": {
"CriticalJobHistoryDetails": {
"type": "object",
"description": "Critical past job details of the migration item.",
"properties": {
"jobName": {
"type": "string",
"description": "The job name.",
"readOnly": true
},
"jobId": {
"type": "string",
"description": "The ARM Id of the job being executed.",
"readOnly": true
},
"startTime": {
"type": "string",
"format": "date-time",
"description": "The start time of the job.",
"readOnly": true
},
"jobStatus": {
"type": "string",
"description": "The job state.",
"readOnly": true
}
}
},
"CurrentJobDetails": {
"type": "object",
"description": "Current job details of the migration item.",
"properties": {
"jobName": {
"type": "string",
"description": "The job name.",
"readOnly": true
},
"jobId": {
"type": "string",
"description": "The ARM Id of the job being executed.",
"readOnly": true
},
"startTime": {
"type": "string",
"format": "date-time",
"description": "The start time of the job.",
"readOnly": true
}
}
},
"HealthError": {
"type": "object",
"description": "Health Error.",
"properties": {
"innerHealthErrors": {
"type": "array",
"description": "The inner health errors. HealthError having a list of HealthError as child errors is problematic. InnerHealthError is used because this will prevent an infinite loop of structures when Hydra tries to auto-generate the contract. We are exposing the related health errors as inner health errors and all API consumers can utilize this in the same fashion as Exception -> InnerException.",
"items": {
"$ref": "#/$defs/InnerHealthError"
}
},
"errorSource": {
"type": "string",
"description": "Source of error."
},
"errorType": {
"type": "string",
"description": "Type of error."
},
"errorLevel": {
"type": "string",
"description": "Level of error."
},
"errorCategory": {
"type": "string",
"description": "Category of error."
},
"errorCode": {
"type": "string",
"description": "Error code."
},
"summaryMessage": {
"type": "string",
"description": "Summary message of the entity."
},
"errorMessage": {
"type": "string",
"description": "Error message."
},
"possibleCauses": {
"type": "string",
"description": "Possible causes of error."
},
"recommendedAction": {
"type": "string",
"description": "Recommended action to resolve error."
},
"creationTimeUtc": {
"type": "string",
"format": "date-time",
"description": "Error creation time (UTC)."
},
"recoveryProviderErrorMessage": {
"type": "string",
"description": "DRA error message."
},
"entityId": {
"type": "string",
"description": "ID of the entity."
},
"errorId": {
"type": "string",
"description": "The health error unique id."
},
"customerResolvability": {
"$ref": "#/$defs/HealthErrorCustomerResolvability",
"description": "Value indicating whether the health error is customer resolvable."
}
}
},
"HealthErrorCustomerResolvability": {
"type": "string",
"description": "Value indicating whether the health error is customer resolvable.",
"enum": [
"Allowed",
"NotAllowed"
],
"x-ms-enum": {
"name": "HealthErrorCustomerResolvability",
"modelAsString": true,
"values": [
{
"name": "Allowed",
"value": "Allowed",
"description": "Allowed"
},
{
"name": "NotAllowed",
"value": "NotAllowed",
"description": "NotAllowed"
}
]
}
},
"InnerHealthError": {
"type": "object",
"description": "Implements InnerHealthError class. HealthError object has a list of InnerHealthErrors as child errors. InnerHealthError is used because this will prevent an infinite loop of structures when Hydra tries to auto-generate the contract. We are exposing the related health errors as inner health errors and all API consumers can utilize this in the same fashion as Exception -> InnerException.",
"properties": {
"errorSource": {
"type": "string",
"description": "Source of error."
},
"errorType": {
"type": "string",
"description": "Type of error."
},
"errorLevel": {
"type": "string",
"description": "Level of error."
},
"errorCategory": {
"type": "string",
"description": "Category of error."
},
"errorCode": {
"type": "string",
"description": "Error code."
},
"summaryMessage": {
"type": "string",
"description": "Summary message of the entity."
},
"errorMessage": {
"type": "string",
"description": "Error message."
},
"possibleCauses": {
"type": "string",
"description": "Possible causes of error."
},
"recommendedAction": {
"type": "string",
"description": "Recommended action to resolve error."
},
"creationTimeUtc": {
"type": "string",
"format": "date-time",
"description": "Error creation time (UTC)."
},
"recoveryProviderErrorMessage": {
"type": "string",
"description": "DRA error message."
},
"entityId": {
"type": "string",
"description": "ID of the entity."
},
"errorId": {
"type": "string",
"description": "The health error unique id."
},
"customerResolvability": {
"$ref": "#/$defs/HealthErrorCustomerResolvability",
"description": "Value indicating whether the health error is customer resolvable."
}
}
},
"MigrationItem": {
"type": "object",
"description": "Migration item.",
"properties": {
"properties": {
"$ref": "#/$defs/MigrationItemProperties",
"description": "The migration item properties."
},
"location": {
"type": "string",
"description": "Resource Location"
}
},
"allOf": [
{
"$ref": "#/$defs/ProxyResource"
}
]
},
"MigrationItemOperation": {
"type": "string",
"description": "The allowed operations on the migration item based on the current migration state of the item.",
"enum": [
"DisableMigration",
"TestMigrate",
"TestMigrateCleanup",
"Migrate",
"StartResync",
"PauseReplication",
"ResumeReplication"
],
"x-ms-enum": {
"name": "MigrationItemOperation",
"modelAsString": true,
"values": [
{
"name": "DisableMigration",
"value": "DisableMigration",
"description": "DisableMigration"
},
{
"name": "TestMigrate",
"value": "TestMigrate",
"description": "TestMigrate"
},
{
"name": "TestMigrateCleanup",
"value": "TestMigrateCleanup",
"description": "TestMigrateCleanup"
},
{
"name": "Migrate",
"value": "Migrate",
"description": "Migrate"
},
{
"name": "StartResync",
"value": "StartResync",
"description": "StartResync"
},
{
"name": "PauseReplication",
"value": "PauseReplication",
"description": "PauseReplication"
},
{
"name": "ResumeReplication",
"value": "ResumeReplication",
"description": "ResumeReplication"
}
]
}
},
"MigrationItemProperties": {
"type": "object",
"description": "Migration item properties.",
"properties": {
"machineName": {
"type": "string",
"description": "The on-premise virtual machine name.",
"readOnly": true
},
"policyId": {
"type": "string",
"description": "The ARM Id of policy governing this item.",
"readOnly": true
},
"policyFriendlyName": {
"type": "string",
"description": "The name of policy governing this item.",
"readOnly": true
},
"recoveryServicesProviderId": {
"type": "string",
"description": "The recovery services provider ARM Id.",
"readOnly": true
},
"replicationStatus": {
"type": "string",
"description": "The replication status.",
"readOnly": true
},
"migrationState": {
"$ref": "#/$defs/MigrationState",
"description": "The migration status.",
"readOnly": true
},
"migrationStateDescription": {
"type": "string",
"description": "The migration state description.",
"readOnly": true
},
"lastTestMigrationTime": {
"type": "string",
"format": "date-time",
"description": "The last test migration time.",
"readOnly": true
},
"lastTestMigrationStatus": {
"type": "string",
"description": "The status of the last test migration.",
"readOnly": true
},
"lastMigrationTime": {
"type": "string",
"format": "date-time",
"description": "The last migration time.",
"readOnly": true
},
"lastMigrationStatus": {
"type": "string",
"description": "The status of the last migration.",
"readOnly": true
},
"testMigrateState": {
"$ref": "#/$defs/TestMigrationState",
"description": "The test migrate state.",
"readOnly": true
},
"testMigrateStateDescription": {
"type": "string",
"description": "The test migrate state description.",
"readOnly": true
},
"health": {
"$ref": "#/$defs/ProtectionHealth",
"description": "The consolidated health.",
"readOnly": true
},
"healthErrors": {
"type": "array",
"description": "The list of health errors.",
"items": {
"$ref": "#/$defs/HealthError"
},
"readOnly": true
},
"allowedOperations": {
"type": "array",
"description": "The allowed operations on the migration item based on the current migration state of the item.",
"items": {
"$ref": "#/$defs/MigrationItemOperation"
},
"readOnly": true
},
"currentJob": {
"$ref": "#/$defs/CurrentJobDetails",
"description": "The current job details.",
"readOnly": true
},
"criticalJobHistory": {
"type": "array",
"description": "The critical past job details.",
"items": {
"$ref": "#/$defs/CriticalJobHistoryDetails"
},
"readOnly": true,
"x-ms-identifiers": []
},
"eventCorrelationId": {
"type": "string",
"description": "The correlation Id for events associated with this migration item.",
"readOnly": true
},
"providerSpecificDetails": {
"$ref": "#/$defs/MigrationProviderSpecificSettings",
"description": "The migration provider custom settings."
}
}
},
"MigrationProviderSpecificSettings": {
"type": "object",
"description": "Migration provider specific settings.",
"properties": {
"instanceType": {
"type": "string",
"description": "Gets the instance type."
}
},
"required": [
"instanceType"
]
},
"MigrationState": {
"type": "string",
"description": "The migration status.",
"enum": [
"None",
"EnableMigrationInProgress",
"EnableMigrationFailed",
"DisableMigrationInProgress",
"DisableMigrationFailed",
"InitialSeedingInProgress",
"InitialSeedingFailed",
"Replicating",
"MigrationInProgress",
"MigrationSucceeded",
"MigrationFailed",
"ResumeInProgress",
"ResumeInitiated",
"SuspendingProtection",
"ProtectionSuspended",
"MigrationCompletedWithInformation",
"MigrationPartiallySucceeded"
],
"x-ms-enum": {
"name": "MigrationState",
"modelAsString": true,
"values": [
{
"name": "None",
"value": "None",
"description": "None"
},
{
"name": "EnableMigrationInProgress",
"value": "EnableMigrationInProgress",
"description": "EnableMigrationInProgress"
},
{
"name": "EnableMigrationFailed",
"value": "EnableMigrationFailed",
"description": "EnableMigrationFailed"
},
{
"name": "DisableMigrationInProgress",
"value": "DisableMigrationInProgress",
"description": "DisableMigrationInProgress"
},
{
"name": "DisableMigrationFailed",
"value": "DisableMigrationFailed",
"description": "DisableMigrationFailed"
},
{
"name": "InitialSeedingInProgress",
"value": "InitialSeedingInProgress",
"description": "InitialSeedingInProgress"
},
{
"name": "InitialSeedingFailed",
"value": "InitialSeedingFailed",
"description": "InitialSeedingFailed"
},
{
"name": "Replicating",
"value": "Replicating",
"description": "Replicating"
},
{
"name": "MigrationInProgress",
"value": "MigrationInProgress",
"description": "MigrationInProgress"
},
{
"name": "MigrationSucceeded",
"value": "MigrationSucceeded",
"description": "MigrationSucceeded"
},
{
"name": "MigrationFailed",
"value": "MigrationFailed",
"description": "MigrationFailed"
},
{
"name": "ResumeInProgress",
"value": "ResumeInProgress",
"description": "ResumeInProgress"
},
{
"name": "ResumeInitiated",
"value": "ResumeInitiated",
"description": "ResumeInitiated"
},
{
"name": "SuspendingProtection",
"value": "SuspendingProtection",
"description": "SuspendingProtection"
},
{
"name": "ProtectionSuspended",
"value": "ProtectionSuspended",
"description": "ProtectionSuspended"
},
{
"name": "MigrationCompletedWithInformation",
"value": "MigrationCompletedWithInformation",
"description": "MigrationCompletedWithInformation"
},
{
"name": "MigrationPartiallySucceeded",
"value": "MigrationPartiallySucceeded",
"description": "MigrationPartiallySucceeded"
}
]
}
},
"ProtectionHealth": {
"type": "string",
"description": "The health.",
"enum": [
"None",
"Normal",
"Warning",
"Critical"
],
"x-ms-enum": {
"name": "ProtectionHealth",
"modelAsString": true,
"values": [
{
"name": "None",
"value": "None",
"description": "None"
},
{
"name": "Normal",
"value": "Normal",
"description": "Normal"
},
{
"name": "Warning",
"value": "Warning",
"description": "Warning"
},
{
"name": "Critical",
"value": "Critical",
"description": "Critical"
}
]
}
},
"ProxyResource": {
"type": "object",
"title": "Proxy Resource",
"description": "The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location",
"allOf": [
{
"$ref": "#/$defs/Resource"
}
]
},
"Resource": {
"type": "object",
"title": "Resource",
"description": "Common fields that are returned in the response for all Azure Resource Manager resources",
"properties": {
"id": {
"type": "string",
"format": "arm-id",
"description": "Fully qualified resource ID for the resource. E.g. \"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}\"",
"readOnly": true
},
"name": {
"type": "string",
"description": "The name of the resource",
"readOnly": true
},
"type": {
"type": "string",
"description": "The type of the resource. E.g. \"Microsoft.Compute/virtualMachines\" or \"Microsoft.Storage/storageAccounts\"",
"readOnly": true
},
"systemData": {
"$ref": "#/$defs/systemData",
"description": "Azure Resource Manager metadata containing createdBy and modifiedBy information.",
"readOnly": true
}
},
"x-ms-azure-resource": true
},
"TestMigrationState": {
"type": "string",
"description": "The test migrate state.",
"enum": [
"None",
"TestMigrationInProgress",
"TestMigrationSucceeded",
"TestMigrationFailed",
"TestMigrationCleanupInProgress",
"TestMigrationCompletedWithInformation",
"TestMigrationPartiallySucceeded"
],
"x-ms-enum": {
"name": "TestMigrationState",
"modelAsString": true,
"values": [
{
"name": "None",
"value": "None",
"description": "None"
},
{
"name": "TestMigrationInProgress",
"value": "TestMigrationInProgress",
"description": "TestMigrationInProgress"
},
{
"name": "TestMigrationSucceeded",
"value": "TestMigrationSucceeded",
"description": "TestMigrationSucceeded"
},
{
"name": "TestMigrationFailed",
"value": "TestMigrationFailed",
"description": "TestMigrationFailed"
},
{
"name": "TestMigrationCleanupInProgress",
"value": "TestMigrationCleanupInProgress",
"description": "TestMigrationCleanupInProgress"
},
{
"name": "TestMigrationCompletedWithInformation",
"value": "TestMigrationCompletedWithInformation",
"description": "TestMigrationCompletedWithInformation"
},
{
"name": "TestMigrationPartiallySucceeded",
"value": "TestMigrationPartiallySucceeded",
"description": "TestMigrationPartiallySucceeded"
}
]
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/microsoft-azure-site-recovery-migration-item-collection"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.