Last updated: 04-16-2024
Download OpenAPI specification:Download
Nutanix Move (Move) is a cross-hypervisor mobility solution to move VMs with minimal downtime. Move helps streamline 'lift-and-shift' virtual machine (VM) migrations to a Nutanix Enterprise Cloud. Move provides:
This document covers APIs that are available in Move-5.2.0.
Refer to the Move user guide for more information related to the supported source to target migration details.
Note: Since the infrastructure underneath is completely different, a small downtime is incurred during cutover from any of the above sources to targets.
Move uses JWT token based bearer authentication.
The user provides username and password once to generate an authentication token (using the login API). This authentication token is added as an HTTP Authorization header every time a request is sent.
It is advised that the user revoke the authentication token using the Revoke API after completing required tasks.
Error codes
List of HTTP Status codes returned by Move application:
Error codes | Messages |
---|---|
200 | Successful operation |
201 | Created |
202 | Accepted |
204 | No Content |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
409 | Conflict |
422 | Unprocessable Entity |
500 | Internal Server Error |
501 | Not Implemented |
503 | Service unavailable |
This documentation helps in familiarizing with Nutanix Move V2 API workflow. The API's need to be executed in the following sequence to successfully migrate a VM using the Move application.
Authentication:
Inventory:
Migration:
Create a Migration plan by providing source information, target information, network mappings, schedule settings, and workload.
Prepare the VMs for Migration– in manual or automatic mode. If the preparation mode is set to 'manual', OS specific scripts are to be executed manually to prepare the source VMs.
Perform readiness checks to confirm if that particular migration plan is ready to start.
Start the Migration plan and wait for VMs to reach the cutover state. User can view workload details for a migration plan and the list of actions that can be performed on the current VM.
Perform cutover. The cutover process begins immediately and takes a few minutes. Once the cutover is complete, the VM is ready for use in the target provider.
Application:
Check if an upgrade is available and initiate an upgrade Users can also upload files to do an offline upgrade of the Move application.
In case of issues, the support bundle can be downloaded to provide logs and information about the current state of the VM.
Change Move appliance NTP servers configurations
Sample API Syntax: https://move.address/move/v2/configurations/appliance/ntpservers
Move provider configurations to be changed.
FailedNTPServers | Array of strings List of all failed NTP servers |
NTPServers | Array of strings List of all available NTP servers |
curl --request PUT \ --url https://www.nutanix.dev/move/v2/configurations/appliance/ntpservers \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "FailedNTPServers": [ "string" ], "NTPServers": [ "string" ] }'
{- "Spec": {
- "FailedNTPServers": [
- "0.",
- ""
], - "NTPServers": [
- "pool.ntp.org",
- "time.google.com"
]
}
}
Change Move appliance snapshot configurations
Sample API Syntax: https://move.address/move/v2/configurations/appliance/providers/snapshots
Move provider configurations to be changed.
CycleDurationAHV | string Snapshot cycle duration for AHV |
CycleDurationAWS | string Snapshot cycle duration for AWS |
CycleDurationAzure | string Snapshot cycle duration for Azure |
CycleDurationESX | string Snapshot cycle duration for ESX |
CycleDurationHyperV | string Snapshot cycle duration for Hyper V |
curl --request PUT \ --url https://www.nutanix.dev/move/v2/configurations/appliance/providers/snapshots \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "CycleDurationAHV": "string", "CycleDurationAWS": "string", "CycleDurationAzure": "string", "CycleDurationESX": "string", "CycleDurationHyperV": "string" }'
{- "Spec": {
- "CycleDurationAHV": "600s",
- "CycleDurationAWS": "600s",
- "CycleDurationAzure": "600s",
- "CycleDurationESX": "600s",
- "CycleDurationHyperV": "600s"
}
}
Changes the Move application information. Details like Telemetry on, Eula Accepted and more can be edited using this API.
Sample API Syntax: https://move.address/move/v2/appinfo
Move application information to be changed.
APIVersion | string Move API Version. |
object (AppInfo) Move application Information |
curl --request PUT \ --url https://www.nutanix.dev/move/v2/appinfo \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "APIVersion": "string", "Spec": { "CbtApiVersion": "string", "CbtDriverLinVersion": "string", "CbtDriverWinVersion": "string", "CbtVerifyVersion": "string", "DiskRdrVersion": "string", "EulaAccepted": true, "Reverse": true, "State": 0, "TelemetryOn": true, "TimezoneAbbr": "string", "UTCOffsetHHMM": "string", "Version": "string" } }'
{- "APIVersion": "string",
- "MetaData": {
- "Count": 0,
- "CreationTime": "string",
- "Kind": "string",
- "LastUpdateTime": "string",
- "Name": "string",
- "SpecVersion": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}, - "Spec": {
- "password": "string",
- "username": "string"
}, - "Status": {
- "CbtApiVersion": "string",
- "CbtDriverLinVersion": "string",
- "CbtDriverWinVersion": "string",
- "CbtVerifyVersion": "string",
- "DiskRdrVersion": "string",
- "EulaAccepted": true,
- "Reverse": true,
- "State": 0,
- "TelemetryOn": true,
- "TimezoneAbbr": "string",
- "UTCOffsetHHMM": "string",
- "Version": "string"
}
}
Configures the Move application properties. For example:
Move application properties to be configured.
APIVersion | string Move API version. |
object (Configuration) Move application configuration information. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/configure \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "APIVersion": "string", "Spec": { "EulaAccepted": true, "NewPassword": "string", "SetNewPassword": true, "TelemetryOn": true } }'
{- "Error": {
- "Message": "Invalid input parameter."
}
}
GET /move/v2/supportbundle API downloads the support bundle requested earlier.
GET /move/v2/supportbundle/status API tracks the status of bundling. Once ready, use the POST /move/v2/supportbundle API to trigger the download of the support bundle containing information about the current state of the VM and logs.
Sample API Syntax: https://move.address/move/v2/supportbundle
curl --request GET \ --url https://www.nutanix.dev/move/v2/supportbundle \ --header 'Accept: application/json, application/x-gzip' \ --header 'Authorization: Bearer <your_access_token>' \
Gets the Move appliance configurations.
Sample API Syntax: https://move.address/move/v2/configurations/appliance
curl --request GET \ --url https://www.nutanix.dev/move/v2/configurations/appliance \ --header 'Accept: application/json' \
{- "Spec": {
- "DockerIP": "172.17.0.11",
- "NTPServers": [
- "pool.ntp.org",
- "time.google.com"
], - "ProviderConfig": {
- "ConfigurationsAHV": {
- "CycleDuration": "600s"
}, - "ConfigurationsAWS": {
- "CycleDuration": "600s"
}, - "ConfigurationsAzure": {
- "CycleDuration": "600s"
}, - "ConfigurationsESX": {
- "CycleDuration": "600s"
}, - "ConfigurationsHyperV": {
- "CycleDuration": "600s"
}
}
}
}
Gets the Move appliance docker bridge IP.
Sample API Syntax: https://move.address/move/v2/configurations/appliance/dockerip
curl --request GET \ --url https://www.nutanix.dev/move/v2/configurations/appliance/dockerip \ --header 'Accept: application/json' \
{- "Spec": {
- "DockerIp": "172.17.0.1"
}
}
Gets the Move appliance NTP servers.
Sample API Syntax: https://move.address/move/v2/configurations/appliance/ntpservers
curl --request GET \ --url https://www.nutanix.dev/move/v2/configurations/appliance/ntpservers \ --header 'Accept: application/json' \
{- "Spec": {
- "NTPServers": [
- "pool.ntp.org",
- "time.google.com"
]
}
}
Gets the Move appliance snapshots configurations.
Sample API Syntax: https://move.address/move/v2/configurations/appliance/providers/snapshots
curl --request GET \ --url https://www.nutanix.dev/move/v2/configurations/appliance/providers/snapshots \ --header 'Accept: application/json' \
{- "Spec": {
- "CycleDurationAHV": "600s",
- "CycleDurationAWS": "600s",
- "CycleDurationAzure": "600s",
- "CycleDurationESX": "600s",
- "CycleDurationHyperV": "600s"
}
}
Gets the Move application information like:
curl --request GET \ --url https://www.nutanix.dev/move/v2/appinfo \ --header 'Accept: application/json' \
{- "Status": {
- "CbtApiVersion": "3.5.0",
- "CbtDriverLinVersion": "3.5.0",
- "CbtDriverWinVersion": "3.5.0",
- "CbtVerifyVersion": "3.5.0",
- "DiskRdrVersion": "3.5.0",
- "EulaAccepted": true,
- "Reverse": true,
- "State": 1,
- "TelemetryOn": true,
- "Timezone": "Pacific Standard Time",
- "TimezoneAbbr": "PST",
- "UTCOffsetHHMM": "-08:00",
- "Version": "3.5.2"
}
}
Tracks the status of support bundle containing information about the current state of the VM and logs.
Sample API Syntax: https://move.address/move/v2/supportbundle/status
curl --request GET \ --url https://www.nutanix.dev/move/v2/supportbundle/status \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \
{- "SupportBundleResponse": {
- "State": "InProgress"
}
}
POST /move/v2/supportbundle API requests the support bundle containing information about the current state of the VM and logs.
Related APIs
curl --request POST \ --url https://www.nutanix.dev/move/v2/supportbundle \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \
{- "ApiVersion": "string",
- "Code": 0,
- "Kind": "string",
- "Message": "string",
- "State": "string"
}
Create a new bandwidth capacity policy
The bandwidth capacity policy details
IsActive | boolean Default: true Indicates if the policy is active or not. |
MatchExpression required | string The expression used to determine if the policy applies to a particular VM. |
Name required | string Name of the policy |
required | Array of objects (BandwidthCapSchedule) The list of cron schedules |
required | Array of objects (BandwidthCapWindowSchedule) The list of cron schedules with start and end time details. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/plans/bwcap/policies \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "IsActive": true, "MatchExpression": "string", "Name": "string", "Schedules": [ { "BwcapMbps": 0, "CronExpr": "string" } ], "WindowSchedules": [ { "BwcapMbps": 0, "DaysOfTheWeek": [ "string" ], "EndTimeHours": 0, "EndTimeMins": 0, "StartTimeHours": 0, "StartTimeMins": 0 } ] }'
{- "BandwidthCapPolicyDef": {
- "IsActive": true,
- "MatchExpression": "SourceHostname==\"10.46.17.154\"",
- "Name": "Foo",
- "Schedules": [
- {
- "BwcapMbps": 200,
- "CronExpr": "22 17 * * TUE,FRI,SAT"
}
], - "WindowSchedules": [
- {
- "BwcapMbps": 100,
- "DaysOfTheWeek": [
- "MON",
- "TUE",
- "WED",
- "THU",
- "FRI"
], - "EndTimeHours": 17,
- "EndTimeMins": 22,
- "StartTimeHours": 9,
- "StartTimeMins": 0
}
]
}, - "CreatedAt": "2021-10-15T00:27:17.741Z",
- "UUID": "16b10589-988c-46e2-aafa-57e0a85c1e5d",
- "UpdatedAt": "2021-10-15T00:27:17.741Z"
}
Delete a specific bandwidth capacity policy
policyuuid required | string The UUID of the policy |
curl --request DELETE \ --url https://www.nutanix.dev/move/v2/plans/bwcap/policies/{policyuuid} \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \
{- "ApiVersion": "string",
- "Code": 0,
- "Kind": "string",
- "Message": "string",
- "State": "string"
}
Get the bandwidth capacity policies
curl --request POST \ --url https://www.nutanix.dev/move/v2/plans/bwcap/policies/list \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \
[- {
- "BandwidthCapPolicyDef": {
- "IsActive": true,
- "MatchExpression": "string",
- "Name": "string",
- "Schedules": [
- {
- "BwcapMbps": 0,
- "CronExpr": "string"
}
], - "WindowSchedules": [
- {
- "BwcapMbps": 0,
- "DaysOfTheWeek": [
- "SUN"
], - "EndTimeHours": 23,
- "EndTimeMins": 59,
- "StartTimeHours": 23,
- "StartTimeMins": 59
}
]
}, - "CreatedAt": "2019-08-24T14:15:22Z",
- "UUID": "string",
- "UpdatedAt": "2019-08-24T14:15:22Z"
}
]
Get details of a specific bandwidth capacity policy
policyuuid required | string The UUID of the policy |
curl --request GET \ --url https://www.nutanix.dev/move/v2/plans/bwcap/policies/{policyuuid} \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \
{- "BandwidthCapPolicyDef": {
- "IsActive": true,
- "MatchExpression": "string",
- "Name": "string",
- "Schedules": [
- {
- "BwcapMbps": 0,
- "CronExpr": "string"
}
], - "WindowSchedules": [
- {
- "BwcapMbps": 0,
- "DaysOfTheWeek": [
- "SUN"
], - "EndTimeHours": 23,
- "EndTimeMins": 59,
- "StartTimeHours": 23,
- "StartTimeMins": 59
}
]
}, - "CreatedAt": "2019-08-24T14:15:22Z",
- "UUID": "string",
- "UpdatedAt": "2019-08-24T14:15:22Z"
}
Update a specific bandwidth capacity policy
policyuuid required | string The UUID of the policy |
The bandwidth capacity policy details
IsActive | boolean Default: true Indicates if the policy is active or not. |
MatchExpression required | string The expression used to determine if the policy applies to a particular VM. |
Name required | string Name of the policy |
required | Array of objects (BandwidthCapSchedule) The list of cron schedules |
required | Array of objects (BandwidthCapWindowSchedule) The list of cron schedules with start and end time details. |
curl --request PUT \ --url https://www.nutanix.dev/move/v2/plans/bwcap/policies/{policyuuid} \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "IsActive": true, "MatchExpression": "string", "Name": "string", "Schedules": [ { "BwcapMbps": 0, "CronExpr": "string" } ], "WindowSchedules": [ { "BwcapMbps": 0, "DaysOfTheWeek": [ "string" ], "EndTimeHours": 0, "EndTimeMins": 0, "StartTimeHours": 0, "StartTimeMins": 0 } ] }'
{- "BandwidthCapPolicyDef": {
- "IsActive": true,
- "MatchExpression": "string",
- "Name": "string",
- "Schedules": [
- {
- "BwcapMbps": 0,
- "CronExpr": "string"
}
], - "WindowSchedules": [
- {
- "BwcapMbps": 0,
- "DaysOfTheWeek": [
- "SUN"
], - "EndTimeHours": 23,
- "EndTimeMins": 59,
- "StartTimeHours": 23,
- "StartTimeMins": 59
}
]
}, - "CreatedAt": "2019-08-24T14:15:22Z",
- "UUID": "string",
- "UpdatedAt": "2019-08-24T14:15:22Z"
}
Gets regional pricing details for the specified Provider UUID. The information retrieved includes:
region required | string The region ( one of us-east-1 or ap-south-1 ) |
provideruuid required | string Provider UUID |
curl --request GET \ --url https://www.nutanix.dev/move/v2/cloudpricing/{provideruuid}/{region} \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \
{- "CostPerThousandGetSnapShotBlockAPICalls": 0.1,
- "DataEgressCostPerGiB": 0.1,
- "DeltaSyncDataOverheadMultiplier": 0.1
}
Cancels the events CSVfile download if the download is in a ready or in-progress state.
Sample API Syntax: https://move.address/move/v2/events/download/cancel
curl --request GET \ --url https://www.nutanix.dev/move/v2/events/download/cancel \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \
{- "ApiVersion": "string",
- "Code": 0,
- "Kind": "string",
- "Message": "string",
- "State": "string"
}
POST /move/v2/events/download API requests to download all events as per the filter criterion
Sample API Syntax: https://move.address/move/v2/events/download
Input to download the events csv file
object (EventsFilter) Filter for listing Move Events. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/events/download \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "Filter": { "EventNames": [ "string" ], "EventStatuses": [ "string" ], "EventTypes": [ "string" ], "IamNames": [ "string" ], "MpNames": [ "string" ], "SourcePaths": [ "string" ], "TargetPaths": [ "string" ], "UserNames": [ "string" ], "VmNames": [ "string" ] } }'
{- "TaskUuid": "60e7d9b1-e34e-4d60-9bcd-0411d7a448bf"
}
GET /move/v2/events/download downloads the events csv file.
GET /move/v2/download/status API tracks the status of csv file creation. Use the POST /move/v2/events/download API to trigger the events csv file creation.
Sample API Syntax: https://move.address/move/v2/events/download
curl --request GET \ --url https://www.nutanix.dev/move/v2/events/download \ --header 'Accept: application/x-gzip' \ --header 'Authorization: Bearer <your_access_token>' \
Get the list of Move events.
Input :-
Get the list of events for the input entities
object (EventsFilter) Filter for listing Move Events. | |
required | object (PaginationCriteria) Used as input for lists with pagination |
curl --request POST \ --url https://www.nutanix.dev/move/v2/events \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "Filter": { "EventNames": [ "string" ], "EventStatuses": [ "string" ], "EventTypes": [ "string" ], "IamNames": [ "string" ], "MpNames": [ "string" ], "SourcePaths": [ "string" ], "TargetPaths": [ "string" ], "UserNames": [ "string" ], "VmNames": [ "string" ] }, "PaginationCriteria": { "PageNumber": 0, "RecordsPerPage": 0 } }'
{- "Events": [
- {
- "Event": {
- "CreatedTime": 1562818697155631000,
- "EndTime": 1562818697155631000,
- "EntityUuid": "c46daad6-16af-4ed5-9726-381a816e4abf",
- "EventCode": 2,
- "EventId": "63abd573-768b-4f7b-8aab-68c8ef311656",
- "EventName": "Create Snapshot",
- "EventStatus": 3,
- "EventType": 1,
- "FailureNotes": "Time out error",
- "IsCyclic": 1,
- "LastUpdatedTime": "1562818697155631000,",
- "MpName": "Migration plan 1",
- "MpUuid": "ab69b78b-f415-4b5a-8953-f1e083c1f379",
- "Notes": "Snapshot-1",
- "VmName": "VM1",
- "VmUuid": "c46daad6-16af-4ed5-9726-381a816e4abf"
}
}
], - "MetaData": {
- "EventsFilters": {
- "EventNames": {
- "FilterName": "EventNames",
- "Items": [
- "Delete All Move Snapshots",
- "Start VM Migration",
- "Cleanup Source"
]
}, - "EventStatuses": {
- "FilterName": "EventStatuses",
- "Items": [
- "Defunct",
- "Failed",
- "In Progress"
]
}, - "EventTypes": {
- "FilterName": "EventTypes",
- "Items": [
- "VM Migration",
- "Migration Plan",
- "Global",
- "Files Migration"
]
}, - "IamNames": {
- "FilterName": "IamNames",
- "Items": [
- "1.2.3.4"
]
}, - "MpNames": {
- "FilterName": "MpNames",
- "Items": [
- "MP-Azure",
- "MP-Aws"
]
}, - "SourcePaths": {
- "FilterName": "SourcePaths",
- "Items": [
- "nfs-share/dir1",
- "smb-share/dir2"
]
}, - "TargetPaths": {
- "FilterName": "TargetPaths",
- "Items": [
- "nfs-share/dir1",
- "smb-share/dir2"
]
}, - "UserNames": {
- "FilterName": "UserNames",
- "Items": [
- "user1",
- "abc@mail.com"
]
}, - "VmNames": {
- "FilterName": "VmNames",
- "Items": [
- "W2K12-300G-disk",
- "centos-8-vm-1"
]
}
}
}, - "PaginationDetails": {
- "PageNumber": 2,
- "RecordsPerPage": 10,
- "TotalPages": 5,
- "TotalRecords": 45
}
}
Tracks the status of events csv file bundle
Sample API Syntax: https://move.address/move/v2/events/download/status
curl --request GET \ --url https://www.nutanix.dev/move/v2/events/download/status \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \
{- "EventsFileResponse": {
- "State": "InProgress"
}
}
Deregisters an IAM provider from Move.
id required | string <uuid> IAM provider UUID. |
IAM provider information required to deregister a provider.
ForceDeregister | boolean Default: false Forcefully deregister IAM provider from Move. |
object (PcIamDeregisterInfo) PC access information. |
curl --request DELETE \ --url https://www.nutanix.dev/move/v2/iamproviders/{id} \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \
{- "APIVersion": "string",
- "MetaData": {
- "Count": 0,
- "CreationTime": "string",
- "Kind": "string",
- "LastUpdateTime": "string",
- "Name": "string",
- "SpecVersion": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}, - "Status": {
- "Message": "string",
- "State": "string"
}
}
Displays all IAM providers registered with Move. Also, this API is used to fetch UI login details for IAM providers
curl --request GET \ --url https://www.nutanix.dev/move/v2/iamproviders/view \ --header 'Accept: application/json' \
{- "Entities": [
- {
- "UUID": "3af948bf-72ed-4fe8-90f5-f1d3cf592c7d"
}, - {
- "DisplayName": "iam_provider_name"
},
]
}
Generates authentication token from user credentials, refresh token or authorization code (generated during UI authentication) using a given IAM provider.
id required | string <uuid> IAM provider UUID. |
grantType | string Enum: "PASSWORD" "AUTHORIZATION_CODE" "REFRESH_TOKEN" Type of method used for generating authentication code. |
username | string The login username. Only considered when grant type is "PASSWORD". |
password | string The login password. Only considered when grant type is "PASSWORD". |
authCode | string The user authorization code. Only considered when grant type is "AUTHORIZATION_CODE". |
refreshToken | string The refresh token. Only considered when grant type is "REFRESH_TOKEN". |
curl --request POST \ --url https://www.nutanix.dev/move/v2/iamproviders/{id}/token \ --header 'Accept: application/json' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data '{ "authCode": "string", "grantType": "PASSWORD", "password": "string", "refreshToken": "string", "username": "string" }'
{- "AccessToken": "xxx.yyy.zzz",
- "Expiry": 1704067200,
- "IamProviderUuid": "3af948bf-72ed-4fe8-90f5-f1d3cf592c7d",
- "RefreshToken": "yyy",
- "Username": "abc@mail.com"
}
Gets details of the IAM provider whose UUID is specified.
id required | string <uuid> IAM Provider UUID. |
curl --request GET \ --url https://www.nutanix.dev/move/v2/iamproviders/{id} \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \
{- "MetaData": {
- "UUID": "3af948bf-72ed-4fe8-90f5-f1d3cf592c7d"
}, - "Spec": {
- "PcInfo": {
- "IPorFQDN": "my_pc_ip"
}, - "RolesMap": [
- {
- "Role": "MoveAdmin",
- "Usernames": [
- "user1",
- "abc@mail.com"
]
}
], - "Type": "PC",
- "UUID": "3af948bf-72ed-4fe8-90f5-f1d3cf592c7d"
}
}
curl --request GET \ --url https://www.nutanix.dev/move/v2/iamproviders \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \
{- "Entities": [
- {
- "PcInfo": {
- "IPorFQDN": "my_pc_ip"
}, - "RolesMap": [
- {
- "Role": "MoveAdmin",
- "Usernames": [
- "user1",
- "abc@mail.com"
]
}
], - "Type": "PC",
- "UUID": "3af948bf-72ed-4fe8-90f5-f1d3cf592c7d"
}
]
}
Registers a new IAM provider with Move.
Currently, only Prism Central is supported as an IAM provider.
IAM provider information required to register a new provider.
object (PcIamRegisterInfo) PC access information. | |
Array of objects (AuthRoleMap) | |
Type required | string Value: "PC" IAM provider type. Currently only PC is supported as IAM provider. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/iamproviders \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "PcIamRegisterInfo": { "IPorFQDN": "string", "Password": "string", "Username": "string" }, "RolesMap": [ { "Role": "MoveAdmin", "Usernames": [ "string" ] } ], "Type": "PC" }'
{- "MetaData": {
- "UUID": "3af948bf-72ed-4fe8-90f5-f1d3cf592c7d"
}, - "Spec": {
- "PcInfo": {
- "IPorFQDN": "my_pc_ip"
}, - "RolesMap": [
- {
- "Role": "MoveAdmin",
- "Usernames": [
- "user1",
- "abc@mail.com"
]
}
], - "Type": "PC",
- "UUID": "3af948bf-72ed-4fe8-90f5-f1d3cf592c7d"
}
}
Updates details for an existing IAM provider.
Currently, only the user list update operation is allowed.
id required | string <uuid> IAM provider UUID. |
IAM provider information to be updated.
required | Array of objects (AuthRoleMap) |
curl --request PUT \ --url https://www.nutanix.dev/move/v2/iamproviders/{id} \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "RolesMap": [ { "Role": "MoveAdmin", "Usernames": [ "string" ] } ] }'
{- "MetaData": {
- "UUID": "3af948bf-72ed-4fe8-90f5-f1d3cf592c7d"
}, - "Spec": {
- "PcInfo": {
- "IPorFQDN": "my_pc_ip"
}, - "RolesMap": [
- {
- "Role": "MoveAdmin",
- "Usernames": [
- "user1",
- "abc@mail.com"
]
}
], - "Type": "PC",
- "UUID": "3af948bf-72ed-4fe8-90f5-f1d3cf592c7d"
}
}
Cancels scheduled/ongoing migration for the provided plan UUID.
Sample API Syntax: https://move.address/move/v2/plans/867b4a4f-cb8c-4416-8d7e-26e033023aa4/cancel
id required | string Migration plan UUID |
curl --request POST \ --url https://www.nutanix.dev/move/v2/plans/{id}/cancel \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \
{- "ApiVersion": "string",
- "Code": 0,
- "Kind": "string",
- "Message": "string",
- "State": "string"
}
Creates a new migration plan.
Information required to create a migration plan include:
Information required to create new migration plan.
APIVersion | string Move API version |
object (MetaData) Metadata information | |
object (Plan) Plan information | |
Type | string Migration Plan type |
curl --request POST \ --url https://www.nutanix.dev/move/v2/plans \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "APIVersion": "string", "MetaData": { "Count": 0, "CreationTime": "string", "Kind": "string", "LastUpdateTime": "string", "Name": "string", "SpecVersion": "string", "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb" }, "Spec": { "Name": "string", "NetworkMappings": [ { "SourceNetworkID": "string", "TargetNetworkID": "string", "TargetSecurityGroupIDs": [ "string" ], "TargetSubnetID": "string", "TestNetworkID": "string", "TestSecurityGroupIDs": [ "string" ], "TestSubnetID": "string" } ], "Settings": { "Bandwidth": 0, "CategoriesMapping": { "property1": [ "string" ], "property2": [ "string" ] }, "GuestPrepMode": "string", "NicConfigMode": "retain", "Owner": "string", "Project": "b4d15375-1097-4c96-a4c4-4cb5809b05bb", "Schedule": { "RWEndTimeAtEpochSec": 0, "RWStartTimeAtEpochSec": 0, "ScheduleAtEpochSec": 0 }, "SkipIPRetentionUI": true, "SkipUninstallGuestToolsUI": true, "SourceTargetCategoriesMap": [ { "SourceKey": "string", "SourceValue": "string", "TargetKey": "string", "TargetValue": "string" } ], "VMTimeZone": "string" }, "SourceInfo": { "AOSProviderAttrs": { "ClusterUUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb", "ContainerUUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb" }, "AWSProviderAttrs": { "AgentNetworkID": "string", "AvailabilityZone": "string", "RegionID": "string" }, "AzureProviderAttrs": { "RegionID": "string", "ResourceGroup": "string" }, "ProviderUUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb" }, "TargetInfo": { "AOSProviderAttrs": { "ClusterUUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb", "ContainerUUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb" }, "AWSProviderAttrs": { "AgentNetworkID": "string", "AvailabilityZone": "string", "RegionID": "string" }, "AzureProviderAttrs": { "RegionID": "string", "ResourceGroup": "string" }, "ProviderUUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb" }, "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb", "Workload": { "Shares": [ { "ErrorString": "string", "ProtocolType": "string", "ShareMigrationCustomizationConfig": { "AdvancedNFSOptions": { "AuthType": "Sys", "HardLinkOptimization": true }, "MigrationMode": "Sync" }, "SourcePath": "string", "SourceShareReference": { "IsNestedPath": true, "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb" }, "TargetPath": "string", "TargetShareReference": { "IsNestedPath": true, "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb" }, "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb", "Unchanged": true, "ValidationStatus": "string" } ], "Type": "VM", "VMs": [ { "AllowUVMOps": true, "CategoriesMapping": { "property1": [ "string" ], "property2": [ "string" ] }, "CreatePublicIpAddress": true, "EnableMemoryOvercommit": true, "GuestPrepMode": "manual", "Owner": "string", "PowerOffForpRDMtovRDMConversion": true, "RetainMacAddress": true, "RetainUserData": true, "SkipCdrom": true, "SkipIPRetention": true, "TimeZone": "string", "UninstallGuestTools": true, "VMCustomizationConfig": { "AWSVMConfig": { "AMIID": "string", "InstanceType": "string" }, "AzureVMConfig": { "DiskCategory": "string", "VMSize": "string" } }, "VMCustomizeType": "replicate", "VMCustomizedNicsInfo": { "MetaInfo": { "ConfigMode": "retain", "IsConfigured": true, "VmUuid": "string" }, "NicsInfo": [ { "IpsInfo": [ { "DnsIps": "string", "Gateway": "string", "PrefixLength": 0, "SourceIpAddress": "string", "TargetIpAddress": "string" } ], "Mac": "string", "NetworkName": "string" } ] }, "VMPriority": "High", "VMReference": { "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb", "VMID": "string" } } ] } }, "Type": "string" }'
{- "MetaData": {
- "Actions": [
- "START",
- "EDIT",
- "DELETE"
], - "CreatedTime": 1695975103130976000,
- "DataInBytes": 4404476945,
- "ElapsedTime": { },
- "ErrorReasons": null,
- "FilesStateCounts": { },
- "FilesStatus": null,
- "Name": "mp-1695975048515649",
- "NumEntities": 1,
- "NumVMs": 1,
- "Schedule": {
- "ScheduleAtEpochSec": -1
}, - "SourceInfo": {
- "Name": "10.46.17.155",
- "Type": "VMWARE_ESXI_VCENTER",
- "UUID": "8479b87b-bf1d-4cc0-b9a7-cdfbf1ecb06f"
}, - "StateString": "MigrationPlanStateUninitialized",
- "StatusString": "StatusUnknown",
- "TargetInfo": {
- "Cluster": {
- "Name": "auto_cluster_prod_aketi_pushkaram_4f392f35f214",
- "Type": "AOS_AHV_PE",
- "UUID": "0005d054-6866-fff1-0000-000000029844"
}, - "Name": "10.46.17.178",
- "Type": "AOS_AHV_PE",
- "UUID": "f5524029-156f-4ce5-a29c-082f681b211d"
}, - "UUID": "2df12bd0-2399-49ec-ac85-740963b9ed0b",
- "VMStateCounts": { },
- "VMStatus": null,
- "ValidationWarnings": null
}, - "Spec": {
- "Name": "mp-1695975048515649",
- "NetworkMappings": [
- {
- "SourceNetworkID": "static",
- "TargetNetworkID": "0380048f-cb9e-40ee-8437-1103ea9d130b",
- "TargetSecurityGroupIDs": null,
- "TestNetworkID": "af013a14-f9d3-44b1-82bd-32ba1db2a6cb",
- "TestSecurityGroupIDs": null
}, - {
- "SourceNetworkID": "Net-115",
- "TargetNetworkID": "b3b4dd7b-5a63-4b2f-a4b1-10562193504d",
- "TargetSecurityGroupIDs": null,
- "TestNetworkID": "af013a14-f9d3-44b1-82bd-32ba1db2a6cb",
- "TestSecurityGroupIDs": null
}, - {
- "SourceNetworkID": "VM Network",
- "TargetNetworkID": "c4b44de7-a123-4391-a1ca-d78c733ba2a1",
- "TargetSecurityGroupIDs": null,
- "TestNetworkID": "af013a14-f9d3-44b1-82bd-32ba1db2a6cb",
- "TestSecurityGroupIDs": null
}
], - "SourceInfo": {
- "ProviderUUID": "8479b87b-bf1d-4cc0-b9a7-cdfbf1ecb06f"
}, - "TargetInfo": {
- "AOSProviderAttrs": {
- "ClusterUUID": "0005d054-6866-fff1-0000-000000029844",
- "ContainerUUID": "3f1023bb-6255-424c-9c40-d1fb0963d08a"
}, - "ProviderUUID": "f5524029-156f-4ce5-a29c-082f681b211d"
}, - "UUID": "2df12bd0-2399-49ec-ac85-740963b9ed0b",
- "Workload": {
- "Shares": null,
- "Type": "VM",
- "VMs": [
- {
- "AllowUVMOps": true,
- "GuestPrepMode": "auto",
- "PowerOffForpRDMtovRDMConversion": true,
- "UninstallGuestTools": true,
- "VMCustomizeType": "static",
- "VMPriority": "Medium",
- "VMReference": {
- "UUID": "61a0e007-05c9-5df7-bf3f-2cd67ee10e43",
- "VMID": "vm-39419"
}
}
]
}
}, - "Status": { }
}
Given a migration plan UUID and a valid workload UUID, this API updates customizable workload properties in target.
Sample API Syntax: https://move.address/move/v2/plans/867b4a4f-cb8c-4416-8d7e-26e033023aa4/workloads/91cea36d-c857-4092-b232-d46484ee3205/custom
wid required | string Workload UUID |
id required | string Migration plan UUID |
Information required to update workload custom properties
APIVersion required | string Move API version. |
required | object (WorkloadCustomPropertiesReq) Update request of workload properties. |
required | object (MetaDataWorkloadCustomProperties) Metadata of the customized workload properties. |
curl --request PUT \ --url https://www.nutanix.dev/move/v2/plans/{id}/workloads/{wid}/custom \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "APIVersion": "string", "CustomProperties": { "Type": "VmCustomPropertiesInfo", "VmCustomPropertiesInfo": { "Source": { "GenericVmCustomProperties": { "Memory": 0, "Name": "string", "NumCDROMs": 0, "NumCoresPerSocket": 0, "NumDisks": 0, "NumNICs": 0, "NumvCPUs": 0, "PowerState": "PoweredOn" }, "MimicGenericVmCustomProperties": {}, "Type": "GenericVmCustomProperties" }, "Target": { "GenericVmCustomProperties": { "Memory": 0, "Name": "string", "NumCDROMs": 0, "NumCoresPerSocket": 0, "NumDisks": 0, "NumNICs": 0, "NumvCPUs": 0, "PowerState": "PoweredOn" }, "MimicGenericVmCustomProperties": {}, "Type": "GenericVmCustomProperties" }, "VMCustomizeType": "replicate" } }, "MetaData": { "Version": "string" } }'
{- "APIVersion": "2.2.0",
- "CustomProperties": {
- "Type": "VmCustomPropertiesInfo",
- "VmCustomPropertiesInfo": {
- "OrderOfProperties": [
- {
- "DisplayName": "Name",
- "SourceName": "Name",
- "TargetName": "Name"
}, - {
- "DisplayName": "Power State",
- "SourceName": "PowerState",
- "TargetName": "PowerState"
}, - {
- "DisplayName": "vCPU(s)",
- "SourceName": "NumvCPUs",
- "TargetName": "NumvCPUs"
}, - {
- "DisplayName": "Number Of Cores Per vCPU",
- "SourceName": "NumCoresPerSocket",
- "TargetName": "NumCoresPerSocket"
}, - {
- "DisplayName": "Memory",
- "SourceName": "Memory",
- "TargetName": "Memory"
}, - {
- "DisplayName": "Number of disks",
- "SourceName": "NumDisks",
- "TargetName": "NumDisks"
}, - {
- "DisplayName": "Number of CD-ROMs",
- "SourceName": "NumCDROMs",
- "TargetName": "NumCDROMs"
}, - {
- "DisplayName": "Number of NICs",
- "SourceName": "NumNICs",
- "TargetName": "NumNICs"
}
], - "Source": {
- "CustomizableProperties": [ ],
- "GenericVmCustomProperties": {
- "Memory": 1073741824,
- "Name": "ajc-ce72-dnd",
- "NumCDROMs": 1,
- "NumCoresPerSocket": 1,
- "NumDisks": 1,
- "NumNICs": 1,
- "NumvCPUs": 1,
- "PowerState": "PoweredOn"
}, - "Type": "GenericVmCustomProperties"
}, - "Target": {
- "CustomizableProperties": [
- "Name",
- "PowerState",
- "NumvCPUs",
- "NumCoresPerSocket",
- "Memory"
], - "GenericVmCustomProperties": {
- "Memory": 1073741824,
- "Name": "ajc-ce72-dnd",
- "NumCDROMs": 1,
- "NumCoresPerSocket": 1,
- "NumDisks": 1,
- "NumNICs": 1,
- "NumvCPUs": 1,
- "PowerState": "PoweredOn"
}, - "Type": "GenericVmCustomProperties"
}, - "VMCustomizeType": "replicate"
}
}, - "MetaData": {
- "Version": "1.1.0"
}
}
Deletes the migration plan by providing Migration Plan UUID as input.
Sample API Syntax: https://move.address/move/v2/plans/867b4a4f-cb8c-4416-8d7e-26e033023aa4/
id required | string Migration plan UUID. |
curl --request DELETE \ --url https://www.nutanix.dev/move/v2/plans/{id} \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \
{- "APIVersion": "string",
- "MetaData": {
- "Count": 0,
- "CreationTime": "string",
- "Kind": "string",
- "LastUpdateTime": "string",
- "Name": "string",
- "SpecVersion": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}, - "Status": {
- "Message": "string",
- "State": "string"
}
}
Get the migration plan details for the provided plan UUID. The details fetched include:
id required | string Migration plan UUID. |
IncludeEntityDetails | boolean Include entity details in the API response from each migration plan in MigrationPlanSummary (Higher priority than IncludeVMDetails). |
IncludeVMDetails | boolean Include VM details in the API response from each migration plan in MigrationPlanSummary (deprecated). |
curl --request GET \ --url https://www.nutanix.dev/move/v2/plans/{id} \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \
{- "MetaData": {
- "Actions": [
- "START",
- "EDIT",
- "DELETE"
], - "CreatedTime": 1562818697155631000,
- "DataInBytes": 10737418240,
- "ElapsedTime": { },
- "ErrorReason": null,
- "Name": "MP-MR-_ap-south-1_AUTO_EC2_CX_SRC_DMP_S1_1",
- "NumVMs": 1,
- "Schedule": {
- "ScheduleAtEpochSec": -1
}, - "UUID": "5ef6a270-2dc1-4f71-91bb-2b7564205d1b",
- "VMStateCounts": { }
}, - "Spec": {
- "Name": "MP-MR-_ap-south-1_AUTO_EC2_CX_SRC_DMP_S1_1",
- "NetworkMappings": {
- "SourceNetworkID": "vpc-8e1c3de7",
- "TargetNetworkID": "343eaa8f-a251-4ec0-8ede-729c97f7cddc",
- "TestNetworkID": "DM_Nutest_Net"
}, - "Settings": {
- "Schedule": {
- "ScheduleAtEpochSec": -1
}
}, - "SourceInfo": {
- "AWSProviderAttrs": {
- "RegionID": "ap-south-1"
}, - "ProviderUUID": "b26dd394-8bbf-4233-86bd-79a27f1a86be"
}, - "TargetInfo": {
- "AOSProviderAttrs": {
- "ClusterUUID": "00058576-cf00-2cf4-0000-000000005bbc",
- "ContainerUUID": "0ec46875-a905-4a48-81a1-2264b3d228a0"
}, - "ProviderUUID": "bd63c6ff-46f2-4174-934c-31d7902b9e96"
}, - "UUID": "5ef6a270-2dc1-4f71-91bb-2b7564205d1b",
- "Workload": {
- "Type": "VM",
- "VMs": [
- {
- "VMReference": {
- "UUID": "00000000-0000-0000-aeeb-f788350ca00c",
- "VMID": "i-0aeebf788350ca00c"
}
}
]
}
}
}
Given a migration plan UUID and a valid workload UUID, this API gets the custom-view details of the workload.
Sample API Syntax: https://move.address/move/v2/plans/867b4a4f-cb8c-4416-8d7e-26e033023aa4/workloads/91cea36d-c857-4092-b232-d46484ee3205/custom
wid required | string Workload UUID |
id required | string Migration plan UUID |
curl --request GET \ --url https://www.nutanix.dev/move/v2/plans/{id}/workloads/{wid}/custom \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \
{- "APIVersion": "2.0.0",
- "CustomProperties": {
- "Type": "VmCustomPropertiesInfo",
- "VmCustomPropertiesInfo": {
- "OrderOfProperties": [
- {
- "DisplayName": "Name",
- "SourceName": "Name",
- "TargetName": "Name"
}, - {
- "DisplayName": "OS Type",
- "SourceName": "OSType",
- "TargetName": "OSType"
}, - {
- "DisplayName": "Power State",
- "SourceName": "PowerState",
- "TargetName": "PowerState"
}, - {
- "DisplayName": "vCPU(s)",
- "SourceName": "NumvCPUs",
- "TargetName": "NumvCPUs"
}, - {
- "DisplayName": "Number Of Cores Per vCPU",
- "SourceName": "NumCoresPerSocket",
- "TargetName": "NumCoresPerSocket"
}, - {
- "DisplayName": "Memory",
- "SourceName": "Memory",
- "TargetName": "Memory"
}, - {
- "DisplayName": "Number of disks",
- "SourceName": "NumDisks",
- "TargetName": "NumDisks"
}, - {
- "DisplayName": "Number of CD-ROMs",
- "SourceName": "NumCDROMs",
- "TargetName": "NumCDROMs"
}, - {
- "DisplayName": "Number of NICs",
- "SourceName": "NumNICs",
- "TargetName": "NumNICs"
}
], - "Source": {
- "CustomizableProperties": [ ],
- "GenericVmCustomProperties": {
- "Memory": 3221225472,
- "Name": "ajc-ce73-dnd",
- "NumCDROMs": 1,
- "NumCoresPerSocket": 1,
- "NumDisks": 2,
- "NumNICs": 1,
- "NumvCPUs": 2,
- "OSType": "centos64Guest",
- "PowerState": "PoweredOff"
}, - "Type": "GenericVMCustomProperties"
}, - "Target": {
- "CustomizableProperties": [
- "Name",
- "PowerState",
- "NumvCPUs",
- "NumCoresPerSocket",
- "Memory"
], - "GenericVmCustomProperties": {
- "Memory": 3221225472,
- "Name": "ajc-ce73-dnd",
- "NumCDROMs": 1,
- "NumCoresPerSocket": 1,
- "NumDisks": 2,
- "NumNICs": 1,
- "NumvCPUs": 2,
- "OSType": "centos64Guest"
}, - "Type": "GenericVMCustomProperties"
}
}
}, - "MetaData": {
- "Version": "1.0.0"
}
}
Fetches the custom-view IP configuration details of the workload for the specified migration plan UUID and workload UUID.
Sample API Syntax: https://move.address/move/v2/plans/867b4a4f-cb8c-4416-8d7e-26e033023aa4/workloads/91cea36d-c857-4092-b232-d46484ee3205/customips
wid required | string Workload UUID |
id required | string Migration plan UUID |
curl --request GET \ --url https://www.nutanix.dev/move/v2/plans/{id}/workloads/{wid}/customips \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \
{- "APIVersion": "2.2.0",
- "Data": {
- "MetaInfo": {
- "ConfigMode": "custom",
- "IsConfigured": true,
- "VmUuid": "b315e2ad-5a3b-51d2-a2a0-afefb1d69970"
}, - "NicsInfo": [
- {
- "IpsInfo": [
- {
- "DnsIps": "8.8.8.8",
- "Gateway": "10.46.56.1",
- "PrefixLength": 22,
- "SourceIpAddress": "10.46.57.67",
- "TargetIpAddress": "10.46.57.70"
}, - {
- "DnsIps": "8.8.8.8",
- "PrefixLength": 22,
- "SourceIpAddress": "10.46.57.68",
- "TargetIpAddress": "10.46.57.71"
}, - {
- "DnsIps": "8.8.8.8",
- "PrefixLength": 22,
- "SourceIpAddress": "10.46.57.66",
- "TargetIpAddress": "10.46.57.69"
}
], - "Mac": "00:50:56:b3:4c:97",
- "NetworkName": "static"
}, - {
- "IpsInfo": [
- {
- "DnsIps": "10.40.64.16,10.22.64.16",
- "Gateway": "10.15.168.1",
- "PrefixLength": 21,
- "SourceIpAddress": "10.15.169.194",
- "TargetIpAddress": "10.15.169.194"
}
], - "Mac": "00:50:56:b3:c5:29",
- "NetworkName": "Net-115"
}, - {
- "IpsInfo": [
- {
- "DnsIps": "10.40.64.16,10.22.64.16",
- "Gateway": "10.46.60.1",
- "PrefixLength": 22,
- "SourceIpAddress": "10.46.60.211",
- "TargetIpAddress": "10.46.60.211"
}
], - "Mac": "00:50:56:b3:ea:41",
- "NetworkName": "VM Network"
}
]
}, - "MetaData": {
- "Version": "1.0.0"
}
}
Given a migration plan's UUID and a valid workload's UUID, this API gets the migration plan's workload information.
Sample API Syntax: https://move.address/move/v2/plans/867b4a4f-cb8c-4416-8d7e-26e033023aa4/workloads/91cea36d-c857-4092-b232-d46484ee3205
wid required | string Workload UUID |
id required | string Migration plan UUID |
curl --request GET \ --url https://www.nutanix.dev/move/v2/plans/{id}/workloads/{wid} \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \
{- "Status": {
- "Actions": [
- "ABORT"
], - "ID": "i-0d263e46e6063a",
- "State": 4,
- "Status": 1,
- "SubEvents": [
- {
- "Description": "Creating snapshot MOVESnap-0 on host provider.",
- "Name": "Create Snapshot (MOVESnap-0)",
- "State": 4,
- "Status": 3
}, - {
- "Description": "Copying snapshot MOVESnap-0 IO changes to target environment.",
- "Name": "Sync Snapshot (MOVESnap-0)",
- "State": 4,
- "Status": 1
}
], - "TotalDataSizeInBytes": 322122720,
- "UUID": "00000000-0000-0000-d263-e44016e6044a"
}
}
Gets details of all the workloads of a plan by providing plan UUID.
Sample API Syntax: https://move.address/move/v2/plans/867b4a4f-cb8c-4416-8d7e-26e033023aa4/workloads/list
id required | string Migration plan UUID. |
NumIterations | integer <uint64> Number of iterations to be returned for a workload. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/plans/{id}/workloads/list \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \
{- "Status": {
- "Actions": [
- "ABORT",
- "PAUSE"
], - "Name": "my_migration_plan_name",
- "State": 4,
- "Status": 1,
- "UUID": "f5445252-32a8-424a-967a-97084474d7f3",
- "VMStatus": [
- {
- "Actions": [
- "ABORT"
], - "ID": "TBD",
- "Name": "my_vm_name",
- "State": 4,
- "Status": 1,
- "SubEvents": [
- {
- "Description": "Creating snapshot MOVESnap-0 on host provider.",
- "Name": "Create Snapshot (MOVESnap-0)",
- "State": 4,
- "Status": 1
}
], - "UUID": "00000000-0000-0000-d263-e44016e6063a"
}
]
}
}
Lists the details of all migration plans.
Set the includeVMdetails flag in the input for the API response to include VM details corresponding to each migration plan in the MigrationPlanSummary.
The API retrieves the following information for each migration plan:
IncludeEntityDetails | boolean Include entity details in the API response from each migration plan in MigrationPlanSummary (Higher priority than IncludeVMDetails). |
IncludeVMDetails | boolean Include VM details in the API response from each migration plan in MigrationPlanSummary (deprecated). |
Filter the list of migration plans by providing input migration plan object.
EntityType | string Enum: "VM" "Files" Entity type filter. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/plans/list \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json, application/octet-stream' \ --data '{ "EntityType": "VM" }'
{- "Entities": [
- {
- "MetaData": {
- "Actions": [
- "START",
- "EDIT",
- "DELETE"
], - "CreatedTime": 1562818697155631000,
- "DataInBytes": 10737418240,
- "ElapsedTime": { },
- "ErrorReason": null,
- "Name": "MP-MR-_ap-south-1_AUTO_EC2_CX_SRC_DMP_S1_1",
- "NumVMs": 1,
- "Schedule": {
- "ScheduleAtEpochSec": -1
}, - "UUID": "5ef6a270-2dc1-4f71-91bb-2b7564205d1b",
- "VMStateCounts": { }
}
}, - {
- "MetaData": {
- "Actions": [
- "START",
- "EDIT",
- "DELETE"
], - "CreatedTime": 1562818694528089000,
- "DataInBytes": 10737418240,
- "ElapsedTime": { },
- "ErrorReason": null,
- "Name": "MP-MR-_ap-south-1_AUTO_EC2_CX_SRC_DMP_S1_0",
- "NumVMs": 1,
- "Schedule": {
- "ScheduleAtEpochSec": -1
}, - "UUID": "f26c0d61-2fb9-49ef-82f6-8a07426e0956",
- "VMStateCounts": { }
}
}
]
}
Performs readiness checks on migration plan to confirm if that particular migration plan is ready to start. On providing the plan UUID, the port and VMs status check results are received.
Sample API Syntax: https://move.address/move/v2/plans/867b4a4f-cb8c-4416-8d7e-26e033023aa4/readiness
id required | string Migration plan UUID. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/plans/{id}/readiness \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \
{- "MetaData": {
- "UUID": "3af948bf-72ed-4fe8-90f5-f1d3cf592c7d"
}, - "Status": {
- "Failed": null,
- "Passed": [
- {
- "CheckType": "PortCheck",
- "Message": "Connectivity check completed successfully for Port [8080]",
- "Status": "Ready"
}, - {
- "CheckType": "PortCheck",
- "Message": "Connectivity check completed successfully for Port [80]",
- "Status": "Ready"
}, - {
- "CheckType": "PortCheck",
- "Message": "Connectivity check completed successfully for Port [8092]",
- "Status": "Ready"
}, - {
- "CheckType": "PortCheck",
- "Message": "Connectivity check completed successfully for Port [4505]",
- "Status": "Ready"
}, - {
- "CheckType": "PortCheck",
- "Message": "Connectivity check completed successfully for Port [4506]",
- "Status": "Ready"
}
], - "VMChecksResult": {
- "Failed": null,
- "Passed": [
- {
- "Message": "User VM with id i-0b82e10ef8a0b2756 is registered successfully",
- "Status": "Registered",
- "VMId": "i-0b82e10ef8a0b2756",
- "VMName": "AUTO_EC2_W2K12R2-MAN-PREP_0"
}, - {
- "Message": "Ping to UVM succeeded",
- "Status": "Ready",
- "VMId": "i-0b82e10ef8a0b2756",
- "VMName": "AUTO_EC2_W2K12R2-MAN-PREP_0"
}, - {
- "Message": "Memcached connectivity succeeded. Successfully connected to my_ip_address (my_ip_address) on tcp port 0000",
- "Status": "Ready",
- "VMId": "i-0b82e10ef8a0b2756",
- "VMName": "AUTO_EC2_W2K12R2-MAN-PREP_0"
}, - {
- "Message": "CBT driver is loaded",
- "Status": "Ready",
- "VMId": "i-0b82e10ef8a0b2756",
- "VMName": "AUTO_EC2_W2K12R2-MAN-PREP_0"
}
]
}
}
}
Performs an action on the migration plan workload. The list of available workload actions:
wid required | string Workload UUID |
id required | string Migration plan UUID |
Requested workload action to be performed on the VM.
APIVersion | string Move API version |
required | object Workload action request. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/plans/{id}/workloads/{wid}/action \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "APIVersion": "string", "Spec": { "Action": "cutover" } }'
{- "APIVersion": "string",
- "MetaData": {
- "Count": 0,
- "CreationTime": "string",
- "Kind": "string",
- "LastUpdateTime": "string",
- "Name": "string",
- "SpecVersion": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}, - "Status": {
- "Message": "string",
- "State": "string"
}
}
Prepares the source VMs in a migration plan. For example- Install VirtIO drivers, retaining IP and so on.
If the preparation mode is set to 'manual', the API returns OS specific scripts that can be executed manually to prepare the source VMs.
Sample API Syntax: https://move.address/move/v2/plans/867b4a4f-cb8c-4416-8d7e-26e033023aa4/prepare
id required | string Migration plan UUID. |
SkipIPRetention | boolean Skip IP retention flag. |
UninstallGuestTools | boolean Uninstall guest tools flag. |
Workload credentials to prepare the source environment.
APIVersion | string Move API version |
object (MetaData) Metadata information | |
object (GuestOperationsInput) | |
Type | string Guest operation type. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/plans/{id}/prepare \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "APIVersion": "string", "MetaData": { "Count": 0, "CreationTime": "string", "Kind": "string", "LastUpdateTime": "string", "Name": "string", "SpecVersion": "string", "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb" }, "Spec": { "CommonCredentials": { "LinuxPassword": "string", "LinuxUserName": "string", "PemFile": "string", "WindowsPassword": "string", "WindowsUserName": "string" }, "GuestPrepMode": "manual", "Region": "string", "RunInBackground": true, "VMs": [ { "Password": "string", "PemFile": "string", "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb", "UserName": "string", "VMId": "string" } ] }, "Type": "string" }'
{- "APIVersion": "string",
- "MetaData": {
- "Count": 0,
- "CreationTime": "string",
- "Kind": "string",
- "LastUpdateTime": "string",
- "Name": "string",
- "SpecVersion": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}, - "Spec": {
- "CommonCredentials": {
- "LinuxPassword": "string",
- "LinuxUserName": "string",
- "PemFile": "string",
- "WindowsPassword": "string",
- "WindowsUserName": "string"
}, - "GuestPrepMode": "manual",
- "Region": "string",
- "RunInBackground": true,
- "VMs": [
- {
- "Password": "string",
- "PemFile": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30",
- "UserName": "string",
- "VMId": "string"
}
]
}, - "Status": {
- "AgentID": "string",
- "Message": "string",
- "Result": {
- "Failed": [
- {
- "Message": "string",
- "Status": "string",
- "VMId": "string",
- "VMName": "string"
}
], - "GuestScript": {
- "LinuxGuestCleanupScript": [
- "string"
], - "LinuxGuestScript": [
- "string"
], - "Region": "string",
- "WindowsGuestCleanupScript": [
- "string"
], - "WindowsGuestScript": [
- "string"
]
}, - "InstallationInProgress": true,
- "Passed": [
- {
- "Message": "string",
- "Status": "string",
- "VMId": "string",
- "VMName": "string"
}
]
}, - "State": "string"
}
}
Resume a suspended migration plan for the provided migration plan UUID.
Sample API Syntax: https://move.address/move/v2/plans/867b4a4f-cb8c-4416-8d7e-26e033023aa4/resume
id required | string Migration plan UUID |
curl --request POST \ --url https://www.nutanix.dev/move/v2/plans/{id}/resume \ --header 'Accept: application/json, application/octet-stream' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \
{- "ApiVersion": "string",
- "Code": 0,
- "Kind": "string",
- "Message": "string",
- "State": "string"
}
Starts a migration plan by providing plan UUID and an optional snapshot frequency (in minutes).
Sample API Syntax: https://move.address/move/v2/plans/867b4a4f-cb8c-4416-8d7e-26e033023aa4/start
id required | string Migration plan UUID. |
Snapshot frequency can be specified optionally.
APIVersion | string Move API version |
object (MetaData) Metadata information | |
object Snapshot frequency in minutes. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/plans/{id}/start \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "APIVersion": "string", "MetaData": { "Count": 0, "CreationTime": "string", "Kind": "string", "LastUpdateTime": "string", "Name": "string", "SpecVersion": "string", "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb" }, "Spec": { "Time": 0 } }'
{- "APIVersion": "string",
- "MetaData": {
- "Count": 0,
- "CreationTime": "string",
- "Kind": "string",
- "LastUpdateTime": "string",
- "Name": "string",
- "SpecVersion": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}, - "Status": {
- "Message": "string",
- "State": "string"
}
}
Suspends migration plan of provided plan UUID.
Sample API Syntax: https://move.address/move/v2/plans/867b4a4f-cb8c-4416-8d7e-26e033023aa4/suspend
id required | string Migration plan UUID |
curl --request POST \ --url https://www.nutanix.dev/move/v2/plans/{id}/suspend \ --header 'Accept: application/json, application/octet-stream' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \
{- "ApiVersion": "string",
- "Code": 0,
- "Kind": "string",
- "Message": "string",
- "State": "string"
}
Given a migration plan UUID and a valid workload UUID, this API selectively refreshes the source workload details and updates the plan.
Sample API Syntax: https://move.address/move/v2/plans/867b4a4f-cb8c-4416-8d7e-26e033023aa4/workloads/91cea36d-c857-4092-b232-d46484ee3205/refresh
wid required | string Workload UUID |
id required | string Migration plan UUID |
Workload refresh configuration to control the sub-operations during a selective refresh of a workload.
forceUpdateTarget | boolean Default: false Replicate the properties of the source to the target, regardless of workload's customize-type. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/plans/{id}/workloads/{wid}/refresh \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "forceUpdateTarget": false }'
{- "APIVersion": "string",
- "Data": {
- "Message": "string",
- "Status": "string"
}, - "MetaData": {
- "Version": "string"
}
}
Updates the migration plan using the plan UUID as input. When not in progress, all migration plan entities can be updated.
Sample API Syntax: https://move.address/move/v2/plans/867b4a4f-cb8c-4416-8d7e-26e033023aa4/
id required | string Migration plan UUID. |
Information required to update migration plan object.
APIVersion | string Move API version |
IsUpdatePlanFlow | boolean Indicates whether the update plan is called as part of the create plan. Assigned values can be False or True |
object (MigrationPlanSummary) Summary of migration plan. | |
object (Plan) Plan information | |
Type | string Plan type. |
{- "MetaData": {
- "Actions": [
- "START",
- "EDIT",
- "DELETE"
], - "CreatedTime": 1695975103130976000,
- "DataInBytes": 4404476945,
- "ElapsedTime": { },
- "ErrorReasons": null,
- "FilesStateCounts": { },
- "FilesStatus": null,
- "Name": "mp-1695975048515649",
- "NumEntities": 1,
- "NumVMs": 1,
- "Schedule": {
- "ScheduleAtEpochSec": -1
}, - "SourceInfo": {
- "Name": "10.46.17.155",
- "Type": "VMWARE_ESXI_VCENTER",
- "UUID": "8479b87b-bf1d-4cc0-b9a7-cdfbf1ecb06f"
}, - "StateString": "MigrationPlanStateUninitialized",
- "StatusString": "StatusUnknown",
- "TargetInfo": {
- "Cluster": {
- "Name": "auto_cluster_prod_aketi_pushkaram_4f392f35f214",
- "Type": "AOS_AHV_PE",
- "UUID": "0005d054-6866-fff1-0000-000000029844"
}, - "Name": "10.46.17.178",
- "Type": "AOS_AHV_PE",
- "UUID": "f5524029-156f-4ce5-a29c-082f681b211d"
}, - "UUID": "2df12bd0-2399-49ec-ac85-740963b9ed0b",
- "VMStateCounts": { },
- "VMStatus": null,
- "ValidationWarnings": null
}
}
Add current Move IP to storage container allowlist for AOS providers.
Sample API Syntax: https://move.address/move/v2/81b0a14d-c937-4872-b792-d46484ee8905/allowlist
id required | string Provider UUID. |
Cluster and container details in which Move IP is to be allowlisted.
APIVersion | string Move API Version |
required | object Cluster and container details. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/providers/{id}/allowlist \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "APIVersion": "string", "Spec": { "ClusterUuid": "string", "ContainerUuid": "string", "ForceClusterLevelAllowlist": false } }'
{- "APIVersion": "string",
- "MetaData": {
- "Count": 0,
- "CreationTime": "string",
- "Kind": "string",
- "LastUpdateTime": "string",
- "Name": "string",
- "SpecVersion": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}, - "Status": {
- "Message": "string",
- "State": "string"
}
}
Creates a new provider.
A provider is an environment (ESXi/AOS/AWS/AZURE and so on) which can act as a migration source, target or both. The provider can later be added as a source/target during the creation of migration plans. See the Move User Guide to know about supported source/target types.
Sample API Syntax: https://move.address/move/v2/providers
Provider object information required to create a new provider.
APIVersion | string Move API version |
object (MetaData) Metadata information | |
object (Provider) Information to add provider. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/providers \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "APIVersion": "string", "MetaData": { "Count": 0, "CreationTime": "string", "Kind": "string", "LastUpdateTime": "string", "Name": "string", "SpecVersion": "string", "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb" }, "Spec": { "AOSAccessInfo": { "IPorFQDN": "string", "Password": "string", "RegisteredVCAccessInfo": [ { "IPAddress": "string", "Password": "string", "Username": "string" } ], "Username": "string" }, "AOSProperties": { "CategoriesMapping": { "property1": [ "string" ], "property2": [ "string" ] }, "Clusters": [ { "CompatibleTargetTypes": [ "string" ], "Containers": [ { "Name": "string", "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb" } ], "HypervisorTypes": [ "string" ], "IPorFQDN": "string", "Name": "string", "Networks": [ { "Name": "string", "UUID": "string", "WarningMsg": "string" } ], "RegisteredVCIPAddress": "string", "TargetUUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb", "Type": "string", "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb", "Version": "string", "Vpcs": [ { "Name": "string", "UUID": "string", "VPCSubnets": [ { "Name": "string", "UUID": "string", "WarningMsg": "string" } ] } ] } ], "Errors": [ { "ApiVersion": "string", "Code": 0, "Kind": "string", "Message": "string", "State": "string" } ], "Projects": [ { "ClusterList": [ "string" ], "ErrorList": [ "string" ], "Name": "string", "SubnetList": [ "string" ], "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb", "UserList": [ "string" ], "VpcList": [ "string" ] } ], "Users": [ { "Name": "string", "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb" } ], "Version": "string" }, "AWSAccessInfo": { "AccessKey": "string", "SecretKey": "string" }, "AWSProperties": { "AvailableRegions": [ { "AvailabilityZones": [ "string" ], "ID": "string", "Name": "string", "Networks": [ { "IsDefault": true, "Name": "string", "SecurityGroups": [ { "IsDefault": true, "Name": "string", "SgID": "string", "VpcID": "string" } ], "State": "string", "Subnet": { "property1": [ { "Ipv4Cidr": "string", "Ipv6Cidr": "string", "Name": "string", "SubnetID": "string" } ], "property2": [ { "Ipv4Cidr": "string", "Ipv6Cidr": "string", "Name": "string", "SubnetID": "string" } ] }, "VpcId": "string" } ] } ], "ContextEntries": [ { "ContextKeyName": "string", "ContextKeyType": "string", "ContextKeyValues": [ "string" ] } ], "RegionsWithInstances": [ { "AvailabilityZones": [ "string" ], "ID": "string", "Name": "string", "Networks": [ { "IsDefault": true, "Name": "string", "SecurityGroups": [ { "IsDefault": true, "Name": "string", "SgID": "string", "VpcID": "string" } ], "State": "string", "Subnet": { "property1": [ { "Ipv4Cidr": "string", "Ipv6Cidr": "string", "Name": "string", "SubnetID": "string" } ], "property2": [ { "Ipv4Cidr": "string", "Ipv6Cidr": "string", "Name": "string", "SubnetID": "string" } ] }, "VpcId": "string" } ] } ] }, "AzureAccessInfo": { "ClientID": "string", "ClientSecret": "string", "SubscriptionID": "string", "TenantID": "string" }, "AzureProperties": { "AvailableRegions": [ { "ID": "string", "Name": "string", "NetworkSecurityGroups": [ { "Location": "string", "Name": "string", "NsgID": "string", "ResourceGroup": "string" } ], "Networks": [ { "Location": "string", "Name": "string", "ResourceGroup": "string", "Subnet": { "property1": [ { "Ipv4Cidr": "string", "Ipv6Cidr": "string", "Name": "string", "SubnetID": "string" } ], "property2": [ { "Ipv4Cidr": "string", "Ipv6Cidr": "string", "Name": "string", "SubnetID": "string" } ] }, "VnetId": "string" } ], "ResourceGroups": [ "string" ] } ], "RegionsWithInstances": [ { "ID": "string", "Name": "string", "NetworkSecurityGroups": [ { "Location": "string", "Name": "string", "NsgID": "string", "ResourceGroup": "string" } ], "Networks": [ { "Location": "string", "Name": "string", "ResourceGroup": "string", "Subnet": { "property1": [ { "Ipv4Cidr": "string", "Ipv6Cidr": "string", "Name": "string", "SubnetID": "string" } ], "property2": [ { "Ipv4Cidr": "string", "Ipv6Cidr": "string", "Name": "string", "SubnetID": "string" } ] }, "VnetId": "string" } ], "ResourceGroups": [ "string" ] } ], "RegisteredApplication": { "Application": "string", "Subscription": "string", "Tenant": "string" } }, "CompatibleTargetTypes": [ "string" ], "ESXAccessInfo": { "IPorFQDN": "string", "Password": "string", "Username": "string" }, "ESXProperties": { "Version": "string" }, "FilesAccessInfo": { "IPorFQDN": "string", "Password": "string", "Username": "string" }, "FilesProperties": { "FileserverID": "string", "SupportedProtocols": [ "string" ], "TenantID": "string" }, "HyperVAccessInfo": { "IPorFQDN": "string", "Password": "string", "Username": "string" }, "HyperVProperties": { "Version": "string" }, "HyperVSettings": { "OverrideAgent": true }, "InventoryErrors": [ "string" ], "IsInventoryLoading": true, "Name": "string", "OtherFilesAccessInfo": { "IPorFQDN": "string", "Password": "string", "TargetName": "string", "TargetUUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb", "Username": "string" }, "PermissionsError": { "ErrorMsg": "string", "Source": [ "string" ], "Target": [ "string" ] }, "Roles": [ "string" ], "Type": "string", "TypeDescription": "string", "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb", "Version": "string" } }'
{- "APIVersion": "string",
- "MetaData": {
- "Count": 0,
- "CreationTime": "string",
- "Kind": "string",
- "LastUpdateTime": "string",
- "Name": "string",
- "SpecVersion": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}, - "Spec": {
- "AOSAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "RegisteredVCAccessInfo": [
- {
- "IPAddress": "string",
- "Password": "string",
- "Username": "string"
}
], - "Username": "string"
}, - "AOSProperties": {
- "CategoriesMapping": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "Clusters": [
- {
- "CompatibleTargetTypes": [
- "string"
], - "Containers": [
- {
- "Name": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}
], - "HypervisorTypes": [
- "string"
], - "IPorFQDN": "string",
- "Name": "string",
- "Networks": [
- {
- "Name": "string",
- "UUID": "string",
- "WarningMsg": "string"
}
], - "RegisteredVCIPAddress": "string",
- "TargetUUID": "b91575b3-630c-4223-8216-11d24760addd",
- "Type": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30",
- "Version": "string",
- "Vpcs": [
- {
- "Name": "string",
- "UUID": "string",
- "VPCSubnets": [
- {
- "Name": "string",
- "UUID": "string",
- "WarningMsg": "string"
}
]
}
]
}
], - "Errors": [
- {
- "ApiVersion": "string",
- "Code": 0,
- "Kind": "string",
- "Message": "string",
- "State": "string"
}
], - "Projects": [
- {
- "ClusterList": [
- "string"
], - "ErrorList": [
- "string"
], - "Name": "string",
- "SubnetList": [
- "string"
], - "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30",
- "UserList": [
- "string"
], - "VpcList": [
- "string"
]
}
], - "Users": [
- {
- "Name": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}
], - "Version": "string"
}, - "AWSAccessInfo": {
- "AccessKey": "string",
- "SecretKey": "string"
}, - "AWSProperties": {
- "AvailableRegions": [
- {
- "AvailabilityZones": [
- "string"
], - "ID": "string",
- "Name": "string",
- "Networks": [
- {
- "IsDefault": true,
- "Name": "string",
- "SecurityGroups": [
- {
- "IsDefault": true,
- "Name": "string",
- "SgID": "string",
- "VpcID": "string"
}
], - "State": "string",
- "Subnet": {
- "property1": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
], - "property2": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
]
}, - "VpcId": "string"
}
]
}
], - "ContextEntries": [
- {
- "ContextKeyName": "string",
- "ContextKeyType": "string",
- "ContextKeyValues": [
- "string"
]
}
], - "RegionsWithInstances": [
- {
- "AvailabilityZones": [
- "string"
], - "ID": "string",
- "Name": "string",
- "Networks": [
- {
- "IsDefault": true,
- "Name": "string",
- "SecurityGroups": [
- {
- "IsDefault": true,
- "Name": "string",
- "SgID": "string",
- "VpcID": "string"
}
], - "State": "string",
- "Subnet": {
- "property1": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
], - "property2": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
]
}, - "VpcId": "string"
}
]
}
]
}, - "AzureAccessInfo": {
- "ClientID": "string",
- "ClientSecret": "string",
- "SubscriptionID": "string",
- "TenantID": "string"
}, - "AzureProperties": {
- "AvailableRegions": [
- {
- "ID": "string",
- "Name": "string",
- "NetworkSecurityGroups": [
- {
- "Location": "string",
- "Name": "string",
- "NsgID": "string",
- "ResourceGroup": "string"
}
], - "Networks": [
- {
- "Location": "string",
- "Name": "string",
- "ResourceGroup": "string",
- "Subnet": {
- "property1": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
], - "property2": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
]
}, - "VnetId": "string"
}
], - "ResourceGroups": [
- "string"
]
}
], - "RegionsWithInstances": [
- {
- "ID": "string",
- "Name": "string",
- "NetworkSecurityGroups": [
- {
- "Location": "string",
- "Name": "string",
- "NsgID": "string",
- "ResourceGroup": "string"
}
], - "Networks": [
- {
- "Location": "string",
- "Name": "string",
- "ResourceGroup": "string",
- "Subnet": {
- "property1": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
], - "property2": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
]
}, - "VnetId": "string"
}
], - "ResourceGroups": [
- "string"
]
}
], - "RegisteredApplication": {
- "Application": "string",
- "Subscription": "string",
- "Tenant": "string"
}
}, - "CompatibleTargetTypes": [
- "string"
], - "ESXAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "Username": "string"
}, - "ESXProperties": {
- "Version": "string"
}, - "FilesAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "Username": "string"
}, - "FilesProperties": {
- "FileserverID": "string",
- "SupportedProtocols": [
- "string"
], - "TenantID": "string"
}, - "HyperVAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "Username": "string"
}, - "HyperVProperties": {
- "Version": "string"
}, - "HyperVSettings": {
- "OverrideAgent": true
}, - "InventoryErrors": [
- "string"
], - "IsInventoryLoading": true,
- "Name": "string",
- "OtherFilesAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "TargetName": "string",
- "TargetUUID": "b91575b3-630c-4223-8216-11d24760addd",
- "Username": "string"
}, - "PermissionsError": {
- "ErrorMsg": "string",
- "Source": [
- "string"
], - "Target": [
- "string"
]
}, - "Roles": [
- "string"
], - "Type": "string",
- "TypeDescription": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30",
- "Version": "string"
}, - "Status": {
- "Message": "string",
- "State": "string"
}
}
Deletes a provider whose UUID is specified.
Sample API Syntax: https://move.address/move/v2/81b0a14d-c937-4872-b792-d46484ee8905
id required | string Provider UUID. |
curl --request DELETE \ --url https://www.nutanix.dev/move/v2/providers/{id} \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \
{- "APIVersion": "string",
- "MetaData": {
- "Count": 0,
- "CreationTime": "string",
- "Kind": "string",
- "LastUpdateTime": "string",
- "Name": "string",
- "SpecVersion": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}, - "Status": {
- "Message": "string",
- "State": "string"
}
}
Gets inventory of the provider. Inventory collection gathers information about the VMs in a provider. The information retrieved includes:
id required | string Provider UUID. |
Workload search filter object to filter the required VM information.
AfterOffset | integer <int64> |
BeforeOffset | integer <int64> |
Fields | Array of strings |
object (Filters) | |
Limit | integer <int64> |
Query | string |
RefreshInventory | boolean Default: false Refresh Provider Inventory. |
ShowVMS | string Enum: "all" "ineligiblevms" "eligiblevms" |
SortBy | string (SortColumn) Enum: "VMName" "Cluster" "Datacenter" "OS" "HostName" "PowerState" "VCPU" "Memory" "Storage" "ShareName" "SharePath" The column based on which the filter output will be sorted. The permissible list of values- VMName, Cluster, Datacenter, OS, HostName, PowerState, VCPU, Memory, Storage, ShareName, SharePath. |
SortOrderDesc | boolean |
UpdateInventoryToPlans | boolean Default: true Update refreshed inventory details to all available plans which have the provider as the source. This flag is honored only if 'RefreshInventory' is also 'true'. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/providers/{id}/workloads/list \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "AfterOffset": 0, "BeforeOffset": 0, "Fields": [ "string" ], "Filter": { "Categories": { "property1": [ "string" ], "property2": [ "string" ] }, "Cluster": [ "string" ], "Datacenter": [ "string" ], "Host": [ "string" ], "ShareUuids": [ "b4d15375-1097-4c96-a4c4-4cb5809b05bb" ], "TargetType": "string", "VMUuids": [ "b4d15375-1097-4c96-a4c4-4cb5809b05bb" ] }, "Limit": 0, "Query": "string", "RefreshInventory": false, "ShowVMS": "all", "SortBy": "VMName", "SortOrderDesc": true, "UpdateInventoryToPlans": true }'
{- "APIVersion": "string",
- "Entities": [
- {
- "AdditionalProperties": {
- "property1": "string",
- "property2": "string"
}, - "Categories": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "ClusterName": "string",
- "DatacenterName": "string",
- "ErrorMessages": [
- "string"
], - "HostName": "string",
- "MemoryMB": 0,
- "MigrationSupportStatus": 0,
- "MigrationSupportWarningStatus": 0,
- "Networks": [
- {
- "Devices": [
- 0
], - "ID": "string",
- "MacIDs": [
- "string"
], - "Name": "string"
}
], - "Nics": {
- "NicsInfo": [
- {
- "IpsConf": [
- {
- "DnsIps": "string",
- "Gateway": "string",
- "IpAddress": "string",
- "PrefixLength": 32
}
], - "Mac": "string",
- "NetworkName": "string"
}
]
}, - "NumCPU": 0,
- "NumCoresPerSocket": 0,
- "NumEthernetCards": 0,
- "OSType": "string",
- "OverallCpuDemandInMHz": 0,
- "PowerState": "string",
- "RecID": 0,
- "SourceUuid": "string",
- "StorageAllocatedInBytes": 0,
- "StorageUsedInBytes": 0,
- "VMName": "string",
- "VMUuid": "string",
- "VmID": "string",
- "WarningMessages": [
- "string"
]
}
], - "MetaData": {
- "AfterOffset": 0,
- "BeforeOffset": 0,
- "Count": 0,
- "CreationTime": "string",
- "Kind": "string",
- "LastUpdateTime": "string",
- "Limit": 0,
- "Name": "string",
- "NumDiscoveredWorkloads": 0,
- "NumMigratedWorkloads": 0,
- "SortBy": "string",
- "SortOrderDesc": true,
- "SpecVersion": "string",
- "UUID": "string",
- "WorkloadsFilters": {
- "Categories": {
- "FilterName": "string",
- "Items": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}, - "Clusters": {
- "FilterName": "string",
- "Items": [
- "string"
]
}, - "Datacenters": {
- "FilterName": "string",
- "Items": [
- "string"
]
}, - "Hosts": {
- "FilterName": "string",
- "Items": [
- "string"
]
}, - "Networks": {
- "FilterName": "string",
- "Items": [
- "string"
]
}, - "OSTypes": {
- "FilterName": "string",
- "Items": [
- "string"
]
}, - "PowerStates": {
- "FilterName": "string",
- "Items": [
- "string"
]
}
}
}, - "Shares": [
- {
- "AdditionalProperties": {
- "property1": "string",
- "property2": "string"
}, - "ProtocolTypes": [
- "string"
], - "RecID": 0,
- "ShareName": "string",
- "SharePath": "string",
- "ShareUuid": "string",
- "SourceUuid": "string"
}
]
}
Gets the provider information.
List the provider UUIDs in the request for details of specified list of providers. If no provider UUIDs are specified, returns the information about all providers known to the Move application. The information retrieved includes:
Filter the list of providers to be retrieved by giving input provider filter object.
EntityType | string Enum: "VM" "Files" Entity type filter. |
RefreshInventory | boolean Default: false Refresh Provider Inventory. |
TargetUUID | string <uuid> Target provider UUID. |
Type | string Provider type. |
UUIDs | Array of strings <uuid> [ items <uuid > ] List of Provider UUIDs |
UpdateInventoryToPlans | boolean Default: true Update refreshed inventory details to all available plans which have the providers as the source. This flag is honored only if 'RefreshInventory' is also 'true'. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/providers/list \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "EntityType": "VM", "RefreshInventory": false, "TargetUUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb", "Type": "string", "UUIDs": [ "b4d15375-1097-4c96-a4c4-4cb5809b05bb" ], "UpdateInventoryToPlans": true }'
{- "Entities": [
- {
- "MetaData": {
- "CreationTime": "2019-07-11 08:51:24.853998 +0000 UTC",
- "LastUpdateTime": "2019-07-12 05:22:35.419174 +0000 UTC",
- "NumDiscoveredWorkloads": 1,
- "NumMigratedWorkloads": 1,
- "UUID": "89233dbd-7eba-4ca7-b600-119a3d336d6b"
}, - "Spec": {
- "AOSAccessInfo": {
- "IPorFQDN": "my_ahv_ip",
- "Username": "my_ahv_user_name"
}, - "AOSProperties": {
- "Clusters": [
- {
- "Containers": [
- {
- "Name": "DM_Nutest_Ctr",
- "UUID": "0ec46875-a905-4a48-81a1-2264b3d228a0"
}
], - "HypervisorTypes": [
- "kKvm"
], - "Name": "Sindhu",
- "Networks": [
- {
- "Name": "DM_Nutest_Net",
- "UUID": "343eaa8f-a251-4ec0-8ede-729c97f7cddc"
}
], - "TargetUUID": "89233dbd-7eba-4ca7-b600-119a3d336d6b",
- "UUID": "00058576-cf00-2cf4-0000-000000005bbc"
}
], - "Errors": null
}, - "Name": "my_ahv_ip",
- "Type": "AOS_AHV_PE",
- "Version": "5.11"
}
}, - {
- "MetaData": {
- "CreationTime": "2019-07-11 08:51:03.741263 +0000 UTC",
- "LastUpdateTime": "2019-07-14 11:38:05.765862 +0000 UTC",
- "NumDiscoveredWorkloads": 1,
- "NumMigratedWorkloads": 1,
- "UUID": "3296cbc6-33d9-40f3-af7c-3224bd69844b"
}, - "Spec": {
- "AWSAccessInfo": {
- "AccessKey": "aws_access_key"
}, - "AWSProperties": {
- "AvailableRegions": [
- {
- "ID": "ap-southeast-1",
- "Name": "AP SOUTHEAST 1"
}, - {
- "ID": "ap-northeast-2",
- "Name": "AP NORTHEAST 2"
}, - {
- "ID": "ap-northeast-1",
- "Name": "AP NORTHEAST 1"
}, - {
- "ID": "us-east-1",
- "Name": "US EAST 1"
}, - {
- "ID": "us-west-1",
- "Name": "US WEST 1"
}, - {
- "ID": "us-west-2",
- "Name": "US WEST 2"
}, - {
- "ID": "ap-south-1",
- "Name": "AP SOUTH 1"
}, - {
- "ID": "us-east-2",
- "Name": "US EAST 2"
}
], - "RegionsWithInstances": [
- {
- "ID": "ap-southeast-1",
- "Name": "AP SOUTHEAST 1"
}, - {
- "ID": "ap-northeast-2",
- "Name": "AP NORTHEAST 2"
}, - {
- "ID": "ap-northeast-1",
- "Name": "AP NORTHEAST 1"
}, - {
- "ID": "us-east-1",
- "Name": "US EAST 1"
}, - {
- "ID": "us-west-1",
- "Name": "US WEST 1"
}, - {
- "ID": "us-west-2",
- "Name": "US WEST 2"
}, - {
- "ID": "ap-south-1",
- "Name": "AP SOUTH 1"
}, - {
- "ID": "us-east-2",
- "Name": "US EAST 2"
}
]
}, - "Name": "my_aws_instance",
- "Type": "AWS_EC2",
- "Version": "2016-11-15"
}
}
], - "MetaData": {
- "Count": 2
}
}
Gets details of a single provider whose UUID is specified. The information retrieved includes:
id required | string Provider UUID. |
curl --request GET \ --url https://www.nutanix.dev/move/v2/providers/{id} \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \
{- "APIVersion": "string",
- "MetaData": {
- "Count": 0,
- "CreationTime": "string",
- "IsInventoryLoading": true,
- "Kind": "string",
- "LastUpdateTime": "string",
- "Name": "string",
- "NumDiscoveredWorkloads": 0,
- "NumMigratedWorkloads": 0,
- "SpecVersion": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}, - "Spec": {
- "AOSAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "RegisteredVCAccessInfo": [
- {
- "IPAddress": "string",
- "Password": "string",
- "Username": "string"
}
], - "Username": "string"
}, - "AOSProperties": {
- "CategoriesMapping": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "Clusters": [
- {
- "CompatibleTargetTypes": [
- "string"
], - "Containers": [
- {
- "Name": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}
], - "HypervisorTypes": [
- "string"
], - "IPorFQDN": "string",
- "Name": "string",
- "Networks": [
- {
- "Name": "string",
- "UUID": "string",
- "WarningMsg": "string"
}
], - "RegisteredVCIPAddress": "string",
- "TargetUUID": "b91575b3-630c-4223-8216-11d24760addd",
- "Type": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30",
- "Version": "string",
- "Vpcs": [
- {
- "Name": "string",
- "UUID": "string",
- "VPCSubnets": [
- {
- "Name": "string",
- "UUID": "string",
- "WarningMsg": "string"
}
]
}
]
}
], - "Errors": [
- {
- "ApiVersion": "string",
- "Code": 0,
- "Kind": "string",
- "Message": "string",
- "State": "string"
}
], - "Projects": [
- {
- "ClusterList": [
- "string"
], - "ErrorList": [
- "string"
], - "Name": "string",
- "SubnetList": [
- "string"
], - "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30",
- "UserList": [
- "string"
], - "VpcList": [
- "string"
]
}
], - "Users": [
- {
- "Name": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}
], - "Version": "string"
}, - "AWSAccessInfo": {
- "AccessKey": "string",
- "SecretKey": "string"
}, - "AWSProperties": {
- "AvailableRegions": [
- {
- "AvailabilityZones": [
- "string"
], - "ID": "string",
- "Name": "string",
- "Networks": [
- {
- "IsDefault": true,
- "Name": "string",
- "SecurityGroups": [
- {
- "IsDefault": true,
- "Name": "string",
- "SgID": "string",
- "VpcID": "string"
}
], - "State": "string",
- "Subnet": {
- "property1": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
], - "property2": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
]
}, - "VpcId": "string"
}
]
}
], - "ContextEntries": [
- {
- "ContextKeyName": "string",
- "ContextKeyType": "string",
- "ContextKeyValues": [
- "string"
]
}
], - "RegionsWithInstances": [
- {
- "AvailabilityZones": [
- "string"
], - "ID": "string",
- "Name": "string",
- "Networks": [
- {
- "IsDefault": true,
- "Name": "string",
- "SecurityGroups": [
- {
- "IsDefault": true,
- "Name": "string",
- "SgID": "string",
- "VpcID": "string"
}
], - "State": "string",
- "Subnet": {
- "property1": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
], - "property2": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
]
}, - "VpcId": "string"
}
]
}
]
}, - "AzureAccessInfo": {
- "ClientID": "string",
- "ClientSecret": "string",
- "SubscriptionID": "string",
- "TenantID": "string"
}, - "AzureProperties": {
- "AvailableRegions": [
- {
- "ID": "string",
- "Name": "string",
- "NetworkSecurityGroups": [
- {
- "Location": "string",
- "Name": "string",
- "NsgID": "string",
- "ResourceGroup": "string"
}
], - "Networks": [
- {
- "Location": "string",
- "Name": "string",
- "ResourceGroup": "string",
- "Subnet": {
- "property1": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
], - "property2": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
]
}, - "VnetId": "string"
}
], - "ResourceGroups": [
- "string"
]
}
], - "RegionsWithInstances": [
- {
- "ID": "string",
- "Name": "string",
- "NetworkSecurityGroups": [
- {
- "Location": "string",
- "Name": "string",
- "NsgID": "string",
- "ResourceGroup": "string"
}
], - "Networks": [
- {
- "Location": "string",
- "Name": "string",
- "ResourceGroup": "string",
- "Subnet": {
- "property1": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
], - "property2": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
]
}, - "VnetId": "string"
}
], - "ResourceGroups": [
- "string"
]
}
], - "RegisteredApplication": {
- "Application": "string",
- "Subscription": "string",
- "Tenant": "string"
}
}, - "CompatibleTargetTypes": [
- "string"
], - "ESXAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "Username": "string"
}, - "ESXProperties": {
- "Version": "string"
}, - "FilesAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "Username": "string"
}, - "FilesProperties": {
- "FileserverID": "string",
- "SupportedProtocols": [
- "string"
], - "TenantID": "string"
}, - "HyperVAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "Username": "string"
}, - "HyperVProperties": {
- "Version": "string"
}, - "HyperVSettings": {
- "OverrideAgent": true
}, - "InventoryErrors": [
- "string"
], - "IsInventoryLoading": true,
- "Name": "string",
- "OtherFilesAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "TargetName": "string",
- "TargetUUID": "b91575b3-630c-4223-8216-11d24760addd",
- "Username": "string"
}, - "PermissionsError": {
- "ErrorMsg": "string",
- "Source": [
- "string"
], - "Target": [
- "string"
]
}, - "Roles": [
- "string"
], - "Type": "string",
- "TypeDescription": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30",
- "Version": "string"
}, - "Type": "string"
}
Remove IP from cluster and storage container allowlist for AOS providers.
Sample API Syntax: https://move.address/move/v2/81b0a14d-c937-4872-b792-d46484ee8905/allowlist
id required | string Provider UUID. |
Cluster, container and IP details which are to be removed from allowlist.
APIVersion | string Move API Version |
required | object Cluster, container and IP details. |
curl --request DELETE \ --url https://www.nutanix.dev/move/v2/providers/{id}/allowlist \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \
{- "APIVersion": "string",
- "MetaData": {
- "Count": 0,
- "CreationTime": "string",
- "Kind": "string",
- "LastUpdateTime": "string",
- "Name": "string",
- "SpecVersion": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}, - "Status": {
- "Message": "string",
- "State": "string"
}
}
Updates provider information. The API can update provider name and all fields in provider access info.
Note: The Type field of the provider cannot be updated.
Sample API Syntax: https://move.address/move/v2/81b0a14d-c937-4872-b792-d46484ee8905
id required | string Provider UUID. |
Information required to be updated in the provider.
APIVersion | string Move API version |
object (MetaData) Metadata information | |
object (Provider) Information to add provider. |
curl --request PUT \ --url https://www.nutanix.dev/move/v2/providers/{id} \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "APIVersion": "string", "MetaData": { "Count": 0, "CreationTime": "string", "Kind": "string", "LastUpdateTime": "string", "Name": "string", "SpecVersion": "string", "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb" }, "Spec": { "AOSAccessInfo": { "IPorFQDN": "string", "Password": "string", "RegisteredVCAccessInfo": [ { "IPAddress": "string", "Password": "string", "Username": "string" } ], "Username": "string" }, "AOSProperties": { "CategoriesMapping": { "property1": [ "string" ], "property2": [ "string" ] }, "Clusters": [ { "CompatibleTargetTypes": [ "string" ], "Containers": [ { "Name": "string", "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb" } ], "HypervisorTypes": [ "string" ], "IPorFQDN": "string", "Name": "string", "Networks": [ { "Name": "string", "UUID": "string", "WarningMsg": "string" } ], "RegisteredVCIPAddress": "string", "TargetUUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb", "Type": "string", "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb", "Version": "string", "Vpcs": [ { "Name": "string", "UUID": "string", "VPCSubnets": [ { "Name": "string", "UUID": "string", "WarningMsg": "string" } ] } ] } ], "Errors": [ { "ApiVersion": "string", "Code": 0, "Kind": "string", "Message": "string", "State": "string" } ], "Projects": [ { "ClusterList": [ "string" ], "ErrorList": [ "string" ], "Name": "string", "SubnetList": [ "string" ], "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb", "UserList": [ "string" ], "VpcList": [ "string" ] } ], "Users": [ { "Name": "string", "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb" } ], "Version": "string" }, "AWSAccessInfo": { "AccessKey": "string", "SecretKey": "string" }, "AWSProperties": { "AvailableRegions": [ { "AvailabilityZones": [ "string" ], "ID": "string", "Name": "string", "Networks": [ { "IsDefault": true, "Name": "string", "SecurityGroups": [ { "IsDefault": true, "Name": "string", "SgID": "string", "VpcID": "string" } ], "State": "string", "Subnet": { "property1": [ { "Ipv4Cidr": "string", "Ipv6Cidr": "string", "Name": "string", "SubnetID": "string" } ], "property2": [ { "Ipv4Cidr": "string", "Ipv6Cidr": "string", "Name": "string", "SubnetID": "string" } ] }, "VpcId": "string" } ] } ], "ContextEntries": [ { "ContextKeyName": "string", "ContextKeyType": "string", "ContextKeyValues": [ "string" ] } ], "RegionsWithInstances": [ { "AvailabilityZones": [ "string" ], "ID": "string", "Name": "string", "Networks": [ { "IsDefault": true, "Name": "string", "SecurityGroups": [ { "IsDefault": true, "Name": "string", "SgID": "string", "VpcID": "string" } ], "State": "string", "Subnet": { "property1": [ { "Ipv4Cidr": "string", "Ipv6Cidr": "string", "Name": "string", "SubnetID": "string" } ], "property2": [ { "Ipv4Cidr": "string", "Ipv6Cidr": "string", "Name": "string", "SubnetID": "string" } ] }, "VpcId": "string" } ] } ] }, "AzureAccessInfo": { "ClientID": "string", "ClientSecret": "string", "SubscriptionID": "string", "TenantID": "string" }, "AzureProperties": { "AvailableRegions": [ { "ID": "string", "Name": "string", "NetworkSecurityGroups": [ { "Location": "string", "Name": "string", "NsgID": "string", "ResourceGroup": "string" } ], "Networks": [ { "Location": "string", "Name": "string", "ResourceGroup": "string", "Subnet": { "property1": [ { "Ipv4Cidr": "string", "Ipv6Cidr": "string", "Name": "string", "SubnetID": "string" } ], "property2": [ { "Ipv4Cidr": "string", "Ipv6Cidr": "string", "Name": "string", "SubnetID": "string" } ] }, "VnetId": "string" } ], "ResourceGroups": [ "string" ] } ], "RegionsWithInstances": [ { "ID": "string", "Name": "string", "NetworkSecurityGroups": [ { "Location": "string", "Name": "string", "NsgID": "string", "ResourceGroup": "string" } ], "Networks": [ { "Location": "string", "Name": "string", "ResourceGroup": "string", "Subnet": { "property1": [ { "Ipv4Cidr": "string", "Ipv6Cidr": "string", "Name": "string", "SubnetID": "string" } ], "property2": [ { "Ipv4Cidr": "string", "Ipv6Cidr": "string", "Name": "string", "SubnetID": "string" } ] }, "VnetId": "string" } ], "ResourceGroups": [ "string" ] } ], "RegisteredApplication": { "Application": "string", "Subscription": "string", "Tenant": "string" } }, "CompatibleTargetTypes": [ "string" ], "ESXAccessInfo": { "IPorFQDN": "string", "Password": "string", "Username": "string" }, "ESXProperties": { "Version": "string" }, "FilesAccessInfo": { "IPorFQDN": "string", "Password": "string", "Username": "string" }, "FilesProperties": { "FileserverID": "string", "SupportedProtocols": [ "string" ], "TenantID": "string" }, "HyperVAccessInfo": { "IPorFQDN": "string", "Password": "string", "Username": "string" }, "HyperVProperties": { "Version": "string" }, "HyperVSettings": { "OverrideAgent": true }, "InventoryErrors": [ "string" ], "IsInventoryLoading": true, "Name": "string", "OtherFilesAccessInfo": { "IPorFQDN": "string", "Password": "string", "TargetName": "string", "TargetUUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb", "Username": "string" }, "PermissionsError": { "ErrorMsg": "string", "Source": [ "string" ], "Target": [ "string" ] }, "Roles": [ "string" ], "Type": "string", "TypeDescription": "string", "UUID": "b4d15375-1097-4c96-a4c4-4cb5809b05bb", "Version": "string" } }'
{- "APIVersion": "string",
- "MetaData": {
- "Count": 0,
- "CreationTime": "string",
- "Kind": "string",
- "LastUpdateTime": "string",
- "Name": "string",
- "SpecVersion": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}, - "Spec": {
- "AOSAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "RegisteredVCAccessInfo": [
- {
- "IPAddress": "string",
- "Password": "string",
- "Username": "string"
}
], - "Username": "string"
}, - "AOSProperties": {
- "CategoriesMapping": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "Clusters": [
- {
- "CompatibleTargetTypes": [
- "string"
], - "Containers": [
- {
- "Name": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}
], - "HypervisorTypes": [
- "string"
], - "IPorFQDN": "string",
- "Name": "string",
- "Networks": [
- {
- "Name": "string",
- "UUID": "string",
- "WarningMsg": "string"
}
], - "RegisteredVCIPAddress": "string",
- "TargetUUID": "b91575b3-630c-4223-8216-11d24760addd",
- "Type": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30",
- "Version": "string",
- "Vpcs": [
- {
- "Name": "string",
- "UUID": "string",
- "VPCSubnets": [
- {
- "Name": "string",
- "UUID": "string",
- "WarningMsg": "string"
}
]
}
]
}
], - "Errors": [
- {
- "ApiVersion": "string",
- "Code": 0,
- "Kind": "string",
- "Message": "string",
- "State": "string"
}
], - "Projects": [
- {
- "ClusterList": [
- "string"
], - "ErrorList": [
- "string"
], - "Name": "string",
- "SubnetList": [
- "string"
], - "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30",
- "UserList": [
- "string"
], - "VpcList": [
- "string"
]
}
], - "Users": [
- {
- "Name": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}
], - "Version": "string"
}, - "AWSAccessInfo": {
- "AccessKey": "string",
- "SecretKey": "string"
}, - "AWSProperties": {
- "AvailableRegions": [
- {
- "AvailabilityZones": [
- "string"
], - "ID": "string",
- "Name": "string",
- "Networks": [
- {
- "IsDefault": true,
- "Name": "string",
- "SecurityGroups": [
- {
- "IsDefault": true,
- "Name": "string",
- "SgID": "string",
- "VpcID": "string"
}
], - "State": "string",
- "Subnet": {
- "property1": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
], - "property2": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
]
}, - "VpcId": "string"
}
]
}
], - "ContextEntries": [
- {
- "ContextKeyName": "string",
- "ContextKeyType": "string",
- "ContextKeyValues": [
- "string"
]
}
], - "RegionsWithInstances": [
- {
- "AvailabilityZones": [
- "string"
], - "ID": "string",
- "Name": "string",
- "Networks": [
- {
- "IsDefault": true,
- "Name": "string",
- "SecurityGroups": [
- {
- "IsDefault": true,
- "Name": "string",
- "SgID": "string",
- "VpcID": "string"
}
], - "State": "string",
- "Subnet": {
- "property1": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
], - "property2": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
]
}, - "VpcId": "string"
}
]
}
]
}, - "AzureAccessInfo": {
- "ClientID": "string",
- "ClientSecret": "string",
- "SubscriptionID": "string",
- "TenantID": "string"
}, - "AzureProperties": {
- "AvailableRegions": [
- {
- "ID": "string",
- "Name": "string",
- "NetworkSecurityGroups": [
- {
- "Location": "string",
- "Name": "string",
- "NsgID": "string",
- "ResourceGroup": "string"
}
], - "Networks": [
- {
- "Location": "string",
- "Name": "string",
- "ResourceGroup": "string",
- "Subnet": {
- "property1": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
], - "property2": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
]
}, - "VnetId": "string"
}
], - "ResourceGroups": [
- "string"
]
}
], - "RegionsWithInstances": [
- {
- "ID": "string",
- "Name": "string",
- "NetworkSecurityGroups": [
- {
- "Location": "string",
- "Name": "string",
- "NsgID": "string",
- "ResourceGroup": "string"
}
], - "Networks": [
- {
- "Location": "string",
- "Name": "string",
- "ResourceGroup": "string",
- "Subnet": {
- "property1": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
], - "property2": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
]
}, - "VnetId": "string"
}
], - "ResourceGroups": [
- "string"
]
}
], - "RegisteredApplication": {
- "Application": "string",
- "Subscription": "string",
- "Tenant": "string"
}
}, - "CompatibleTargetTypes": [
- "string"
], - "ESXAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "Username": "string"
}, - "ESXProperties": {
- "Version": "string"
}, - "FilesAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "Username": "string"
}, - "FilesProperties": {
- "FileserverID": "string",
- "SupportedProtocols": [
- "string"
], - "TenantID": "string"
}, - "HyperVAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "Username": "string"
}, - "HyperVProperties": {
- "Version": "string"
}, - "HyperVSettings": {
- "OverrideAgent": true
}, - "InventoryErrors": [
- "string"
], - "IsInventoryLoading": true,
- "Name": "string",
- "OtherFilesAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "TargetName": "string",
- "TargetUUID": "b91575b3-630c-4223-8216-11d24760addd",
- "Username": "string"
}, - "PermissionsError": {
- "ErrorMsg": "string",
- "Source": [
- "string"
], - "Target": [
- "string"
]
}, - "Roles": [
- "string"
], - "Type": "string",
- "TypeDescription": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30",
- "Version": "string"
}, - "Status": {
- "Message": "string",
- "State": "string"
}
}
Validate provider information. The API can validate credentials and check permissions associated with the provider.
Sample API Syntax: https://move.address/move/v2/81b0a14d-c937-4872-b792-d46484ee8905/validate
id required | string Provider UUID. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/providers/{id}/validate \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \
{- "APIVersion": "string",
- "MetaData": {
- "Count": 0,
- "CreationTime": "string",
- "IsInventoryLoading": true,
- "Kind": "string",
- "LastUpdateTime": "string",
- "Name": "string",
- "NumDiscoveredWorkloads": 0,
- "NumMigratedWorkloads": 0,
- "SpecVersion": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}, - "Spec": {
- "AOSAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "RegisteredVCAccessInfo": [
- {
- "IPAddress": "string",
- "Password": "string",
- "Username": "string"
}
], - "Username": "string"
}, - "AOSProperties": {
- "CategoriesMapping": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "Clusters": [
- {
- "CompatibleTargetTypes": [
- "string"
], - "Containers": [
- {
- "Name": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}
], - "HypervisorTypes": [
- "string"
], - "IPorFQDN": "string",
- "Name": "string",
- "Networks": [
- {
- "Name": "string",
- "UUID": "string",
- "WarningMsg": "string"
}
], - "RegisteredVCIPAddress": "string",
- "TargetUUID": "b91575b3-630c-4223-8216-11d24760addd",
- "Type": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30",
- "Version": "string",
- "Vpcs": [
- {
- "Name": "string",
- "UUID": "string",
- "VPCSubnets": [
- {
- "Name": "string",
- "UUID": "string",
- "WarningMsg": "string"
}
]
}
]
}
], - "Errors": [
- {
- "ApiVersion": "string",
- "Code": 0,
- "Kind": "string",
- "Message": "string",
- "State": "string"
}
], - "Projects": [
- {
- "ClusterList": [
- "string"
], - "ErrorList": [
- "string"
], - "Name": "string",
- "SubnetList": [
- "string"
], - "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30",
- "UserList": [
- "string"
], - "VpcList": [
- "string"
]
}
], - "Users": [
- {
- "Name": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}
], - "Version": "string"
}, - "AWSAccessInfo": {
- "AccessKey": "string",
- "SecretKey": "string"
}, - "AWSProperties": {
- "AvailableRegions": [
- {
- "AvailabilityZones": [
- "string"
], - "ID": "string",
- "Name": "string",
- "Networks": [
- {
- "IsDefault": true,
- "Name": "string",
- "SecurityGroups": [
- {
- "IsDefault": true,
- "Name": "string",
- "SgID": "string",
- "VpcID": "string"
}
], - "State": "string",
- "Subnet": {
- "property1": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
], - "property2": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
]
}, - "VpcId": "string"
}
]
}
], - "ContextEntries": [
- {
- "ContextKeyName": "string",
- "ContextKeyType": "string",
- "ContextKeyValues": [
- "string"
]
}
], - "RegionsWithInstances": [
- {
- "AvailabilityZones": [
- "string"
], - "ID": "string",
- "Name": "string",
- "Networks": [
- {
- "IsDefault": true,
- "Name": "string",
- "SecurityGroups": [
- {
- "IsDefault": true,
- "Name": "string",
- "SgID": "string",
- "VpcID": "string"
}
], - "State": "string",
- "Subnet": {
- "property1": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
], - "property2": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
]
}, - "VpcId": "string"
}
]
}
]
}, - "AzureAccessInfo": {
- "ClientID": "string",
- "ClientSecret": "string",
- "SubscriptionID": "string",
- "TenantID": "string"
}, - "AzureProperties": {
- "AvailableRegions": [
- {
- "ID": "string",
- "Name": "string",
- "NetworkSecurityGroups": [
- {
- "Location": "string",
- "Name": "string",
- "NsgID": "string",
- "ResourceGroup": "string"
}
], - "Networks": [
- {
- "Location": "string",
- "Name": "string",
- "ResourceGroup": "string",
- "Subnet": {
- "property1": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
], - "property2": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
]
}, - "VnetId": "string"
}
], - "ResourceGroups": [
- "string"
]
}
], - "RegionsWithInstances": [
- {
- "ID": "string",
- "Name": "string",
- "NetworkSecurityGroups": [
- {
- "Location": "string",
- "Name": "string",
- "NsgID": "string",
- "ResourceGroup": "string"
}
], - "Networks": [
- {
- "Location": "string",
- "Name": "string",
- "ResourceGroup": "string",
- "Subnet": {
- "property1": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
], - "property2": [
- {
- "Ipv4Cidr": null,
- "Ipv6Cidr": null,
- "Name": null,
- "SubnetID": null
}
]
}, - "VnetId": "string"
}
], - "ResourceGroups": [
- "string"
]
}
], - "RegisteredApplication": {
- "Application": "string",
- "Subscription": "string",
- "Tenant": "string"
}
}, - "CompatibleTargetTypes": [
- "string"
], - "ESXAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "Username": "string"
}, - "ESXProperties": {
- "Version": "string"
}, - "FilesAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "Username": "string"
}, - "FilesProperties": {
- "FileserverID": "string",
- "SupportedProtocols": [
- "string"
], - "TenantID": "string"
}, - "HyperVAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "Username": "string"
}, - "HyperVProperties": {
- "Version": "string"
}, - "HyperVSettings": {
- "OverrideAgent": true
}, - "InventoryErrors": [
- "string"
], - "IsInventoryLoading": true,
- "Name": "string",
- "OtherFilesAccessInfo": {
- "IPorFQDN": "string",
- "Password": "string",
- "TargetName": "string",
- "TargetUUID": "b91575b3-630c-4223-8216-11d24760addd",
- "Username": "string"
}, - "PermissionsError": {
- "ErrorMsg": "string",
- "Source": [
- "string"
], - "Target": [
- "string"
]
}, - "Roles": [
- "string"
], - "Type": "string",
- "TypeDescription": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30",
- "Version": "string"
}, - "Type": "string"
}
Checks if a user with the given token is authorized to access Move. Move generates an event whenever this API is called.
Sample API Syntax: https://move.address/move/v2/token/checkAuthorized
Authentication token whose authorization status will be checked.
Token | string Authentication Token |
curl --request POST \ --url https://www.nutanix.dev/move/v2/token/checkAuthorized \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "Token": "string" }'
{- "APIVersion": "string",
- "MetaData": {
- "Count": 0,
- "CreationTime": "string",
- "Kind": "string",
- "LastUpdateTime": "string",
- "Name": "string",
- "SpecVersion": "string",
- "UUID": "f50af7e0-0dd5-4361-ab96-2e04f7bc7e30"
}, - "Status": {
- "Message": "string",
- "State": "string"
}
}
Revokes the authentication token. Authentication token is obtained using POST /move/v2/users/login API. The token is used for authenticating all APIs, after initial login.
Sample API Syntax: https://move.address/move/v2/token/revoke
Authentication Token that needs to be validated.
APIVersion | string Move API Version |
object (Token) Authentication Token |
curl --request POST \ --url https://www.nutanix.dev/move/v2/token/revoke \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "APIVersion": "string", "Spec": { "Token": "string" } }'
{- "status": {
- "token": "xxxxx.yyyyy.zzzzz"
}
}
Validates the authentication token. Authentication token is obtained using POST /move/v2/users/login API. The token is used for authenticating all APIs, after initial login.
Sample API Syntax: https://move.address/move/v2/token/validate
Authentication token that needs to be validated.
APIVersion | string Move API Version |
object (Token) Authentication Token |
curl --request POST \ --url https://www.nutanix.dev/move/v2/token/validate \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "APIVersion": "string", "Spec": { "Token": "string" } }'
{- "status": {
- "token": "xxxxx.yyyyy.zzzzz"
}
}
Validates the authentication token in the Authorization header. This is intended for subrequest authentication using GET method supported by web servers like NGINX. This API has minimal overhead compared to other APIs.
Sample API Syntax: https://move.address/move/v2/token/status
curl --request GET \ --url https://www.nutanix.dev/move/v2/token/status \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \
{- "Message": "Invalid Token"
}
Checks if any upgrade for the Move application is available and returns information about the latest version, the current version, and release notes.
Sample API Syntax: https://move.address/move/v2/checkUpgrade
ReCache | boolean Default: false Update metadata while checking for upgrade. |
curl --request GET \ --url https://www.nutanix.dev/move/v2/checkUpgrade \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \
{- "Status": {
- "CurrentVersion": "3.5.2",
- "LatestVersion": "3.6.0",
- "ReleaseNotes": [
- "Support for Migrations to Nutanix Clusters on AWS",
- "Support for Secure boot enabled VM migration",
- "UI improvements on Bulk VM actions",
- "Enable use of Move APIs from UI",
- "Support for Migration of AWS EC2 Instances which don't have Public IP",
- "Security improvements",
- "Support for VMware vSphere 7",
- "Support for new OS: SUSE 15",
- "CFD/Bug fixes"
], - "UpdateAvailable": true
}
}
Get information about the upgrade bundle which was uploaded offline. The information fetched includes path to uploaded files and metadata.
Sample API Syntax: https://move.address/move/v2/uploadUpgradeFiles
curl --request GET \ --url https://www.nutanix.dev/move/v2/uploadUpgradeFiles \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \
{- "Status": {
- "BundleFileInfo": {
- "Path": "/tmp/upload/move_bundle.tar.gz"
}, - "MetaFileInfo": {
- "Path": "/tmp/upload/move_meta_data.txt"
}, - "Metadata": null
}
}
Checks the status of the ongoing upgrade of the Move application and returns following information about the upgrade:
curl --request GET \ --url https://www.nutanix.dev/move/v2/upgrade \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \
{- "Status": {
- "Message": "Successfully completed upgrade.",
- "Status": "Completed",
- "TasksInfo": {
- "CompletedTasks": 9,
- "CurrentTaskName": "Post Upgrade",
- "Tasks": [
- {
- "Description": "Initializing upgrade operation",
- "Name": "Init Upgrade",
- "Status": "Completed"
}, - {
- "Description": "Updating \"Updater service\"",
- "Name": "Updating updater",
- "Status": "Completed"
}, - {
- "Description": "Validating appliance before upgrade",
- "Name": "Validating before upgrade",
- "Status": "Completed"
}, - {
- "Description": "Pausing triggered migration plans",
- "Name": "Pause Migration Plans",
- "Status": "Completed"
}, - {
- "Description": "Upgrading all relevant scripts",
- "Name": "Upgrade Appliance Scripts",
- "Status": "Completed"
}, - {
- "Description": "Preparing to upgrade",
- "Name": "Pre upgrade",
- "Status": "Completed"
}, - {
- "Description": "Upgrading service containers in Move appliance",
- "Name": "Upgrade Main",
- "Status": "Completed"
}, - {
- "Description": "Performing post-upgrade operations",
- "Name": "Post Upgrade",
- "Status": "Completed"
}
]
}
}
}
Initiates the Move application upgrade and returns upgrade information:
Information required to trigger a Move application upgrade.
APIVersion | string Move API Version. |
object (XtractInitUpgradeInfo) Move application upgrade information. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/upgrade \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "APIVersion": "string", "Spec": { "LatestVersion": "string", "OfflineUpgrade": true, "UploadedFilesInfo": { "BundleFileInfo": { "Path": "string" }, "MetaFileInfo": { "Path": "string" } }, "Version": "string" } }'
{- "Status": {
- "CurrentTaskName": "Init Upgrade",
- "Message": "Initializing upgrade operation",
- "Percentage": 5,
- "Status": "InProgress",
- "Tasks": [
- {
- "Description": "Initializing upgrade operation",
- "Name": "Init Upgrade",
- "Status": "InProgress"
}, - {
- "Description": "Updating \"Updater service\"",
- "Name": "Updating updater",
- "Status": "Uninitialized"
}, - {
- "Description": "Validating appliance before upgrade",
- "Name": "Validating before upgrade",
- "Status": "Uninitialized"
}, - {
- "Description": "Pausing triggered migration plans",
- "Name": "Pause Migration Plans",
- "Status": "Uninitialized"
}, - {
- "Description": "Upgrading all relevant scripts",
- "Name": "Upgrade Appliance Scripts",
- "Status": "Uninitialized"
}, - {
- "Description": "Preparing to upgrade",
- "Name": "Pre upgrade",
- "Status": "Uninitialized"
}, - {
- "Description": "Upgrading service containers in Move appliance",
- "Name": "Upgrade Main",
- "Status": "Uninitialized"
}, - {
- "Description": "Performing post-upgrade operations",
- "Name": "Post Upgrade",
- "Status": "Uninitialized"
}
], - "TasksInfo": null,
- "TotalTasks": 9
}
}
Upload the files (bundle and meta files) needed to upgrade the application offline. This API can also be used in dark sites.
Sample API Syntax: https://move.address/move/v2/uploadUpgradeFiles
upBundleFile | string The application bundle to be uploaded. |
upMetaFile | string The metadata file corresponding to the uploaded bundle. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/uploadUpgradeFiles \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: multipart/form-data' \
{- "Status": {
- "BundleFileInfo": {
- "Path": "/tmp/upload/move_bundle.tar.gz"
}, - "MetaFileInfo": {
- "Path": "/tmp/upload/move_meta_data.json"
}
}
}
Changes Move application password by using the authentication token. The new password is set and sent as part of the response.
Sample API Syntax: https://move.address/move/v2/users/1/changepassword
id required | integer <int64> User Id. |
New Move application password to be updated.
APIVersion | string Move API version |
object (ChangePwd) Change password for Move application. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/users/{id}/changepassword \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "APIVersion": "string", "Spec": { "NewPassword": "string" } }'
{- "Spec": {
- "NewPassword": "my_new_password"
}, - "Status": {
- "Admin": true,
- "ExpiryDate": 1878040390,
- "IssueDate": 1562680390,
- "Name": "nutanix",
- "Token": "xxxxx.yyyyy.zzzzz",
- "UID": 1
}
}
Enables user authentication and returns authorization token for a correct set of user name and password. The token is used in all APIs as HTTP authorization header.
Sample API Syntax: https://move.address/move/v2/users/login
Move application login credentials.
APIVersion | string Move API Version |
object (Login) Details of the user including login information. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/users/login \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "APIVersion": "string", "Spec": { "password": "string", "username": "string" } }'
{- "Metadata": {
- "Name": "Nutanix"
}, - "Spec": {
- "Password": "my_password",
- "UserName": "my_username"
}, - "Status": {
- "Admin": true,
- "ExpiryDate": 1878039200,
- "IssueDate": 1562679200,
- "Name": "nutanix",
- "Token": "xxxxx.yyyyy.zzzzz",
- "UID": 1
}
}
Get a new token by authenticating with existing token. Authentication token can be obtained using POST /move/v2/users/login API. The token is used for authenticating all APIs, after initial login.
Sample API Syntax: https://move.address/move/v2/users/1/refreshtoken
id required | integer <int64> Move user Id. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/users/{id}/refreshtoken \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \
{- "status": {
- "Token": "xxxxx.yyyyy.zzzzz"
}
}
Performs workload actions from different migration plans in a batch using a single API. The list of available workload actions:
Perform specified action in a batch of workloads.
APIVersion | string Move API version. |
required | object Workload batch action request. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/plans/workloads/action \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json' \ --data '{ "APIVersion": "string", "Spec": { "Action": "cutover", "WorkloadReferences": [ { "PlanReference": "b4d15375-1097-4c96-a4c4-4cb5809b05bb", "WorkloadReference": "b4d15375-1097-4c96-a4c4-4cb5809b05bb" } ] } }'
{- "Status": [
- {
- "ErrorMessage": "string",
- "Success": true,
- "WorkloadReference": "4f416ab4-b5bc-4f70-ba0b-d78cddfbd8b0"
}
]
}
Downloads a file with a list of failed files and failure reasons.
iterationid required | integer <uint64> Iteration number. |
wid required | string Workload UUID. |
id required | string Migration plan UUID. |
curl --request GET \ --url https://www.nutanix.dev/move/v2/plans/{id}/workloads/{wid}/iterations/{iterationid}/downloadFiles \ --header 'Accept: application/json, application/octet-stream' \ --header 'Authorization: Bearer <your_access_token>' \
{- "ApiVersion": "string",
- "Code": 0,
- "Kind": "string",
- "Message": "string",
- "State": "string"
}
This API is used to retrieve the workload information from all migration plans by applying given filters. One can filter based on plan, provider and workload references (UUIDs) along with workload's current migration state.
Sample API Syntax: https://move.address/move/v2/plans/workloads/list
NumIterations | integer <uint64> Number of iterations to be returned for a workload. |
Workload search filter can be specified to list only required workload information.
object (WorkloadSearchFilterByReferencesAndStates) Filter to select and view specific VMs from a workload. |
curl --request POST \ --url https://www.nutanix.dev/move/v2/plans/workloads/list \ --header 'Accept: application/json' \ --header 'Authorization: Bearer <your_access_token>' \ --header 'Content-Type: application/json, application/octet-stream' \ --data '{ "Filter": { "MigrationStates": [ 0 ], "PlanReferences": [ "b4d15375-1097-4c96-a4c4-4cb5809b05bb" ], "ProviderReferences": [ "b4d15375-1097-4c96-a4c4-4cb5809b05bb" ], "WorkloadReferences": [ "b4d15375-1097-4c96-a4c4-4cb5809b05bb" ] } }'
{- "Status": [
- {
- "Status": {
- "Actions": [
- "ABORT",
- "PAUSE"
], - "Name": "migplan_test",
- "State": 4,
- "Status": 1,
- "UUID": "ab69b78b-f415-4b5a-8953-f1e083c1f379",
- "VMStatus": [
- {
- "Actions": [
- "ABORT",
- "CUTOVER",
- "TEST"
], - "CopiedDataSizeInBytes": 42949672960,
- "ETAInSecs": 60,
- "ID": "vm-217662",
- "MigratedDataSizeInBytes": 7853834240,
- "Name": "Win2k8r2",
- "State": 5,
- "Status": 1,
- "SubEvents": [
- {
- "Description": "Creating snapshot MOVESnap-4",
- "Name": "Create Snapshot (MOVESnap-4)",
- "State": 5,
- "Status": 3
}
], - "TotalDataSizeInBytes": 42949672960,
- "UUID": "ad54c813-c3ea-5731-8a8f-5b302169856a"
}
]
}
}
]
}