API Reference

Last updated: 04-16-2024

Nutanix Move REST APIs (2.2.0)

Download OpenAPI specification:Download

Introduction

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:

  • Streamlined migrations with one-click simplicity
  • Near-zero downtime with full cutover control
  • Simple test migrations and roll-back capabilities
  • Cost efficiency included with all Nutanix software editions.

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.

Authentication

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.

Best Practice

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

Workflow

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:

  • Login- User has to login and obtain an authentication token. This token is used for authorization in all APIs.

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:

Application

Change Move appliance NTP servers configurations

Change Move appliance NTP servers configurations

Sample API Syntax: https://move.address/move/v2/configurations/appliance/ntpservers

Authorizations:
Bearer
Request Body schema: application/json
required

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

Responses

Request samples

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"
    ]
}'

Response samples

Content type
application/json
{
  • "Spec": {
    }
}

Change Move appliance providers snapshots configurations

Change Move appliance snapshot configurations

Sample API Syntax: https://move.address/move/v2/configurations/appliance/providers/snapshots

Authorizations:
Bearer
Request Body schema: application/json
required

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

Responses

Request samples

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"
}'

Response samples

Content type
application/json
{
  • "Spec": {
    }
}

Change the settings of Move application

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

Authorizations:
Bearer
Request Body schema: application/json
required

Move application information to be changed.

APIVersion
string

Move API Version.

object (AppInfo)

Move application Information

Responses

Request samples

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"
    }
}'

Response samples

Content type
application/json
{
  • "APIVersion": "string",
  • "MetaData": {
    },
  • "Spec": {
    },
  • "Status": {
    }
}

Configure Move application properties

Configures the Move application properties. For example:

  • New Password
  • Eula Accepted
  • Telemetry on
Sample API Syntax: https://move.address/move/v2/configure

Authorizations:
Bearer
Request Body schema: application/json
required

Move application properties to be configured.

APIVersion
string

Move API version.

object (Configuration)

Move application configuration information.

Responses

Request samples

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
    }
}'

Response samples

Content type
application/json
{
  • "Error": {
    }
}

Download the compressed archive support bundle

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

Authorizations:
Bearer

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/supportbundle \
    --header 'Accept: application/json, application/x-gzip' \
    --header 'Authorization: Bearer <your_access_token>' \
     

Get Move appliance configurations

Gets the Move appliance configurations.
Sample API Syntax: https://move.address/move/v2/configurations/appliance

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/configurations/appliance \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "Spec": {
    }
}

Get Move appliance docker bridge IP configurations

Gets the Move appliance docker bridge IP.
Sample API Syntax: https://move.address/move/v2/configurations/appliance/dockerip

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/configurations/appliance/dockerip \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "Spec": {
    }
}

Get Move appliance NTP servers configurations

Gets the Move appliance NTP servers.
Sample API Syntax: https://move.address/move/v2/configurations/appliance/ntpservers

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/configurations/appliance/ntpservers \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "Spec": {
    }
}

Get Move appliance providers snapshots configurations

Gets the Move appliance snapshots configurations.
Sample API Syntax: https://move.address/move/v2/configurations/appliance/providers/snapshots

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/configurations/appliance/providers/snapshots \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "Spec": {
    }
}

Get Move application information

Gets the Move application information like:

  • version
  • status
  • login information
Sample API Syntax: https://move.address/move/v2/appinfo

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/appinfo \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "Status": {
    }
}

Get status of support bundle

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

Authorizations:
Bearer

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/supportbundle/status \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer <your_access_token>' \
     

Response samples

Content type
application/json
{
  • "SupportBundleResponse": {
    }
}

Trigger the download of compressed archive support bundle

POST /move/v2/supportbundle API requests the support bundle containing information about the current state of the VM and logs.

Related APIs

  • GET /move/v2/supportbundle/status API tracks the status of bundling.
  • Once ready, use GET /move/v2/supportbundle API to download the support bundle.
Sample API Syntax: https://move.address/move/v2/supportbundle

Authorizations:
Bearer

Responses

Request samples

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' \
     

Response samples

Content type
application/json
{
  • "ApiVersion": "string",
  • "Code": 0,
  • "Kind": "string",
  • "Message": "string",
  • "State": "string"
}

Bandwidth Throttling Policies

