openapi: 3.0.1
info:
title: FlashArray REST Active Directory Virtual Machines API
version: '2.52'
description: 'Active Directory configuration authenticates users for NFS using Kerberos or SMB using Kerberos
or New Technology LAN Manager (NTLM). Active Directory is also used to authorize users by
mapping identities across the NFS and SMB protocols by using LDAP queries.
'
servers:
- url: /
tags:
- name: Virtual Machines
paths:
/api/2.52/virtual-machines:
get:
tags:
- Virtual Machines
summary: Pure Storage List Virtual Machines
description: 'Displays a list of virtual machines, including those pending eradication.
If `vm_type` is `vvol`, the `recovery_context` in the response will represent
the most recent snapshot of the config vVol. This must be used as the `source` in
the `PATCH` method when recovering a virtual machine from the destroyed state.
'
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Continuation_token'
- $ref: '#/components/parameters/Destroyed'
- $ref: '#/components/parameters/Filter'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Sort'
- $ref: '#/components/parameters/Total_item_count'
- name: vm_ids
in: query
description: 'Performs the operation on the unique virtual machine IDs specified.
Enter multiple virtual machine IDs in a comma-separated format.
'
style: form
explode: false
schema:
type: array
items:
type: string
- name: vm_type
in: query
description: 'The type of virtual machine.
The only valid value is `vvol`.
'
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/VirtualMachineGetResponse'
post:
tags:
- Virtual Machines
summary: Pure Storage Create a Virtual Machine
description: 'Creates one or more virtual machines from a protection group snapshot.
If the virtual machine is of type `vvol`, the `source` property of the request body must
be a `recovery_context` value retrieved from the `GET /virtual-machine-snapshots` endpoint.
If `overwrite` is specified, an existing virtual machine will have its volumes overwritten by
the snapshot. Otherwise, a new virtual machine will be created from the snapshot.
If creating the new virtual machine will cause a conflict with an existing virtual machine, the
operation will fail.
'
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Overwrite'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VirtualMachinePost'
required: true
x-codegen-request-body-name: virtual-machine
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/VirtualMachineResponse'
x-codegen-request-body-name: virtual-machine
patch:
tags:
- Virtual Machines
summary: Pure Storage Update a Virtual Machine
description: 'Updates a virtual machine, recovering it from the destroyed state.
If the virtual machine is of type `vvol`, the `source` property of the request body must
be a `recovery_context` value retrieved from the `GET /virtual-machines` endpoint.
If recovering the virtual machine will cause a conflict with an existing virtual machine, the
operation will fail.
'
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VirtualMachinePost'
required: true
x-codegen-request-body-name: virtual-machine
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/VirtualMachineResponse'
x-codegen-request-body-name: virtual-machine
/api/2.52/virtual-machine-volume-snapshots:
get:
tags:
- Virtual Machines
summary: Pure Storage List Virtual Machine Volume Snapshots
description: 'Displays a list of virtual machine volume snapshots, including those pending eradication.
If `vm_type` is `vvol`, the `recover_context` in the response will represent
a protection group snapshot containing the virtual machine volume.
'
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Continuation_token'
- $ref: '#/components/parameters/Destroyed'
- $ref: '#/components/parameters/Filter'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Sort'
- $ref: '#/components/parameters/Total_item_count'
- name: vm_ids
in: query
description: 'Performs the operation on the unique virtual machine IDs specified.
Enter multiple resource IDs in a comma-separated format.
'
required: true
style: form
explode: false
schema:
type: array
items:
type: string
- name: vm_type
in: query
description: 'The type of virtual machine.
The only valid value is `vvol`.
'
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/VirtualMachineVolumeSnapshotResponse'
/api/2.52/virtual-machine-snapshots:
get:
tags:
- Virtual Machines
summary: Pure Storage List Virtual Machine Snapshots
description: 'Displays a list of virtual machine snapshots, including those pending eradication.
If `vm_type` is `vvol`, the `recovery_context` in the response will represent
a protection group snapshot containing the virtual machine. This must be used as
the `source` in the `POST /virtual-machine` method when recovering or overwriting a
virtual machine from a snapshot.
'
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Continuation_token'
- $ref: '#/components/parameters/Destroyed'
- $ref: '#/components/parameters/Filter'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Sort'
- $ref: '#/components/parameters/Total_item_count'
- name: vm_ids
in: query
description: 'Performs the operation on the unique virtual machine IDs specified.
Enter multiple resource IDs in a comma-separated format.
'
style: form
explode: false
schema:
type: array
items:
type: string
- name: vm_type
in: query
description: 'The type of virtual machine.
The only valid value is `vvol`.
'
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/VirtualMachineGetResponse'
components:
schemas:
VirtualMachineVolumeSnapshot:
type: object
properties:
created:
description: 'The virtual machine volume snapshot creation time
measured in milliseconds since the UNIX epoch.
'
type: integer
format: int64
readOnly: true
destroyed:
description: 'Returns a value of `true` if the virtual machine volume snapshot
has been destroyed and is pending eradication.
'
type: boolean
readOnly: true
id:
description: 'A globally unique, system-generated ID.
The ID cannot be modified.
'
type: string
readOnly: true
name:
description: 'The name of the virtual machine volume snapshot.
'
type: string
readOnly: true
recover_context:
description: 'A reference to any additional entities needed to recover this virtual machine.
'
title: FixedReference
allOf:
- $ref: '#/components/schemas/_fixedReference'
time_remaining:
description: 'Specifies the amount of time left until the destroyed volume snapshot is
permanently eradicated, measured in milliseconds.
Once the `time_remaining` period has elapsed,
the volume snapshot is permanently eradicated and can no longer be recovered.
'
type: integer
format: int64
readOnly: true
vm_id:
description: 'The ID of the virtual machine, as assigned by the external system.
'
type: string
readOnly: true
vm_type:
description: 'The type of virtual machine.
The only valid value is `vvol`.
'
type: string
readOnly: true
example: vvol
vvol_name:
description: 'The name of the virtual machine volume.
'
type: string
readOnly: true
vvol_type:
description: 'The type of virtual machine volume. Values include `config` and `data`.
'
type: string
readOnly: true
example: config
VirtualMachineGetResponse:
allOf:
- $ref: '#/components/schemas/PageInfo'
- type: object
properties:
items:
description: 'Displays a list of all items after filtering.
The values are displayed for each name if meaningful.
'
type: array
items:
$ref: '#/components/schemas/VirtualMachine'
_reference:
type: object
properties:
id:
description: 'A globally unique, system-generated ID.
The ID cannot be modified.
'
type: string
name:
description: 'The resource name, such as volume name, pod name,
snapshot name, and so on.
'
type: string
x-aliases:
- _referenceWithoutType
VirtualMachineVolumeSnapshotResponse:
allOf:
- $ref: '#/components/schemas/PageInfo'
- type: object
properties:
items:
description: 'Displays a list of all items after filtering.
The values are displayed for each name if meaningful.
'
type: array
items:
$ref: '#/components/schemas/VirtualMachineVolumeSnapshot'
VirtualMachineResponse:
type: object
properties:
items:
description: 'Displays a list of all items after filtering.
The values are displayed for each name if meaningful.
'
type: array
items:
$ref: '#/components/schemas/VirtualMachine'
VirtualMachine:
type: object
properties:
created:
description: 'The virtual machine creation time, measured in milliseconds since the UNIX epoch.
'
type: integer
format: int64
readOnly: true
destroyed:
description: 'Returns a value of `true` if the virtual machine has been destroyed and is pending
eradication.
'
type: boolean
readOnly: true
id:
description: 'The ID of the virtual machine to create or modify, as assigned by the external system.
`id` is deprecated. Use `vm_id` instead.
'
type: string
name:
description: 'The name of the virtual machine, as assigned by the external system
'
type: string
readOnly: true
recover_context:
description: 'A reference to any additional entities needed to recover this virtual machine.
'
title: FixedReference
allOf:
- $ref: '#/components/schemas/_fixedReference'
time_remaining:
description: 'The amount of time left until the destroyed volume is permanently eradicated,
measured in milliseconds.
Before the `time_remaining` period has elapsed, the destroyed volume can be recovered
by setting `destroyed=false`.
'
type: integer
format: int64
readOnly: true
vm_id:
description: 'The ID of the virtual machine, as assigned by the external system.
'
type: string
readOnly: true
vm_type:
description: 'The type of virtual machine.
The only valid value is `vvol`.
'
type: string
readOnly: true
example: vvol
VirtualMachinePost:
type: object
properties:
id:
description: 'The ID of the virtual machine to create or modify, as assigned by the external system.
`id` is deprecated. Use `vm_id` instead.
'
type: string
source:
description: 'The recovery context for the virtual machine or virtual machine snapshot
being modified.
'
title: Reference
allOf:
- $ref: '#/components/schemas/_reference'
vm_id:
description: 'The ID of the virtual machine to create or modify, as assigned by the external system.
'
type: string
vm_type:
description: 'The type of virtual machine.
The only valid value is `vvol`.
'
type: string
example: vvol
_fixedReference:
type: object
properties:
id:
description: 'A globally unique, system-generated ID.
The ID cannot be modified.
'
type: string
readOnly: true
name:
description: 'The resource name, such as volume name, file system name,
snapshot name, and so on.
'
type: string
readOnly: true
x-readOnly: true
x-aliases:
- _fixedReferenceWithoutType
PageInfo:
type: object
properties:
continuation_token:
description: 'Continuation token that can be provided in the `continuation_token`
query param to get the next page of data.
If you use the continuation token to page through data you
are guaranteed to get all items exactly once regardless of
how items are modified. If an item is added or deleted during
the pagination then it may or may not be returned.
The continuation token is generated if the limit is less
than the remaining number of items, and the default sort is used
(no sort is specified).
'
type: string
more_items_remaining:
description: 'Returns a value of `true` if subsequent items can be retrieved.
'
type: boolean
example: false
total_item_count:
description: 'The total number of records after applying all filter query parameters.
The `total_item_count` will be calculated if and only if the corresponding
query parameter `total_item_count` is set to `true`. If this query parameter
is not set or set to `false`, a value of `null` will be returned.
'
type: integer
format: int32
parameters:
Offset:
name: offset
in: query
description: 'The starting position based on the results of the query
in relation to the full set of response objects returned.
'
schema:
type: integer
format: int32
minimum: 0
example: 10
Filter:
name: filter
in: query
description: 'Narrows down the results to only the response objects
that satisfy the filter criteria.
'
schema:
type: string
Overwrite:
name: overwrite
in: query
description: 'If set to `true`,
overwrites an existing object during an object copy operation.
If set to `false` or not set at all and the target name is an existing object,
the copy operation fails.
Required if the `source` body parameter is set
and the source overwrites an existing object during the copy operation.
'
schema:
type: boolean
Continuation_token:
name: continuation_token
in: query
description: 'A token used to retrieve the next page of data
with some consistency guaranteed.
The token is a Base64 encoded value.
Set `continuation_token` to the system-generated token taken from the `x-next-token`
header field of the response.
A query has reached its last page when the response does not include a token.
Pagination requires the `limit` and `continuation_token`
query parameters.
'
schema:
type: string
XRequestId:
name: X-Request-ID
in: header
description: 'Supplied by client during request or generated by server.
'
schema:
type: string
Limit:
name: limit
in: query
description: 'Limits the size of the response to the specified number of objects on each page.
To return the total number of resources, set `limit=0`.
The total number of resources is returned as a `total_item_count` value.
If the page size requested is larger than the system maximum limit,
the server returns the maximum limit, disregarding the requested page size.
'
schema:
type: integer
format: int32
minimum: 0
example: 10
Authorization:
name: Authorization
in: header
description: 'Access token (in JWT format) required to use any API
endpoint (except `/oauth2`, `/login`, and `/logout`)
'
schema:
type: string
Total_item_count:
name: total_item_count
in: query
description: 'If set to `true`, the `total_item_count` matching the
specified query parameters is calculated and returned in
the response. If set to `false`, the `total_item_count`
is `null` in the response. This may speed up queries
where the `total_item_count` is large. If not specified,
defaults to `false`.
'
schema:
type: boolean
Destroyed:
name: destroyed
in: query
description: 'If set to `true`, lists only destroyed objects that are in the eradication pending state.
If set to `false`, lists only objects that are not destroyed.
If not set, lists both objects that are destroyed and those that are not destroyed.
For destroyed objects, the time remaining is displayed in milliseconds.
If object name(s) or id(s) are specified, then each object referenced must exist.
If `destroyed` is set to `true`, then each object referenced must also be destroyed.
If `destroyed` is set to `false`, then each object referenced must also not be destroyed.
An error is returned if any of these conditions are not met.
'
schema:
type: boolean
Sort:
name: sort
in: query
description: "Sorts the response objects by the specified fields. Sorting can be applied to any field name\n in the response, in ascending order by default, or in descending order by prefixing the\n field name with a minus sign (-). Multiple fields can be specified as a comma-separated\n list (e.g., sort volumes by size descending, then by name ascending). If sort is provided,\n the response will not include a continuation_token.\n"
style: form
explode: false
schema:
type: array
items:
pattern: ^[a-z]+(_[a-z]+)*-?
type: string