Nutanix VMs API
Manage virtual machines including creation, update, deletion, and power state operations through the intent-based API model.
Manage virtual machines including creation, update, deletion, and power state operations through the intent-based API model.
openapi: 3.1.0
info:
title: Nutanix Prism Central API v3 Alerts VMs API
description: RESTful API for managing Nutanix clusters, VMs, storage, networking, and other infrastructure components through Prism Central. The v3 API uses an intent-based model where resources are defined by their desired state, and the system works to achieve that state. All list operations use POST with server-side filtering, grouping, and sorting. Authentication is via HTTP Basic Auth with Prism Central credentials.
version: 3.1.0
contact:
name: Nutanix Developer Support
email: developer@nutanix.com
url: https://www.nutanix.dev/
termsOfService: https://www.nutanix.com/legal/terms-of-use
servers:
- url: https://{prismCentralIp}:9440/api/nutanix/v3
description: Prism Central Server
variables:
prismCentralIp:
default: localhost
description: IP address or FQDN of the Prism Central instance.
security:
- basicAuth: []
tags:
- name: VMs
description: Manage virtual machines including creation, update, deletion, and power state operations through the intent-based API model.
paths:
/vms/list:
post:
operationId: listVms
summary: Nutanix List virtual machines
description: Retrieves a list of VMs with optional filtering, sorting, and pagination. The v3 API standardizes on POST for list operations to support server-side filtering, grouping, and sorting via the request body.
tags:
- VMs
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ListMetadata'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/VmListResponse'
'401':
description: Unauthorized
'500':
description: Internal server error
/vms:
post:
operationId: createVm
summary: Nutanix Create a virtual machine
description: Creates a new VM using the intent-based spec. The request includes the desired specification and metadata. The system returns a task that tracks the creation progress.
tags:
- VMs
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/VmIntentInput'
responses:
'202':
description: Accepted - VM creation task started
content:
application/json:
schema:
$ref: '#/components/schemas/VmIntentResponse'
'400':
description: Bad request
'401':
description: Unauthorized
get:
operationId: listVms
summary: Nutanix List virtual machines
description: Retrieves a list of all VMs on the local cluster with their configuration and current state.
tags:
- VMs
parameters:
- name: include_vm_disk_config
in: query
description: Include VM disk configuration details in the response.
schema:
type: boolean
default: false
- name: include_vm_nic_config
in: query
description: Include VM NIC configuration details in the response.
schema:
type: boolean
default: false
responses:
'200':
description: Success
'401':
description: Unauthorized
/vms/{uuid}:
get:
operationId: getVm
summary: Nutanix Get a virtual machine
description: Retrieves the current state and specification of a VM by its UUID.
tags:
- VMs
parameters:
- $ref: '#/components/parameters/Uuid'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/VmIntentResponse'
'401':
description: Unauthorized
'404':
description: VM not found
put:
operationId: updateVm
summary: Nutanix Update a virtual machine
description: Updates the specification of an existing VM. The full intent spec must be provided including unchanged fields.
tags:
- VMs
parameters:
- $ref: '#/components/parameters/Uuid'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/VmIntentInput'
responses:
'202':
description: Accepted - VM update task started
content:
application/json:
schema:
$ref: '#/components/schemas/VmIntentResponse'
'400':
description: Bad request
'401':
description: Unauthorized
'404':
description: VM not found
delete:
operationId: deleteVm
summary: Nutanix Delete a virtual machine
description: Deletes a VM identified by its UUID.
tags:
- VMs
parameters:
- $ref: '#/components/parameters/Uuid'
responses:
'202':
description: Accepted - VM deletion task started
'401':
description: Unauthorized
'404':
description: VM not found
/vms/{id}:
get:
operationId: getVm
summary: Nutanix Get a virtual machine
description: Retrieves detailed information about a specific VM by its ID.
tags:
- VMs
parameters:
- $ref: '#/components/parameters/EntityId'
responses:
'200':
description: Success
'401':
description: Unauthorized
'404':
description: VM not found
/vms/{id}/set_power_state:
post:
operationId: setVmPowerState
summary: Nutanix Set VM power state
description: Changes the power state of a VM to ON, OFF, POWERCYCLE, RESET, PAUSE, SUSPEND, or ACPI_SHUTDOWN.
tags:
- VMs
parameters:
- $ref: '#/components/parameters/EntityId'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- transition
properties:
transition:
type: string
enum:
- 'ON'
- 'OFF'
- POWERCYCLE
- RESET
- PAUSE
- SUSPEND
- ACPI_SHUTDOWN
description: The power state transition to perform.
responses:
'200':
description: Success
'401':
description: Unauthorized
'404':
description: VM not found
components:
schemas:
VmSpec:
type: object
description: VM specification describing the desired state.
properties:
name:
type: string
description: The name of the VM.
description:
type: string
description: A description of the VM.
resources:
type: object
description: VM resource configuration.
properties:
num_sockets:
type: integer
description: Number of vCPU sockets.
minimum: 1
num_vcpus_per_socket:
type: integer
description: Number of vCPUs per socket.
minimum: 1
memory_size_mib:
type: integer
description: Memory size in MiB.
minimum: 1
power_state:
type: string
description: The desired power state of the VM.
enum:
- 'ON'
- 'OFF'
disk_list:
type: array
items:
type: object
properties:
device_properties:
type: object
properties:
device_type:
type: string
enum:
- DISK
- CDROM
disk_address:
type: object
properties:
adapter_type:
type: string
enum:
- SCSI
- IDE
- PCI
- SATA
- SPAPR
device_index:
type: integer
disk_size_mib:
type: integer
description: Size of the disk in MiB.
description: List of disks attached to the VM.
nic_list:
type: array
items:
type: object
properties:
subnet_reference:
$ref: '#/components/schemas/Reference'
ip_endpoint_list:
type: array
items:
type: object
properties:
ip:
type: string
description: IP address.
type:
type: string
enum:
- ASSIGNED
- LEARNED
description: List of NICs attached to the VM.
cluster_reference:
$ref: '#/components/schemas/Reference'
Reference:
type: object
description: A reference to another entity.
required:
- kind
- uuid
properties:
kind:
type: string
description: The kind of entity being referenced.
uuid:
type: string
format: uuid
description: The UUID of the referenced entity.
name:
type: string
description: The name of the referenced entity.
VmIntentInput:
type: object
description: Input for creating or updating a VM with the intent model.
required:
- spec
- metadata
properties:
spec:
$ref: '#/components/schemas/VmSpec'
metadata:
$ref: '#/components/schemas/EntityMetadata'
VmIntentResponse:
type: object
description: Response containing VM intent status and spec.
properties:
status:
type: object
description: The current status of the VM.
spec:
$ref: '#/components/schemas/VmSpec'
metadata:
$ref: '#/components/schemas/EntityMetadata'
VmListResponse:
type: object
description: Response for listing VMs.
properties:
api_version:
type: string
description: API version.
metadata:
$ref: '#/components/schemas/ListMetadata'
entities:
type: array
items:
$ref: '#/components/schemas/VmIntentResponse'
description: List of VM intent responses.
EntityMetadata:
type: object
description: Metadata for an entity.
properties:
kind:
type: string
description: The kind of entity.
uuid:
type: string
format: uuid
description: The UUID of the entity.
spec_version:
type: integer
description: Version number of the spec.
categories:
type: object
additionalProperties:
type: string
description: Categories assigned to the entity as key-value pairs.
owner_reference:
$ref: '#/components/schemas/Reference'
project_reference:
$ref: '#/components/schemas/Reference'
ListMetadata:
type: object
description: Request body for list operations supporting server-side filtering, sorting, and pagination.
properties:
kind:
type: string
description: The entity kind to list.
offset:
type: integer
description: Offset from the start of the entity list.
minimum: 0
length:
type: integer
description: The number of records to retrieve.
minimum: 1
maximum: 500
filter:
type: string
description: The filter criteria in FIQL format.
sort_order:
type: string
description: The sort order.
enum:
- ASCENDING
- DESCENDING
sort_attribute:
type: string
description: The attribute to sort results by.
parameters:
Uuid:
name: uuid
in: path
required: true
description: The UUID of the entity.
schema:
type: string
format: uuid
EntityId:
name: id
in: path
required: true
description: The ID of the entity.
schema:
type: string
securitySchemes:
basicAuth:
type: http
scheme: basic
description: HTTP Basic Authentication using Prism Central username and password credentials.
externalDocs:
description: Nutanix Prism Central v3 API Documentation
url: https://www.nutanix.dev/api_references/prism-central-v3/