Create a new bandwidth capacity policy

Create a new bandwidth capacity policy

Authorizations:
Bearer
Request Body schema: application/json
required

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.

Responses

Request samples

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
        }
    ]
}'

Response samples

Content type
application/json
{
  • "BandwidthCapPolicyDef": {
    },
  • "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

Delete a specific bandwidth capacity policy

Authorizations:
Bearer
path Parameters
policyuuid
required
string

The UUID of the policy

Responses

Request samples

curl --request DELETE \
    --url https://www.nutanix.dev/move/v2/plans/bwcap/policies/{policyuuid} \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer <your_access_token>' \
     

Response samples

Content type
application/json
{
  • "ApiVersion": "string",
  • "Code": 0,
  • "Kind": "string",
  • "Message": "string",
  • "State": "string"
}

Get a list of all the bandwidth capacity policies

Get the bandwidth capacity policies

Authorizations:
Bearer

Responses

Request samples

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' \
     

Response samples

Content type
application/json
[
  • {
    }
]

Get details of a specific bandwidth capacity policy

Get details of a specific bandwidth capacity policy

Authorizations:
Bearer
path Parameters
policyuuid
required
string

The UUID of the policy

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/plans/bwcap/policies/{policyuuid} \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer <your_access_token>' \
     

Response samples

Content type
application/json
{
  • "BandwidthCapPolicyDef": {
    },
  • "CreatedAt": "2019-08-24T14:15:22Z",
  • "UUID": "string",
  • "UpdatedAt": "2019-08-24T14:15:22Z"
}

Update a specific bandwidth capacity policy

Update a specific bandwidth capacity policy

Authorizations:
Bearer
path Parameters
policyuuid
required
string

The UUID of the policy

Request Body schema: application/json
required

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.

Responses

Request samples

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
        }
    ]
}'

Response samples

Content type
application/json
{
  • "BandwidthCapPolicyDef": {
    },
  • "CreatedAt": "2019-08-24T14:15:22Z",
  • "UUID": "string",
  • "UpdatedAt": "2019-08-24T14:15:22Z"
}

Cloud Pricing

Get Provider pricing details

Gets regional pricing details for the specified Provider UUID. The information retrieved includes:

  • Data egress cost per GiB

The region must be one of :
  • us-east-1
  • ap-south-1

Authorizations:
Bearer
path Parameters
region
required
string

The region ( one of us-east-1 or ap-south-1 )

provideruuid
required
string

Provider UUID

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/cloudpricing/{provideruuid}/{region} \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer <your_access_token>' \
     

Response samples

Content type
application/json
{
  • "CostPerThousandGetSnapShotBlockAPICalls": 0.1,
  • "DataEgressCostPerGiB": 0.1,
  • "DeltaSyncDataOverheadMultiplier": 0.1
}

Events

Cancels the events CSVfile download

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

Authorizations:
Bearer

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/events/download/cancel \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer <your_access_token>' \
     

Response samples

Content type
application/json
{
  • "ApiVersion": "string",
  • "Code": 0,
  • "Kind": "string",
  • "Message": "string",
  • "State": "string"
}

Create the events csv file

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

Authorizations:
Bearer
Request Body schema: application/json
required

Input to download the events csv file

object (EventsFilter)

Filter for listing Move Events.

Responses

Request samples

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"
        ]
    }
}'

Response samples

Content type
application/json
{
  • "TaskUuid": "60e7d9b1-e34e-4d60-9bcd-0411d7a448bf"
}

Download the events csv file

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

Authorizations:
Bearer

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/events/download \
    --header 'Accept: application/x-gzip' \
    --header 'Authorization: Bearer <your_access_token>' \
     

Get a list of Move events

Get the list of Move events.

Input :-

  • Pagination details:- page number and records per page
  • Filter details:- Event types, VM names, Migration plan names, and status
Output :-
  • List of Move events
  • Paging details like total number of records, total number of pages, and current page number
Sample API Syntax: https://{move_ip}/move/v2/events

Authorizations:
Bearer
Request Body schema: application/json
required

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

Responses

Request samples

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
    }
}'

Response samples

Content type
application/json
{
  • "Events": [
    ],
  • "MetaData": {
    },
  • "PaginationDetails": {
    }
}

Get status of events csv file bundle

Tracks the status of events csv file bundle

Sample API Syntax: https://move.address/move/v2/events/download/status

Authorizations:
Bearer

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/events/download/status \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer <your_access_token>' \
     

Response samples

Content type
application/json
{
  • "EventsFileResponse": {
    }
}

IAM provider

Deregisters an IAM provider

Deregisters an IAM provider from Move.

Authorizations:
Bearer
path Parameters
id
required
string <uuid>

IAM provider UUID.

Request Body schema: application/json
required

IAM provider information required to deregister a provider.

ForceDeregister
boolean
Default: false

Forcefully deregister IAM provider from Move.

object (PcIamDeregisterInfo)

PC access information.

Responses

Request samples

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' \
     

Response samples

Content type
application/json
{
  • "APIVersion": "string",
  • "MetaData": {
    },
  • "Status": {
    }
}

Displays all IAM providers registered with Move

Displays all IAM providers registered with Move. Also, this API is used to fetch UI login details for IAM providers

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/iamproviders/view \
    --header 'Accept: application/json' \
     

Response samples

Content type
application/json
{
  • "Entities": [
    ]
}

Generates authentication token using given IAM provider

Generates authentication token from user credentials, refresh token or authorization code (generated during UI authentication) using a given IAM provider.

path Parameters
id
required
string <uuid>

IAM provider UUID.

Request Body schema: application/x-www-form-urlencoded
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".

Responses

Request samples

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"
}'

Response samples

Content type
application/json
{
  • "AccessToken": "xxx.yyy.zzz",
  • "Expiry": 1704067200,
  • "IamProviderUuid": "3af948bf-72ed-4fe8-90f5-f1d3cf592c7d",
  • "RefreshToken": "yyy",
  • "Username": "abc@mail.com"
}

Get IAM provider details.

Gets details of the IAM provider whose UUID is specified.

Authorizations:
Bearer
path Parameters
id
required
string <uuid>

IAM Provider UUID.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/iamproviders/{id} \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer <your_access_token>' \
     

Response samples

Content type
application/json
{
  • "MetaData": {
    },
  • "Spec": {
    }
}

List all IAM providers.

List all IAM providers registered with Move.

Authorizations:
Bearer

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/iamproviders \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer <your_access_token>' \
     

Response samples

Content type
application/json
{
  • "Entities": [
    ]
}

Registers a new IAM provider

Registers a new IAM provider with Move.

Currently, only Prism Central is supported as an IAM provider.

Authorizations:
Bearer
Request Body schema: application/json
required

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.

Responses

Request samples

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"
}'

Response samples

Content type
application/json
{
  • "MetaData": {
    },
  • "Spec": {
    }
}

Updates details for an existing IAM provider.

Updates details for an existing IAM provider.

Currently, only the user list update operation is allowed.

Authorizations:
Bearer
path Parameters
id
required
string <uuid>

IAM provider UUID.

Request Body schema: application/json
required

IAM provider information to be updated.

required
Array of objects (AuthRoleMap)

Responses

Request samples

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"
            ]
        }
    ]
}'

Response samples

Content type
application/json
{
  • "MetaData": {
    },
  • "Spec": {
    }
}

Plan

Cancel migration operation

Cancels scheduled/ongoing migration for the provided plan UUID.

Sample API Syntax: https://move.address/move/v2/plans/867b4a4f-cb8c-4416-8d7e-26e033023aa4/cancel

Authorizations:
Bearer
path Parameters
id
required
string

Migration plan UUID

Responses

Request samples

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' \
     

Response samples

Content type
application/json
{
  • "ApiVersion": "string",
  • "Code": 0,
  • "Kind": "string",
  • "Message": "string",
  • "State": "string"
}

Create a new migration plan

Creates a new migration plan.

Information required to create a migration plan include:

  • Source provider information
  • Target provider information
  • Network mappings
  • Schedule settings
  • Workload
Sample API Syntax: https://move.address/move/v2/plans

Authorizations:
Bearer
Request Body schema: application/json
required

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

Responses

Request samples

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"
}'

Response samples

Content type
application/json
{
  • "MetaData": {
    },
  • "Spec": {
    },
  • "Status": { }
}

Customize properties of the workload in the target

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

Authorizations:
Bearer
path Parameters
wid
required
string

Workload UUID

id
required
string

Migration plan UUID

Request Body schema: application/json
required

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.

Responses

Request samples

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"
    }
}'

Response samples

Content type
application/json
{
  • "APIVersion": "2.2.0",
  • "CustomProperties": {
    },
  • "MetaData": {
    }
}

Delete migration plan

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/

Authorizations:
Bearer
path Parameters
id
required
string

Migration plan UUID.

Responses

Request samples

curl --request DELETE \
    --url https://www.nutanix.dev/move/v2/plans/{id} \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer <your_access_token>' \
     

Response samples

Content type
application/json
{
  • "APIVersion": "string",
  • "MetaData": {
    },
  • "Status": {
    }
}

Fetch migration plan information

Get the migration plan details for the provided plan UUID. The details fetched include:

  • Plan status
  • Number of entities
  • Entity Schedule
  • Source provider information
  • Target provider information
  • Network mappings
  • Workload
Sample API Syntax: https://move.address/move/v2/plans/867b4a4f-cb8c-4416-8d7e-26e033023aa4/

Authorizations:
Bearer
path Parameters
id
required
string

Migration plan UUID.

query Parameters
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).

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/plans/{id} \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer <your_access_token>' \
     

Response samples

Content type
application/json
{
  • "MetaData": {
    },
  • "Spec": {
    }
}

Get the custom-view details of a workload

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

Authorizations:
Bearer
path Parameters
wid
required
string

Workload UUID

id
required
string

Migration plan UUID

Responses

Request samples

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>' \
     

Response samples

Content type
application/json
{
  • "APIVersion": "2.0.0",
  • "CustomProperties": {
    },
  • "MetaData": {
    }
}

Get the custom-view details of a workload's IP configuration

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

Authorizations:
Bearer
path Parameters
wid
required
string

Workload UUID

id
required
string

Migration plan UUID

Responses

Request samples

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>' \
     

Response samples

Content type
application/json
{
  • "APIVersion": "2.2.0",
  • "Data": {
    },
  • "MetaData": {
    }
}

Get workload details

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

Authorizations:
Bearer
path Parameters
wid
required
string

Workload UUID

id
required
string

Migration plan UUID

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/plans/{id}/workloads/{wid} \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer <your_access_token>' \
     

Response samples

Content type
application/json
{
  • "Status": {
    }
}

Get workloads

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

Authorizations:
Bearer
path Parameters
id
required
string

Migration plan UUID.

query Parameters
NumIterations
integer <uint64>

Number of iterations to be returned for a workload.

Responses

Request samples

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' \
     

Response samples

Content type
application/json
{
  • "Status": {
    }
}

List details of all migration plans

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:

  • Migration plan name
  • Migration plan UUID
  • Source provider information
  • Target provider information
  • Network mappings
  • Schedule settings
  • Workload
Sample API Syntax: https://move.address/move/v2/plans/list

Authorizations:
Bearer
query Parameters
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).

Request Body schema:

Filter the list of migration plans by providing input migration plan object.

EntityType
string
Enum: "VM" "Files"

Entity type filter.

Responses

Request samples

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"
}'

Response samples

Content type
application/json
{
  • "Entities": [
    ]
}

Perform migration plan readiness checks

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

Authorizations:
Bearer
path Parameters
id
required
string

Migration plan UUID.

Responses

Request samples

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' \
     

Response samples

Content type
application/json
{
  • "MetaData": {
    },
  • "Status": {
    }
}

Perform workload actions

Performs an action on the migration plan workload. The list of available workload actions:

  • Cutover
  • Test
  • Retest
  • Undotest
  • Retry
  • Discard
  • Abort
  • Suspend
  • Resume
  • Sync
Sample API Syntax: https://move.address/move/v2/plans/867b4a4f-cb8c-4416-8d7e-26e033023aa4/workloads/91cea36d-c857-4092-b232-d46484ee3205/action

Authorizations:
Bearer
path Parameters
wid
required
string

Workload UUID

id
required
string

Migration plan UUID

Request Body schema: application/json
required

Requested workload action to be performed on the VM.

APIVersion
string

Move API version

required
object

Workload action request.

Responses

Request samples

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"
    }
}'

Response samples

Content type
application/json
{
  • "APIVersion": "string",
  • "MetaData": {
    },
  • "Status": {
    }
}

Prepare the source environment for migrations

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

Authorizations:
Bearer
path Parameters
id
required
string

Migration plan UUID.

query Parameters
SkipIPRetention
boolean

Skip IP retention flag.

UninstallGuestTools
boolean

Uninstall guest tools flag.

Request Body schema: application/json

Workload credentials to prepare the source environment.

APIVersion
string

Move API version

object (MetaData)

Metadata information

object (GuestOperationsInput)
Type
string

Guest operation type.

Responses

Request samples

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"
}'

Response samples

Content type
{
  • "APIVersion": "string",
  • "MetaData": {
    },
  • "Spec": {
    },
  • "Status": {
    }
}

Resume suspended migration

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

Authorizations:
Bearer
path Parameters
id
required
string

Migration plan UUID

Responses

Request samples

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' \
     

Response samples

Content type
{
  • "ApiVersion": "string",
  • "Code": 0,
  • "Kind": "string",
  • "Message": "string",
  • "State": "string"
}

Start migration

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

Authorizations:
Bearer
path Parameters
id
required
string

Migration plan UUID.

Request Body schema: application/json

Snapshot frequency can be specified optionally.

APIVersion
string

Move API version

object (MetaData)

Metadata information

object

Snapshot frequency in minutes.

Responses

Request samples

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
    }
}'

Response samples

Content type
application/json
{
  • "APIVersion": "string",
  • "MetaData": {
    },
  • "Status": {
    }
}

Suspend ongoing migration

Suspends migration plan of provided plan UUID.

Sample API Syntax: https://move.address/move/v2/plans/867b4a4f-cb8c-4416-8d7e-26e033023aa4/suspend

Authorizations:
Bearer
path Parameters
id
required
string

Migration plan UUID

Responses

Request samples

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' \
     

Response samples

Content type
{
  • "ApiVersion": "string",
  • "Code": 0,
  • "Kind": "string",
  • "Message": "string",
  • "State": "string"
}

Trigger selective refresh for the selected source workload in the given plan.

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

Authorizations:
Bearer
path Parameters
wid
required
string

Workload UUID

id
required
string

Migration plan UUID

Request Body schema: application/json

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.

Responses

Request samples

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
}'

Response samples

Content type
application/json
{
  • "APIVersion": "string",
  • "Data": {
    },
  • "MetaData": {
    }
}

Update migration plan

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/

Authorizations:
Bearer
path Parameters
id
required
string

Migration plan UUID.

Request Body schema: application/json
required

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.

Responses

Response samples

Content type
{
  • "MetaData": {
    }
}

Provider

Add current Move IP to container allowlist

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

Authorizations:
Bearer
path Parameters
id
required
string

Provider UUID.

Request Body schema: application/json
required

Cluster and container details in which Move IP is to be allowlisted.

APIVersion
string

Move API Version

required
object

Cluster and container details.

Responses

Request samples

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
    }
}'

Response samples

Content type
application/json
{
  • "APIVersion": "string",
  • "MetaData": {
    },
  • "Status": {
    }
}

Create a new provider

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

Authorizations:
Bearer
Request Body schema: application/json
required

Provider object information required to create a new provider.

APIVersion
string

Move API version

object (MetaData)

Metadata information

object (Provider)

Information to add provider.

Responses

Request samples

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"
    }
}'

Response samples

Content type
{
  • "APIVersion": "string",
  • "MetaData": {
    },
  • "Spec": {
    },
  • "Status": {
    }
}

Delete a provider

Deletes a provider whose UUID is specified.

Sample API Syntax: https://move.address/move/v2/81b0a14d-c937-4872-b792-d46484ee8905

Authorizations:
Bearer
path Parameters
id
required
string

Provider UUID.

Responses

Request samples

curl --request DELETE \
    --url https://www.nutanix.dev/move/v2/providers/{id} \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer <your_access_token>' \
     

Response samples

Content type
application/json
{
  • "APIVersion": "string",
  • "MetaData": {
    },
  • "Status": {
    }
}

Fetch provider inventory information

Gets inventory of the provider. Inventory collection gathers information about the VMs in a provider. The information retrieved includes:

  • Cluster name
  • Data center name
  • Network details
  • OS type
  • Number of CPUs
  • VM names
  • VM UUIDs
Note: the refresh inventory flag can be used to refresh the inventory for the provider, if set to true.

Sample API Syntax: https://move.address/move/v2/81b0a14d-c937-4872-b792-d46484ee8905/workloads/list

Authorizations:
Bearer
path Parameters
id
required
string

Provider UUID.

Request Body schema: application/json

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'.

Responses

Request samples

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
}'

Response samples

Content type
{
  • "APIVersion": "string",
  • "Entities": [
    ],
  • "MetaData": {
    },
  • "Shares": [
    ]
}

Get information about all providers

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:

  • Provider name
  • Provider type
  • Provider UUID
  • Version
  • Role
Sample API Syntax: https://move.address/move/v2/providers/list

Authorizations:
Bearer
Request Body schema: application/json

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'.

Responses

Request samples

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
}'

Response samples

Content type
application/json
{
  • "Entities": [
    ],
  • "MetaData": {
    }
}

Get provider details

Gets details of a single provider whose UUID is specified. The information retrieved includes:

  • Provider name
  • Provider type
  • Provider UUID
  • Version
  • Role
Sample API Syntax: https://move.address/move/v2/81b0a14d-c937-4872-b792-d46484ee8905

Authorizations:
Bearer
path Parameters
id
required
string

Provider UUID.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/providers/{id} \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer <your_access_token>' \
     

Response samples

Content type
{
  • "APIVersion": "string",
  • "MetaData": {
    },
  • "Spec": {
    },
  • "Type": "string"
}

Remove IP from cluster and container allowlist.

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

Authorizations:
Bearer
path Parameters
id
required
string

Provider UUID.

Request Body schema: application/json
required

Cluster, container and IP details which are to be removed from allowlist.

APIVersion
string

Move API Version

required
object

Cluster, container and IP details.

Responses

Request samples

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' \
     

Response samples

Content type
application/json
{
  • "APIVersion": "string",
  • "MetaData": {
    },
  • "Status": {
    }
}

Update provider information

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

Authorizations:
Bearer
path Parameters
id
required
string

Provider UUID.

Request Body schema: application/json
required

Information required to be updated in the provider.

APIVersion
string

Move API version

object (MetaData)

Metadata information

object (Provider)

Information to add provider.

Responses

Request samples

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"
    }
}'

Response samples

Content type
{
  • "APIVersion": "string",
  • "MetaData": {
    },
  • "Spec": {
    },
  • "Status": {
    }
}

Validate provider information

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

Authorizations:
Bearer
path Parameters
id
required
string

Provider UUID.

Responses

Request samples

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' \
     

Response samples

Content type
{
  • "APIVersion": "string",
  • "MetaData": {
    },
  • "Spec": {
    },
  • "Type": "string"
}

Token

Checks if the token is authorized to access Move

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

Request Body schema: application/json
required

Authentication token whose authorization status will be checked.

Token
string

Authentication Token

Responses

Request samples

curl --request POST \
    --url https://www.nutanix.dev/move/v2/token/checkAuthorized \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{
    "Token": "string"
}'

Response samples

Content type
application/json
{
  • "APIVersion": "string",
  • "MetaData": {
    },
  • "Status": {
    }
}

Revoke an authentication token

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

Authorizations:
Bearer
Request Body schema: application/json
required

Authentication Token that needs to be validated.

APIVersion
string

Move API Version

object (Token)

Authentication Token

Responses

Request samples

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"
    }
}'

Response samples

Content type
application/json
{
  • "status": {
    }
}

Validate the authentication token

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

Authorizations:
Bearer
Request Body schema: application/json
required

Authentication token that needs to be validated.

APIVersion
string

Move API Version

object (Token)

Authentication Token

Responses

Request samples

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"
    }
}'

Response samples

Content type
application/json
{
  • "status": {
    }
}

Validate the authentication token in the Authorization header

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

Authorizations:
Bearer

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/token/status \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer <your_access_token>' \
     

Response samples

Content type
application/json
{
  • "Message": "Invalid Token"
}

Upgrade

Check for Move application upgrades

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

Authorizations:
Bearer
query Parameters
ReCache
boolean
Default: false

Update metadata while checking for upgrade.

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/checkUpgrade \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer <your_access_token>' \
     

Response samples

Content type
application/json
{
  • "Status": {
    }
}

Get information about the upgrade bundle which was uploaded offline

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

Authorizations:
Bearer

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/uploadUpgradeFiles \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer <your_access_token>' \
     

Response samples

Content type
application/json
{
  • "Status": {
    }
}

Get status of an ongoing Move application upgrade

Checks the status of the ongoing upgrade of the Move application and returns following information about the upgrade:

  • Online/offline
  • Current version
  • Latest version
  • Percentage progress
  • Tasks completed
Sample API Syntax: https://move.address/move/v2/upgrade

Authorizations:
Bearer

Responses

Request samples

curl --request GET \
    --url https://www.nutanix.dev/move/v2/upgrade \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer <your_access_token>' \
     

Response samples

Content type
application/json
{
  • "Status": {
    }
}

Initiate Move application upgrade

Initiates the Move application upgrade and returns upgrade information:

  • Online/offline
  • Current version
  • Latest version
  • Percentage progress
  • Tasks completed
Sample API Syntax: https://move.address/move/v2/upgrade

Authorizations:
Bearer
Request Body schema: application/json
required

Information required to trigger a Move application upgrade.

APIVersion
string

Move API Version.

object (XtractInitUpgradeInfo)

Move application upgrade information.

Responses

Request samples

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"
    }
}'

Response samples

Content type
application/json
{
  • "Status": {
    }
}

Upload the offline upgrade files

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

Authorizations:
Bearer
Request Body schema: multipart/form-data
upBundleFile
string

The application bundle to be uploaded.

upMetaFile
string

The metadata file corresponding to the uploaded bundle.

Responses

Request samples

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' \
     

Response samples

Content type
application/json
{
  • "Status": {
    }
}

User

Change Move application password

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

Authorizations:
Bearer
path Parameters
id
required
integer <int64>

User Id.

Request Body schema: application/json
required

New Move application password to be updated.

APIVersion
string

Move API version

object (ChangePwd)

Change password for Move application.

Responses

Request samples

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"
    }
}'

Response samples

Content type
application/json
{
  • "Spec": {
    },
  • "Status": {
    }
}

Login to the Move application.

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

Request Body schema: application/json
required

Move application login credentials.

APIVersion
string

Move API Version

object (Login)

Details of the user including login information.

Responses

Request samples

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"
    }
}'

Response samples

Content type
application/json
{
  • "Metadata": {
    },
  • "Spec": {
    },
  • "Status": {
    }
}

Refresh and obtain the new authentication token

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

Authorizations:
Bearer
path Parameters
id
required
integer <int64>

Move user Id.

Responses

Request samples

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' \
     

Response samples

Content type
application/json
{
  • "status": {
    }
}

Workload

Batch workload actions composed of multiple workloads from different migration plans

Performs workload actions from different migration plans in a batch using a single API. The list of available workload actions:

  • Cutover
  • Test
  • Retest
  • Undotest
  • Retry
  • Discard
  • Abort
  • Suspend
  • Resume
  • Sync
Sample API Syntax: https://move.address/move/v2/plans/workloads/action

Authorizations:
Bearer
Request Body schema: application/json
required

Perform specified action in a batch of workloads.

APIVersion
string

Move API version.

required
object

Workload batch action request.

Responses

Request samples

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"
            }
        ]
    }
}'

Response samples

Content type
{
  • "Status": [
    ]
}

Downloads a file with a list of failed files and failure reasons.

Downloads a file with a list of failed files and failure reasons.

Authorizations:
Bearer
path Parameters
iterationid
required
integer <uint64>

Iteration number.

wid
required
string

Workload UUID.

id
required
string

Migration plan UUID.

Responses

Request samples

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>' \
     

Response samples

Content type
{
  • "ApiVersion": "string",
  • "Code": 0,
  • "Kind": "string",
  • "Message": "string",
  • "State": "string"
}

Get workload information from all migration plans by applying given filters

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

Authorizations:
Bearer
query Parameters
NumIterations
integer <uint64>

Number of iterations to be returned for a workload.

Request Body schema:

Workload search filter can be specified to list only required workload information.

object (WorkloadSearchFilterByReferencesAndStates)

Filter to select and view specific VMs from a workload.

Responses

Request samples

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"
        ]
    }
}'

Response samples

Content type
application/json
{
  • "Status": [
    ]
}