Compute

Version:
2.96

This is a reference for the OpenStack Compute API which is provided by the Nova project. To learn more about the OpenStack Compute API concepts, please refer to the API guide.

version

List All Major Versions

This fetches all the information about all known major API versions in the deployment. Links to more specific information will be provided for each API version, as well as information about supported min and max microversions.

Normal Response Codes: 200

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the :get operation"
}
404

Error

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the versions/id:get operation"
}
404

Error

extensions

List Extensions

Lists all extensions to the API.

Normal response codes: 200

Error response codes: unauthorized(401)

Responses

200

Ok

{
  "type": "object",
  "description": "An extension object.",
  "properties": {
    "extensions": {
      "type": "array",
      "items": {
        "type": "object",
        "description": "An extension object.",
        "properties": {
          "alias": {
            "type": "string",
            "description": "A short name by which this extension is also known."
          },
          "description": {
            "type": "string",
            "description": "Text describing this extension\u2019s purpose."
          },
          "links": {
            "type": "array",
            "description": "Links pertaining to this extension. This is a list of dictionaries, each including\nkeys `href` and `rel`.",
            "items": {
              "type": "object",
              "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
              "properties": {
                "href": {
                  "type": "string",
                  "format": "uri"
                },
                "rel": {
                  "type": "string"
                }
              }
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the extension."
          },
          "namespace": {
            "type": "string",
            "description": "A URL pointing to the namespace for this extension."
          },
          "updated": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time when the resource was updated. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
          }
        }
      },
      "description": "List of `extension` objects."
    }
  }
}

Name

Location

Type

Description

extensions

body

array

List of extension objects.

extensions[].alias

body

string

A short name by which this extension is also known.

extensions[].description

body

string

Text describing this extension’s purpose.

extensions[].links

body

array

Links pertaining to this extension. This is a list of dictionaries, each including keys href and rel.

extensions[].links[].href

body

string

extensions[].links[].rel

body

string

extensions[].name

body

string

Name of the extension.

extensions[].namespace

body

string

A URL pointing to the namespace for this extension.

extensions[].updated

body

string

The date and time when the resource was updated. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

Show Extension Details

Shows details for an extension, by alias.

Normal response codes: 200

Error response codes: unauthorized(401), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "An extension object.",
  "properties": {
    "extension": {
      "type": "object",
      "description": "An `extension` object.",
      "properties": {
        "alias": {
          "type": "string",
          "description": "A short name by which this extension is also known."
        },
        "description": {
          "type": "string",
          "description": "Text describing this extension\u2019s purpose."
        },
        "links": {
          "type": "array",
          "description": "Links pertaining to this extension. This is a list of dictionaries, each including\nkeys `href` and `rel`.",
          "items": {
            "type": "object",
            "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
            "properties": {
              "href": {
                "type": "string",
                "format": "uri"
              },
              "rel": {
                "type": "string"
              }
            }
          }
        },
        "name": {
          "type": "string",
          "description": "Name of the extension."
        },
        "namespace": {
          "type": "string",
          "description": "A URL pointing to the namespace for this extension."
        },
        "updated": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the resource was updated. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        }
      }
    }
  }
}

Name

Location

Type

Description

extension

body

object

An extension object.

extension.alias

body

string

A short name by which this extension is also known.

extension.description

body

string

Text describing this extension’s purpose.

extension.links

body

array

Links pertaining to this extension. This is a list of dictionaries, each including keys href and rel.

extension.links[].href

body

string

extension.links[].rel

body

string

extension.name

body

string

Name of the extension.

extension.namespace

body

string

A URL pointing to the namespace for this extension.

extension.updated

body

string

The date and time when the resource was updated. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

404

Error

flavors

Show and manage server flavors.

List Flavors

Lists all flavors accessible to your project.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "description": "Flavors list response",
  "properties": {
    "flavors": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "The ID of the flavor. While people often make this look like\nan int, this is really a string."
          },
          "name": {
            "type": "string",
            "description": "The display name of a flavor."
          },
          "description": {
            "type": "string",
            "description": "The description of the flavor.\n\n\n**New in version 2\\.55**"
          },
          "links": {
            "type": "array",
            "description": "Links to the resources in question. See [API Guide / Links and\nReferences](https://docs.openstack.org/api-guide/compute/links_and_references.html)\nfor more info.",
            "items": {
              "type": "object",
              "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
              "properties": {
                "href": {
                  "type": "string",
                  "format": "uri"
                },
                "rel": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "description": "An array of flavor objects."
    }
  }
}

Name

Location

Type

Description

flavors

body

array

An array of flavor objects.

flavors[].id

body

string

The ID of the flavor. While people often make this look like an int, this is really a string.

flavors[].name

body

string

The display name of a flavor.

flavors[].description

body

string

The description of the flavor.

New in version 2.55

flavors[].links

body

array

Links to the resources in question. See API Guide / Links and References for more info.

flavors[].links[].href

body

string

flavors[].links[].rel

body

string

400

Error

Create Flavor

Creates a flavor.

Creating a flavor is typically only available to administrators of a cloud because this has implications for scheduling efficiently in the cloud.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), conflict(409)

Request

Name

Location

Type

Description

flavor

body

object

The ID and links for the flavor for your server instance. A flavor is a combination of memory, disk size, and CPUs.

flavor.name

body

string

The display name of a flavor.

flavor.id

body

[‘string’, ‘number’, ‘null’]

Only alphanumeric characters with hyphen ‘-’, underscore ‘_’, spaces and dots ‘.’ are permitted. If an ID is not provided, then a default UUID will be assigned.

flavor.ram

body

[‘integer’, ‘string’]

The number of virtual CPUs that will be allocated to the server.

flavor.vcpus

body

[‘integer’, ‘string’]

The number of virtual CPUs that will be allocated to the server.

flavor.disk

body

[‘integer’, ‘string’]

The size of a dedicated swap disk that will be allocated, in MiB. If 0 (the default), no dedicated swap disk will be created.

flavor.OS-FLV-EXT-DATA:ephemeral

body

[‘integer’, ‘string’]

The size of a dedicated swap disk that will be allocated, in MiB. If 0 (the default), no dedicated swap disk will be created.

flavor.swap

body

[‘integer’, ‘string’]

The size of a dedicated swap disk that will be allocated, in MiB. If 0 (the default), no dedicated swap disk will be created.

flavor.rxtx_factor

body

[‘number’, ‘string’]

The receive / transmit factor (as a float) that will be set on ports if the network backend supports the QOS extension. Otherwise it will be ignored. It defaults to 1.0.

flavor.os-flavor-access:is_public

body

[‘boolean’, ‘string’]

Whether the flavor is public (available to all projects) or scoped to a set of projects. Default is True if not specified.

flavor.description

body

[‘string’, ‘null’]

A free form description of the flavor. Limited to 65535 characters in length. Only printable characters are allowed.

New in version 2.55

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "flavor": {
          "type": "object",
          "description": "The ID and links for the flavor for your server instance. A flavor is a combination\nof memory, disk size, and CPUs.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name_with_leading_trailing_spaces",
              "description": "The display name of a flavor."
            },
            "id": {
              "type": [
                "string",
                "number",
                "null"
              ],
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^(?! )[a-zA-Z0-9. _-]+(?<! )$",
              "description": "Only alphanumeric characters with hyphen \u2018\\-\u2019, underscore \u2018_\u2019, spaces\nand dots \u2018.\u2019 are permitted. If an ID is not provided, then a default UUID\nwill be assigned."
            },
            "ram": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]+$",
              "minimum": 1,
              "maximum": 2147483647,
              "description": "The number of virtual CPUs that will be allocated to the server."
            },
            "vcpus": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]+$",
              "minimum": 1,
              "maximum": 2147483647,
              "description": "The number of virtual CPUs that will be allocated to the server."
            },
            "disk": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]+$",
              "minimum": 0,
              "maximum": 2147483647,
              "description": "The size of a dedicated swap disk that will be allocated, in\nMiB. If 0 (the default), no dedicated swap disk will be created."
            },
            "OS-FLV-EXT-DATA:ephemeral": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]+$",
              "minimum": 0,
              "maximum": 2147483647,
              "description": "The size of a dedicated swap disk that will be allocated, in\nMiB. If 0 (the default), no dedicated swap disk will be created."
            },
            "swap": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]+$",
              "minimum": 0,
              "maximum": 2147483647,
              "description": "The size of a dedicated swap disk that will be allocated, in\nMiB. If 0 (the default), no dedicated swap disk will be created."
            },
            "rxtx_factor": {
              "type": [
                "number",
                "string"
              ],
              "pattern": "^[0-9]+(\\.[0-9]+)?$",
              "exclusiveMinimum": 0,
              "maximum": 3.40282e+38,
              "description": "The receive / transmit factor (as a float) that will be set on\nports if the network backend supports the QOS extension.\nOtherwise it will be ignored. It defaults to 1\\.0\\."
            },
            "os-flavor-access:is_public": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Whether the flavor is public (available to all projects) or scoped\nto a set of projects. Default is True if not specified."
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "ram",
            "vcpus",
            "disk"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.0"
      },
      "required": [
        "flavor"
      ]
    },
    {
      "type": "object",
      "properties": {
        "flavor": {
          "type": "object",
          "description": "The ID and links for the flavor for your server instance. A flavor is a combination\nof memory, disk size, and CPUs.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The display name of a flavor."
            },
            "id": {
              "type": [
                "string",
                "number",
                "null"
              ],
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^(?! )[a-zA-Z0-9. _-]+(?<! )$",
              "description": "Only alphanumeric characters with hyphen \u2018\\-\u2019, underscore \u2018_\u2019, spaces\nand dots \u2018.\u2019 are permitted. If an ID is not provided, then a default UUID\nwill be assigned."
            },
            "ram": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]+$",
              "minimum": 1,
              "maximum": 2147483647,
              "description": "The number of virtual CPUs that will be allocated to the server."
            },
            "vcpus": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]+$",
              "minimum": 1,
              "maximum": 2147483647,
              "description": "The number of virtual CPUs that will be allocated to the server."
            },
            "disk": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]+$",
              "minimum": 0,
              "maximum": 2147483647,
              "description": "The size of a dedicated swap disk that will be allocated, in\nMiB. If 0 (the default), no dedicated swap disk will be created."
            },
            "OS-FLV-EXT-DATA:ephemeral": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]+$",
              "minimum": 0,
              "maximum": 2147483647,
              "description": "The size of a dedicated swap disk that will be allocated, in\nMiB. If 0 (the default), no dedicated swap disk will be created."
            },
            "swap": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]+$",
              "minimum": 0,
              "maximum": 2147483647,
              "description": "The size of a dedicated swap disk that will be allocated, in\nMiB. If 0 (the default), no dedicated swap disk will be created."
            },
            "rxtx_factor": {
              "type": [
                "number",
                "string"
              ],
              "pattern": "^[0-9]+(\\.[0-9]+)?$",
              "exclusiveMinimum": 0,
              "maximum": 3.40282e+38,
              "description": "The receive / transmit factor (as a float) that will be set on\nports if the network backend supports the QOS extension.\nOtherwise it will be ignored. It defaults to 1\\.0\\."
            },
            "os-flavor-access:is_public": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Whether the flavor is public (available to all projects) or scoped\nto a set of projects. Default is True if not specified."
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "ram",
            "vcpus",
            "disk"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.1",
        "max-ver": "2.54"
      },
      "required": [
        "flavor"
      ]
    },
    {
      "type": "object",
      "properties": {
        "flavor": {
          "type": "object",
          "description": "The ID and links for the flavor for your server instance. A flavor is a combination\nof memory, disk size, and CPUs.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The display name of a flavor."
            },
            "id": {
              "type": [
                "string",
                "number",
                "null"
              ],
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^(?! )[a-zA-Z0-9. _-]+(?<! )$",
              "description": "Only alphanumeric characters with hyphen \u2018\\-\u2019, underscore \u2018_\u2019, spaces\nand dots \u2018.\u2019 are permitted. If an ID is not provided, then a default UUID\nwill be assigned."
            },
            "ram": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]+$",
              "minimum": 1,
              "maximum": 2147483647,
              "description": "The number of virtual CPUs that will be allocated to the server."
            },
            "vcpus": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]+$",
              "minimum": 1,
              "maximum": 2147483647,
              "description": "The number of virtual CPUs that will be allocated to the server."
            },
            "disk": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]+$",
              "minimum": 0,
              "maximum": 2147483647,
              "description": "The size of a dedicated swap disk that will be allocated, in\nMiB. If 0 (the default), no dedicated swap disk will be created."
            },
            "OS-FLV-EXT-DATA:ephemeral": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]+$",
              "minimum": 0,
              "maximum": 2147483647,
              "description": "The size of a dedicated swap disk that will be allocated, in\nMiB. If 0 (the default), no dedicated swap disk will be created."
            },
            "swap": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]+$",
              "minimum": 0,
              "maximum": 2147483647,
              "description": "The size of a dedicated swap disk that will be allocated, in\nMiB. If 0 (the default), no dedicated swap disk will be created."
            },
            "rxtx_factor": {
              "type": [
                "number",
                "string"
              ],
              "pattern": "^[0-9]+(\\.[0-9]+)?$",
              "exclusiveMinimum": 0,
              "maximum": 3.40282e+38,
              "description": "The receive / transmit factor (as a float) that will be set on\nports if the network backend supports the QOS extension.\nOtherwise it will be ignored. It defaults to 1\\.0\\."
            },
            "os-flavor-access:is_public": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Whether the flavor is public (available to all projects) or scoped\nto a set of projects. Default is True if not specified."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 65535,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the flavor. Limited to 65535 characters\nin length. Only printable characters are allowed.\n\n\n**New in version 2\\.55**"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "ram",
            "vcpus",
            "disk"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.55"
      },
      "required": [
        "flavor"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion"
  }
}

Responses

201

Ok

{
  "type": "object",
  "description": "Single flavor details",
  "properties": {
    "flavor": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The display name of a flavor."
        },
        "id": {
          "type": "string",
          "description": "The ID of the flavor. While people often make this look like\nan int, this is really a string.",
          "minLength": 1,
          "maxLength": 255,
          "pattern": "^(?! )[a-zA-Z0-9. _-]+(?<! )$"
        },
        "ram": {
          "description": "The amount of RAM a flavor has, in MiB.",
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^[0-9]+$",
          "minimum": 1,
          "maximum": 2147483647
        },
        "vcpus": {
          "description": "The number of virtual CPUs that will be allocated to the server.",
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^[0-9]+$",
          "minimum": 1,
          "maximum": 2147483647
        },
        "disk": {
          "description": "The size of the root disk that will be created in GiB. If 0 the\nroot disk will be set to exactly the size of the image used to\ndeploy the instance. However, in this case the scheduler cannot\nselect the compute host based on the virtual image size. Therefore,\n0 should only be used for volume booted instances or for testing\npurposes. Volume\\-backed instances can be enforced for flavors with\nzero root disk via the `os_compute_api:servers:create:zero_disk_flavor`\npolicy rule.",
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^[0-9]+$",
          "minimum": 0,
          "maximum": 2147483647
        },
        "OS-FLV-EXT-DATA:ephemeral": {
          "description": "The size of the ephemeral disk that will be created, in\nGiB. Ephemeral disks may be written over on server state\nchanges. So should only be used as a scratch space for\napplications that are aware of its limitations. Defaults to 0\\.",
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^[0-9]+$",
          "minimum": 0,
          "maximum": 2147483647
        },
        "swap": {
          "description": "The size of a dedicated swap disk that will be allocated, in\nMiB. If 0 (the default), no dedicated swap disk will be created.\nCurrently, the empty string (\u2018\u2019) is used to represent 0\\.\nAs of microversion 2\\.75 default return value of swap is 0\ninstead of empty string.",
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^[0-9]+$",
          "minimum": 0,
          "maximum": 2147483647
        },
        "rxtx_factor": {
          "description": "The receive / transmit factor (as a float) that will be set on\nports if the network backend supports the QOS extension.\nOtherwise it will be ignored. It defaults to 1\\.0\\.",
          "type": [
            "number",
            "string"
          ],
          "pattern": "^[0-9]+(\\.[0-9]+)?$",
          "minimum": 0,
          "exclusiveMinimum": true,
          "maximum": 3.40282e+38
        },
        "os-flavor-access:is_public": {
          "description": "Whether the flavor is public (available to all projects) or scoped\nto a set of projects. Default is True if not specified.",
          "type": [
            "boolean",
            "string"
          ],
          "enum": [
            true,
            "True",
            "TRUE",
            "true",
            "1",
            "ON",
            "On",
            "on",
            "YES",
            "Yes",
            "yes",
            false,
            "False",
            "FALSE",
            "false",
            "0",
            "OFF",
            "Off",
            "off",
            "NO",
            "No",
            "no"
          ]
        },
        "extra_specs": {
          "type": "object",
          "patternProperties": {
            "^[a-zA-Z0-9-_:. ]{1,255}$": {
              "type": [
                "string",
                "number"
              ],
              "maxLength": 255
            }
          },
          "additionalProperties": false,
          "description": "A dictionary of the flavor\u2019s extra\\-specs key\\-and\\-value pairs. This will\nonly be included if the user is allowed by policy to index flavor\nextra_specs.\n\n\n**New in version 2\\.61**"
        },
        "links": {
          "type": "array",
          "description": "Links to the resources in question. See [API Guide / Links and\nReferences](https://docs.openstack.org/api-guide/compute/links_and_references.html)\nfor more info.",
          "items": {
            "type": "object",
            "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
            "properties": {
              "href": {
                "type": "string",
                "format": "uri"
              },
              "rel": {
                "type": "string"
              }
            }
          }
        }
      },
      "additionalProperties": false,
      "description": "The ID and links for the flavor for your server instance. A flavor is a combination\nof memory, disk size, and CPUs."
    }
  }
}

Name

Location

Type

Description

flavor

body

object

The ID and links for the flavor for your server instance. A flavor is a combination of memory, disk size, and CPUs.

flavor.name

body

string

The display name of a flavor.

flavor.id

body

string

The ID of the flavor. While people often make this look like an int, this is really a string.

flavor.ram

body

[‘integer’, ‘string’]

The amount of RAM a flavor has, in MiB.

flavor.vcpus

body

[‘integer’, ‘string’]

The number of virtual CPUs that will be allocated to the server.

flavor.disk

body

[‘integer’, ‘string’]

The size of the root disk that will be created in GiB. If 0 the root disk will be set to exactly the size of the image used to deploy the instance. However, in this case the scheduler cannot select the compute host based on the virtual image size. Therefore, 0 should only be used for volume booted instances or for testing purposes. Volume-backed instances can be enforced for flavors with zero root disk via the os_compute_api:servers:create:zero_disk_flavor policy rule.

flavor.OS-FLV-EXT-DATA:ephemeral

body

[‘integer’, ‘string’]

The size of the ephemeral disk that will be created, in GiB. Ephemeral disks may be written over on server state changes. So should only be used as a scratch space for applications that are aware of its limitations. Defaults to 0.

flavor.swap

body

[‘integer’, ‘string’]

The size of a dedicated swap disk that will be allocated, in MiB. If 0 (the default), no dedicated swap disk will be created. Currently, the empty string (‘’) is used to represent 0. As of microversion 2.75 default return value of swap is 0 instead of empty string.

flavor.rxtx_factor

body

[‘number’, ‘string’]

The receive / transmit factor (as a float) that will be set on ports if the network backend supports the QOS extension. Otherwise it will be ignored. It defaults to 1.0.

flavor.os-flavor-access:is_public

body

[‘boolean’, ‘string’]

Whether the flavor is public (available to all projects) or scoped to a set of projects. Default is True if not specified.

flavor.extra_specs

body

object

A dictionary of the flavor’s extra-specs key-and-value pairs. This will only be included if the user is allowed by policy to index flavor extra_specs.

New in version 2.61

flavor.links

body

array

Links to the resources in question. See API Guide / Links and References for more info.

flavor.links[].href

body

string

flavor.links[].rel

body

string

400

Error

409

Error

List Flavors With Details

Lists flavors with details.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "description": "Detailed flavors list response",
  "properties": {
    "flavors": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The display name of a flavor."
          },
          "id": {
            "type": "string",
            "description": "The ID of the flavor. While people often make this look like\nan int, this is really a string.",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^(?! )[a-zA-Z0-9. _-]+(?<! )$"
          },
          "ram": {
            "description": "The amount of RAM a flavor has, in MiB.",
            "type": [
              "integer",
              "string"
            ],
            "pattern": "^[0-9]+$",
            "minimum": 1,
            "maximum": 2147483647
          },
          "vcpus": {
            "description": "The number of virtual CPUs that will be allocated to the server.",
            "type": [
              "integer",
              "string"
            ],
            "pattern": "^[0-9]+$",
            "minimum": 1,
            "maximum": 2147483647
          },
          "disk": {
            "description": "The size of the root disk that will be created in GiB. If 0 the\nroot disk will be set to exactly the size of the image used to\ndeploy the instance. However, in this case the scheduler cannot\nselect the compute host based on the virtual image size. Therefore,\n0 should only be used for volume booted instances or for testing\npurposes. Volume\\-backed instances can be enforced for flavors with\nzero root disk via the `os_compute_api:servers:create:zero_disk_flavor`\npolicy rule.",
            "type": [
              "integer",
              "string"
            ],
            "pattern": "^[0-9]+$",
            "minimum": 0,
            "maximum": 2147483647
          },
          "OS-FLV-EXT-DATA:ephemeral": {
            "description": "The size of the ephemeral disk that will be created, in\nGiB. Ephemeral disks may be written over on server state\nchanges. So should only be used as a scratch space for\napplications that are aware of its limitations. Defaults to 0\\.",
            "type": [
              "integer",
              "string"
            ],
            "pattern": "^[0-9]+$",
            "minimum": 0,
            "maximum": 2147483647
          },
          "swap": {
            "description": "The size of a dedicated swap disk that will be allocated, in\nMiB. If 0 (the default), no dedicated swap disk will be created.\nCurrently, the empty string (\u2018\u2019) is used to represent 0\\.\nAs of microversion 2\\.75 default return value of swap is 0\ninstead of empty string.",
            "type": [
              "integer",
              "string"
            ],
            "pattern": "^[0-9]+$",
            "minimum": 0,
            "maximum": 2147483647
          },
          "rxtx_factor": {
            "description": "The receive / transmit factor (as a float) that will be set on\nports if the network backend supports the QOS extension.\nOtherwise it will be ignored. It defaults to 1\\.0\\.",
            "type": [
              "number",
              "string"
            ],
            "pattern": "^[0-9]+(\\.[0-9]+)?$",
            "minimum": 0,
            "exclusiveMinimum": true,
            "maximum": 3.40282e+38
          },
          "os-flavor-access:is_public": {
            "description": "Whether the flavor is public (available to all projects) or scoped\nto a set of projects. Default is True if not specified.",
            "type": [
              "boolean",
              "string"
            ],
            "enum": [
              true,
              "True",
              "TRUE",
              "true",
              "1",
              "ON",
              "On",
              "on",
              "YES",
              "Yes",
              "yes",
              false,
              "False",
              "FALSE",
              "false",
              "0",
              "OFF",
              "Off",
              "off",
              "NO",
              "No",
              "no"
            ]
          },
          "extra_specs": {
            "type": "object",
            "patternProperties": {
              "^[a-zA-Z0-9-_:. ]{1,255}$": {
                "type": [
                  "string",
                  "number"
                ],
                "maxLength": 255
              }
            },
            "additionalProperties": false,
            "description": "A dictionary of the flavor\u2019s extra\\-specs key\\-and\\-value pairs. This will\nonly be included if the user is allowed by policy to index flavor\nextra_specs.\n\n\n**New in version 2\\.61**"
          },
          "links": {
            "type": "array",
            "description": "Links to the resources in question. See [API Guide / Links and\nReferences](https://docs.openstack.org/api-guide/compute/links_and_references.html)\nfor more info.",
            "items": {
              "type": "object",
              "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
              "properties": {
                "href": {
                  "type": "string",
                  "format": "uri"
                },
                "rel": {
                  "type": "string"
                }
              }
            }
          }
        },
        "additionalProperties": false
      },
      "description": "An array of flavor objects."
    }
  }
}

Name

Location

Type

Description

flavors

body

array

An array of flavor objects.

flavors[].name

body

string

The display name of a flavor.

flavors[].id

body

string

The ID of the flavor. While people often make this look like an int, this is really a string.

flavors[].ram

body

[‘integer’, ‘string’]

The amount of RAM a flavor has, in MiB.

flavors[].vcpus

body

[‘integer’, ‘string’]

The number of virtual CPUs that will be allocated to the server.

flavors[].disk

body

[‘integer’, ‘string’]

The size of the root disk that will be created in GiB. If 0 the root disk will be set to exactly the size of the image used to deploy the instance. However, in this case the scheduler cannot select the compute host based on the virtual image size. Therefore, 0 should only be used for volume booted instances or for testing purposes. Volume-backed instances can be enforced for flavors with zero root disk via the os_compute_api:servers:create:zero_disk_flavor policy rule.

flavors[].OS-FLV-EXT-DATA:ephemeral

body

[‘integer’, ‘string’]

The size of the ephemeral disk that will be created, in GiB. Ephemeral disks may be written over on server state changes. So should only be used as a scratch space for applications that are aware of its limitations. Defaults to 0.

flavors[].swap

body

[‘integer’, ‘string’]

The size of a dedicated swap disk that will be allocated, in MiB. If 0 (the default), no dedicated swap disk will be created. Currently, the empty string (‘’) is used to represent 0. As of microversion 2.75 default return value of swap is 0 instead of empty string.

flavors[].rxtx_factor

body

[‘number’, ‘string’]

The receive / transmit factor (as a float) that will be set on ports if the network backend supports the QOS extension. Otherwise it will be ignored. It defaults to 1.0.

flavors[].os-flavor-access:is_public

body

[‘boolean’, ‘string’]

Whether the flavor is public (available to all projects) or scoped to a set of projects. Default is True if not specified.

flavors[].extra_specs

body

object

A dictionary of the flavor’s extra-specs key-and-value pairs. This will only be included if the user is allowed by policy to index flavor extra_specs.

New in version 2.61

flavors[].links

body

array

Links to the resources in question. See API Guide / Links and References for more info.

flavors[].links[].href

body

string

flavors[].links[].rel

body

string

400

Error

Show Flavor Details

Shows details for a flavor.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Single flavor details",
  "properties": {
    "flavor": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The display name of a flavor."
        },
        "id": {
          "type": "string",
          "description": "The ID of the flavor. While people often make this look like\nan int, this is really a string.",
          "minLength": 1,
          "maxLength": 255,
          "pattern": "^(?! )[a-zA-Z0-9. _-]+(?<! )$"
        },
        "ram": {
          "description": "The amount of RAM a flavor has, in MiB.",
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^[0-9]+$",
          "minimum": 1,
          "maximum": 2147483647
        },
        "vcpus": {
          "description": "The number of virtual CPUs that will be allocated to the server.",
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^[0-9]+$",
          "minimum": 1,
          "maximum": 2147483647
        },
        "disk": {
          "description": "The size of the root disk that will be created in GiB. If 0 the\nroot disk will be set to exactly the size of the image used to\ndeploy the instance. However, in this case the scheduler cannot\nselect the compute host based on the virtual image size. Therefore,\n0 should only be used for volume booted instances or for testing\npurposes. Volume\\-backed instances can be enforced for flavors with\nzero root disk via the `os_compute_api:servers:create:zero_disk_flavor`\npolicy rule.",
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^[0-9]+$",
          "minimum": 0,
          "maximum": 2147483647
        },
        "OS-FLV-EXT-DATA:ephemeral": {
          "description": "The size of the ephemeral disk that will be created, in\nGiB. Ephemeral disks may be written over on server state\nchanges. So should only be used as a scratch space for\napplications that are aware of its limitations. Defaults to 0\\.",
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^[0-9]+$",
          "minimum": 0,
          "maximum": 2147483647
        },
        "swap": {
          "description": "The size of a dedicated swap disk that will be allocated, in\nMiB. If 0 (the default), no dedicated swap disk will be created.\nCurrently, the empty string (\u2018\u2019) is used to represent 0\\.\nAs of microversion 2\\.75 default return value of swap is 0\ninstead of empty string.",
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^[0-9]+$",
          "minimum": 0,
          "maximum": 2147483647
        },
        "rxtx_factor": {
          "description": "The receive / transmit factor (as a float) that will be set on\nports if the network backend supports the QOS extension.\nOtherwise it will be ignored. It defaults to 1\\.0\\.",
          "type": [
            "number",
            "string"
          ],
          "pattern": "^[0-9]+(\\.[0-9]+)?$",
          "minimum": 0,
          "exclusiveMinimum": true,
          "maximum": 3.40282e+38
        },
        "os-flavor-access:is_public": {
          "description": "Whether the flavor is public (available to all projects) or scoped\nto a set of projects. Default is True if not specified.",
          "type": [
            "boolean",
            "string"
          ],
          "enum": [
            true,
            "True",
            "TRUE",
            "true",
            "1",
            "ON",
            "On",
            "on",
            "YES",
            "Yes",
            "yes",
            false,
            "False",
            "FALSE",
            "false",
            "0",
            "OFF",
            "Off",
            "off",
            "NO",
            "No",
            "no"
          ]
        },
        "extra_specs": {
          "type": "object",
          "patternProperties": {
            "^[a-zA-Z0-9-_:. ]{1,255}$": {
              "type": [
                "string",
                "number"
              ],
              "maxLength": 255
            }
          },
          "additionalProperties": false,
          "description": "A dictionary of the flavor\u2019s extra\\-specs key\\-and\\-value pairs. This will\nonly be included if the user is allowed by policy to index flavor\nextra_specs.\n\n\n**New in version 2\\.61**"
        },
        "links": {
          "type": "array",
          "description": "Links to the resources in question. See [API Guide / Links and\nReferences](https://docs.openstack.org/api-guide/compute/links_and_references.html)\nfor more info.",
          "items": {
            "type": "object",
            "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
            "properties": {
              "href": {
                "type": "string",
                "format": "uri"
              },
              "rel": {
                "type": "string"
              }
            }
          }
        }
      },
      "additionalProperties": false,
      "description": "The ID and links for the flavor for your server instance. A flavor is a combination\nof memory, disk size, and CPUs."
    }
  }
}

Name

Location

Type

Description

flavor

body

object

The ID and links for the flavor for your server instance. A flavor is a combination of memory, disk size, and CPUs.

flavor.name

body

string

The display name of a flavor.

flavor.id

body

string

The ID of the flavor. While people often make this look like an int, this is really a string.

flavor.ram

body

[‘integer’, ‘string’]

The amount of RAM a flavor has, in MiB.

flavor.vcpus

body

[‘integer’, ‘string’]

The number of virtual CPUs that will be allocated to the server.

flavor.disk

body

[‘integer’, ‘string’]

The size of the root disk that will be created in GiB. If 0 the root disk will be set to exactly the size of the image used to deploy the instance. However, in this case the scheduler cannot select the compute host based on the virtual image size. Therefore, 0 should only be used for volume booted instances or for testing purposes. Volume-backed instances can be enforced for flavors with zero root disk via the os_compute_api:servers:create:zero_disk_flavor policy rule.

flavor.OS-FLV-EXT-DATA:ephemeral

body

[‘integer’, ‘string’]

The size of the ephemeral disk that will be created, in GiB. Ephemeral disks may be written over on server state changes. So should only be used as a scratch space for applications that are aware of its limitations. Defaults to 0.

flavor.swap

body

[‘integer’, ‘string’]

The size of a dedicated swap disk that will be allocated, in MiB. If 0 (the default), no dedicated swap disk will be created. Currently, the empty string (‘’) is used to represent 0. As of microversion 2.75 default return value of swap is 0 instead of empty string.

flavor.rxtx_factor

body

[‘number’, ‘string’]

The receive / transmit factor (as a float) that will be set on ports if the network backend supports the QOS extension. Otherwise it will be ignored. It defaults to 1.0.

flavor.os-flavor-access:is_public

body

[‘boolean’, ‘string’]

Whether the flavor is public (available to all projects) or scoped to a set of projects. Default is True if not specified.

flavor.extra_specs

body

object

A dictionary of the flavor’s extra-specs key-and-value pairs. This will only be included if the user is allowed by policy to index flavor extra_specs.

New in version 2.61

flavor.links

body

array

Links to the resources in question. See API Guide / Links and References for more info.

flavor.links[].href

body

string

flavor.links[].rel

body

string

404

Error

Update Flavor Description

Updates a flavor description.

This API is available starting with microversion 2.55.

Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/flavors/{id} API

flavor

body

object

The ID and links for the flavor for your server instance. A flavor is a combination of memory, disk size, and CPUs.

flavor.description

body

[‘string’, ‘null’]

A free form description of the flavor. Limited to 65535 characters in length. Only printable characters are allowed.

{
  "type": "object",
  "properties": {
    "flavor": {
      "type": "object",
      "description": "The ID and links for the flavor for your server instance. A flavor is a combination\nof memory, disk size, and CPUs.",
      "properties": {
        "description": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 0,
          "maxLength": 65535,
          "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
          "description": "A free form description of the flavor. Limited to 65535 characters\nin length. Only printable characters are allowed."
        }
      },
      "additionalProperties": false,
      "required": [
        "description"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.55"
  },
  "required": [
    "flavor"
  ]
}

Responses

200

Ok

{
  "type": "object",
  "description": "Single flavor details",
  "properties": {
    "flavor": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The display name of a flavor."
        },
        "id": {
          "type": "string",
          "description": "The ID of the flavor. While people often make this look like\nan int, this is really a string.",
          "minLength": 1,
          "maxLength": 255,
          "pattern": "^(?! )[a-zA-Z0-9. _-]+(?<! )$"
        },
        "ram": {
          "description": "The amount of RAM a flavor has, in MiB.",
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^[0-9]+$",
          "minimum": 1,
          "maximum": 2147483647
        },
        "vcpus": {
          "description": "The number of virtual CPUs that will be allocated to the server.",
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^[0-9]+$",
          "minimum": 1,
          "maximum": 2147483647
        },
        "disk": {
          "description": "The size of the root disk that will be created in GiB. If 0 the\nroot disk will be set to exactly the size of the image used to\ndeploy the instance. However, in this case the scheduler cannot\nselect the compute host based on the virtual image size. Therefore,\n0 should only be used for volume booted instances or for testing\npurposes. Volume\\-backed instances can be enforced for flavors with\nzero root disk via the `os_compute_api:servers:create:zero_disk_flavor`\npolicy rule.",
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^[0-9]+$",
          "minimum": 0,
          "maximum": 2147483647
        },
        "OS-FLV-EXT-DATA:ephemeral": {
          "description": "The size of the ephemeral disk that will be created, in\nGiB. Ephemeral disks may be written over on server state\nchanges. So should only be used as a scratch space for\napplications that are aware of its limitations. Defaults to 0\\.",
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^[0-9]+$",
          "minimum": 0,
          "maximum": 2147483647
        },
        "swap": {
          "description": "The size of a dedicated swap disk that will be allocated, in\nMiB. If 0 (the default), no dedicated swap disk will be created.\nCurrently, the empty string (\u2018\u2019) is used to represent 0\\.\nAs of microversion 2\\.75 default return value of swap is 0\ninstead of empty string.",
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^[0-9]+$",
          "minimum": 0,
          "maximum": 2147483647
        },
        "rxtx_factor": {
          "description": "The receive / transmit factor (as a float) that will be set on\nports if the network backend supports the QOS extension.\nOtherwise it will be ignored. It defaults to 1\\.0\\.",
          "type": [
            "number",
            "string"
          ],
          "pattern": "^[0-9]+(\\.[0-9]+)?$",
          "minimum": 0,
          "exclusiveMinimum": true,
          "maximum": 3.40282e+38
        },
        "os-flavor-access:is_public": {
          "description": "Whether the flavor is public (available to all projects) or scoped\nto a set of projects. Default is True if not specified.",
          "type": [
            "boolean",
            "string"
          ],
          "enum": [
            true,
            "True",
            "TRUE",
            "true",
            "1",
            "ON",
            "On",
            "on",
            "YES",
            "Yes",
            "yes",
            false,
            "False",
            "FALSE",
            "false",
            "0",
            "OFF",
            "Off",
            "off",
            "NO",
            "No",
            "no"
          ]
        },
        "extra_specs": {
          "type": "object",
          "patternProperties": {
            "^[a-zA-Z0-9-_:. ]{1,255}$": {
              "type": [
                "string",
                "number"
              ],
              "maxLength": 255
            }
          },
          "additionalProperties": false,
          "description": "A dictionary of the flavor\u2019s extra\\-specs key\\-and\\-value pairs. This will\nonly be included if the user is allowed by policy to index flavor\nextra_specs.\n\n\n**New in version 2\\.61**"
        },
        "links": {
          "type": "array",
          "description": "Links to the resources in question. See [API Guide / Links and\nReferences](https://docs.openstack.org/api-guide/compute/links_and_references.html)\nfor more info.",
          "items": {
            "type": "object",
            "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
            "properties": {
              "href": {
                "type": "string",
                "format": "uri"
              },
              "rel": {
                "type": "string"
              }
            }
          }
        }
      },
      "additionalProperties": false,
      "description": "The ID and links for the flavor for your server instance. A flavor is a combination\nof memory, disk size, and CPUs."
    }
  }
}

Name

Location

Type

Description

flavor

body

object

The ID and links for the flavor for your server instance. A flavor is a combination of memory, disk size, and CPUs.

flavor.name

body

string

The display name of a flavor.

flavor.id

body

string

The ID of the flavor. While people often make this look like an int, this is really a string.

flavor.ram

body

[‘integer’, ‘string’]

The amount of RAM a flavor has, in MiB.

flavor.vcpus

body

[‘integer’, ‘string’]

The number of virtual CPUs that will be allocated to the server.

flavor.disk

body

[‘integer’, ‘string’]

The size of the root disk that will be created in GiB. If 0 the root disk will be set to exactly the size of the image used to deploy the instance. However, in this case the scheduler cannot select the compute host based on the virtual image size. Therefore, 0 should only be used for volume booted instances or for testing purposes. Volume-backed instances can be enforced for flavors with zero root disk via the os_compute_api:servers:create:zero_disk_flavor policy rule.

flavor.OS-FLV-EXT-DATA:ephemeral

body

[‘integer’, ‘string’]

The size of the ephemeral disk that will be created, in GiB. Ephemeral disks may be written over on server state changes. So should only be used as a scratch space for applications that are aware of its limitations. Defaults to 0.

flavor.swap

body

[‘integer’, ‘string’]

The size of a dedicated swap disk that will be allocated, in MiB. If 0 (the default), no dedicated swap disk will be created. Currently, the empty string (‘’) is used to represent 0. As of microversion 2.75 default return value of swap is 0 instead of empty string.

flavor.rxtx_factor

body

[‘number’, ‘string’]

The receive / transmit factor (as a float) that will be set on ports if the network backend supports the QOS extension. Otherwise it will be ignored. It defaults to 1.0.

flavor.os-flavor-access:is_public

body

[‘boolean’, ‘string’]

Whether the flavor is public (available to all projects) or scoped to a set of projects. Default is True if not specified.

flavor.extra_specs

body

object

A dictionary of the flavor’s extra-specs key-and-value pairs. This will only be included if the user is allowed by policy to index flavor extra_specs.

New in version 2.61

flavor.links

body

array

Links to the resources in question. See API Guide / Links and References for more info.

flavor.links[].href

body

string

flavor.links[].rel

body

string

400

Error

404

Error

Delete Flavor

Deletes a flavor.

This is typically an admin only action. Deleting a flavor that is in use by existing servers is not recommended as it can cause incorrect data to be returned to the user under some operations.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

202

Ok

404

Error

Add Flavor Access To Tenant (addTenantAccess Action)

Adds flavor access to a tenant and flavor.

Specify the addTenantAccess action and the tenant in the request body.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/flavors/{id}/action API

addTenantAccess

body

object

The action.

addTenantAccess.tenant

body

string

The UUID of the tenant in a multi-tenancy cloud.

{
  "type": "object",
  "description": "Adds flavor access to a tenant and flavor.\n\nSpecify the `addTenantAccess` action and the `tenant` in the request body.\n\nNormal response codes: 200\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\),\nitemNotFound(404\\), conflict(409\\)",
  "summary": "Add Flavor Access To Tenant (addTenantAccess Action)",
  "properties": {
    "addTenantAccess": {
      "type": "object",
      "description": "The action.",
      "properties": {
        "tenant": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255,
          "description": "The UUID of the tenant in a multi\\-tenancy cloud."
        }
      },
      "additionalProperties": false,
      "required": [
        "tenant"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "addTenantAccess"
  },
  "required": [
    "addTenantAccess"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "A list of objects, each with the keys flavor_id and tenant_id.",
  "properties": {
    "flavor_access": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "flavor_id": {
            "type": "string",
            "format": "uuid",
            "description": "The ID of the flavor. While people often make this look like\nan int, this is really a string."
          },
          "tenant_id": {
            "type": "string",
            "format": "uuid",
            "description": "The UUID of the tenant in a multi\\-tenancy cloud."
          }
        }
      },
      "description": "A list of objects, each with the keys `flavor_id` and `tenant_id`."
    }
  },
  "x-openstack": {
    "action-name": "addTenantAccess"
  }
}

Name

Location

Type

Description

flavor_access

body

array

A list of objects, each with the keys flavor_id and tenant_id.

flavor_access[].flavor_id

body

string

The ID of the flavor. While people often make this look like an int, this is really a string.

flavor_access[].tenant_id

body

string

The UUID of the tenant in a multi-tenancy cloud.

400

Error

403

Error

404

Error

409

Error

Remove Flavor Access From Tenant (removeTenantAccess Action)

Removes flavor access from a tenant and flavor.

Specify the removeTenantAccess action and the tenant in the request body.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/flavors/{id}/action API

removeTenantAccess

body

object

The action.

removeTenantAccess.tenant

body

string

The UUID of the tenant in a multi-tenancy cloud.

{
  "type": "object",
  "description": "Removes flavor access from a tenant and flavor.\n\nSpecify the `removeTenantAccess` action and the `tenant` in the request body.\n\nNormal response codes: 200\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\),\nitemNotFound(404\\), conflict(409\\)",
  "summary": "Remove Flavor Access From Tenant (removeTenantAccess Action)",
  "properties": {
    "removeTenantAccess": {
      "type": "object",
      "description": "The action.",
      "properties": {
        "tenant": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255,
          "description": "The UUID of the tenant in a multi\\-tenancy cloud."
        }
      },
      "additionalProperties": false,
      "required": [
        "tenant"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "removeTenantAccess"
  },
  "required": [
    "removeTenantAccess"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "A list of objects, each with the keys flavor_id and tenant_id.",
  "properties": {
    "flavor_access": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "flavor_id": {
            "type": "string",
            "format": "uuid",
            "description": "The ID of the flavor. While people often make this look like\nan int, this is really a string."
          },
          "tenant_id": {
            "type": "string",
            "format": "uuid",
            "description": "The UUID of the tenant in a multi\\-tenancy cloud."
          }
        }
      },
      "description": "A list of objects, each with the keys `flavor_id` and `tenant_id`."
    }
  },
  "x-openstack": {
    "action-name": "removeTenantAccess"
  }
}

Name

Location

Type

Description

flavor_access

body

array

A list of objects, each with the keys flavor_id and tenant_id.

flavor_access[].flavor_id

body

string

The ID of the flavor. While people often make this look like an int, this is really a string.

flavor_access[].tenant_id

body

string

The UUID of the tenant in a multi-tenancy cloud.

400

Error

403

Error

404

Error

409

Error

List Extra Specs For A Flavor

Lists all extra specs for a flavor, by ID.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "A dictionary of the flavor\u2019s extra-specs key-and-value pairs. It appears in the os-extra-specs\u2019 \u201ccreate\u201d REQUEST body, as well as the os-extra-specs\u2019 \u201ccreate\u201d and \u201clist\u201d RESPONSE body.",
  "properties": {
    "extra_specs": {
      "type": "object",
      "patternProperties": {
        "^[a-zA-Z0-9-_:. ]{1,255}$": {
          "type": [
            "string",
            "number"
          ],
          "maxLength": 255
        }
      },
      "additionalProperties": false,
      "description": "A dictionary of the flavor\u2019s extra\\-specs key\\-and\\-value pairs. It appears\nin the os\\-extra\\-specs\u2019 \u201ccreate\u201d REQUEST body, as well as the\nos\\-extra\\-specs\u2019 \u201ccreate\u201d and \u201clist\u201d RESPONSE body."
    }
  }
}

Name

Location

Type

Description

extra_specs

body

object

A dictionary of the flavor’s extra-specs key-and-value pairs. It appears in the os-extra-specs’ “create” REQUEST body, as well as the os-extra-specs’ “create” and “list” RESPONSE body.

404

Error

Create Extra Specs For A Flavor

Creates extra specs for a flavor, by ID.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

flavor_id

path

string

flavor_id parameter for /v2.1/flavors/{flavor_id}/os-extra_specs/{id} API

extra_specs

body

object

A dictionary of the flavor’s extra-specs key-and-value pairs. It appears in the os-extra-specs’ “create” REQUEST body, as well as the os-extra-specs’ “create” and “list” RESPONSE body.

{
  "type": "object",
  "properties": {
    "extra_specs": {
      "type": "object",
      "description": "A dictionary of the flavor\u2019s extra\\-specs key\\-and\\-value pairs. It appears\nin the os\\-extra\\-specs\u2019 \u201ccreate\u201d REQUEST body, as well as the\nos\\-extra\\-specs\u2019 \u201ccreate\u201d and \u201clist\u201d RESPONSE body.",
      "additionalProperties": false,
      "patternProperties": {
        "^[a-zA-Z0-9-_:. ]{1,255}$": {
          "type": [
            "string",
            "number"
          ],
          "maxLength": 255
        }
      }
    }
  },
  "additionalProperties": false,
  "required": [
    "extra_specs"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "A dictionary of the flavor\u2019s extra-specs key-and-value pairs. It appears in the os-extra-specs\u2019 \u201ccreate\u201d REQUEST body, as well as the os-extra-specs\u2019 \u201ccreate\u201d and \u201clist\u201d RESPONSE body.",
  "properties": {
    "extra_specs": {
      "type": "object",
      "patternProperties": {
        "^[a-zA-Z0-9-_:. ]{1,255}$": {
          "type": [
            "string",
            "number"
          ],
          "maxLength": 255
        }
      },
      "additionalProperties": false,
      "description": "A dictionary of the flavor\u2019s extra\\-specs key\\-and\\-value pairs. It appears\nin the os\\-extra\\-specs\u2019 \u201ccreate\u201d REQUEST body, as well as the\nos\\-extra\\-specs\u2019 \u201ccreate\u201d and \u201clist\u201d RESPONSE body."
    }
  }
}

Name

Location

Type

Description

extra_specs

body

object

A dictionary of the flavor’s extra-specs key-and-value pairs. It appears in the os-extra-specs’ “create” REQUEST body, as well as the os-extra-specs’ “create” and “list” RESPONSE body.

400

Error

404

Error

409

Error

Show An Extra Spec For A Flavor

Shows an extra spec, by key, for a flavor, by ID.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

Example (JSON Request)

{'hw:numa_nodes': '1'}
{
  "type": "object",
  "additionalProperties": false,
  "minProperties": 1,
  "maxProperties": 1,
  "examples": {
    "JSON Request": {
      "hw:numa_nodes": "1"
    }
  },
  "patternProperties": {
    "^[a-zA-Z0-9-_:. ]{1,255}$": {
      "type": [
        "string",
        "number"
      ],
      "maxLength": 255
    }
  }
}
404

Error

Update An Extra Spec For A Flavor

Updates an extra spec, by key, for a flavor, by ID.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403) itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

flavor_id

path

string

flavor_id parameter for /v2.1/flavors/{flavor_id}/os-extra_specs/{id} API

id

path

string

id parameter for /v2.1/flavors/{flavor_id}/os-extra_specs/{id} API

{
  "type": "object",
  "additionalProperties": false,
  "patternProperties": {
    "^[a-zA-Z0-9-_:. ]{1,255}$": {
      "type": [
        "string",
        "number"
      ],
      "maxLength": 255
    }
  },
  "minProperties": 1,
  "maxProperties": 1
}

Responses

200

Ok

Example (JSON Request)

{'hw:numa_nodes': '1'}
{
  "type": "object",
  "additionalProperties": false,
  "minProperties": 1,
  "maxProperties": 1,
  "examples": {
    "JSON Request": {
      "hw:numa_nodes": "1"
    }
  },
  "patternProperties": {
    "^[a-zA-Z0-9-_:. ]{1,255}$": {
      "type": [
        "string",
        "number"
      ],
      "maxLength": 255
    }
  }
}
400

Error

404

Error

409

Error

Delete An Extra Spec For A Flavor

Deletes an extra spec, by key, for a flavor, by ID.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

204

Ok

404

Error

List Flavor Access Information For Given Flavor

Lists flavor access information.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "A list of objects, each with the keys flavor_id and tenant_id.",
  "properties": {
    "flavor_access": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "flavor_id": {
            "type": "string",
            "format": "uuid",
            "description": "The ID of the flavor. While people often make this look like\nan int, this is really a string."
          },
          "tenant_id": {
            "type": "string",
            "format": "uuid",
            "description": "The UUID of the tenant in a multi\\-tenancy cloud."
          }
        }
      },
      "description": "A list of objects, each with the keys `flavor_id` and `tenant_id`."
    }
  }
}

Name

Location

Type

Description

flavor_access

body

array

A list of objects, each with the keys flavor_id and tenant_id.

flavor_access[].flavor_id

body

string

The ID of the flavor. While people often make this look like an int, this is really a string.

flavor_access[].tenant_id

body

string

The UUID of the tenant in a multi-tenancy cloud.

404

Error

images

List Images

List images.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the images:get operation"
}
400

Error

List Images With Details

List images with details.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the images/detail:get operation"
}
400

Error

Show Image Details

Shows details for an image.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the images/id:get operation"
}
404

Error

Delete Image

Deletes an image.

Normal response codes: 204

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

204

Ok

403

Error

404

Error

List Image Metadata

List metadata of an image.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the images/image_id/metadata:get operation"
}
403

Error

404

Error

Create Image Metadata

Create an image metadata.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Request

Name

Location

Type

Description

image_id

path

string

image_id parameter for /v2.1/images/{image_id}/metadata/{id} API

metadata

body

object

Metadata key and value pairs. The maximum size for each metadata key and value pair is 255 bytes.

{
  "type": "object",
  "properties": {
    "metadata": {
      "type": "object",
      "description": "Metadata key and value pairs. The maximum size for each metadata key and value\npair is 255 bytes.",
      "additionalProperties": false,
      "patternProperties": {
        "^[a-zA-Z0-9-_:. ]{1,255}$": {
          "type": "string",
          "maxLength": 255
        }
      }
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.38"
  },
  "required": [
    "metadata"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the images/image_id/metadata:post operation"
}
400

Error

403

Error

404

Error

Update Image Metadata

Update an image metadata

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Request

Name

Location

Type

Description

image_id

path

string

image_id parameter for /v2.1/images/{image_id}/metadata/{id} API

metadata

body

object

Metadata key and value pairs. The maximum size for each metadata key and value pair is 255 bytes.

{
  "type": "object",
  "properties": {
    "metadata": {
      "type": "object",
      "description": "Metadata key and value pairs. The maximum size for each metadata key and value\npair is 255 bytes.",
      "additionalProperties": false,
      "patternProperties": {
        "^[a-zA-Z0-9-_:. ]{1,255}$": {
          "type": "string",
          "maxLength": 255
        }
      }
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.38"
  },
  "required": [
    "metadata"
  ]
}

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the images/image_id/metadata:put operation"
}
400

Error

403

Error

404

Error

Show Image Metadata Item

Shows metadata item, by key, for an image.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the images/image_id/metadata/id:get operation"
}
403

Error

404

Error

Create Or Update Image Metadata Item

Creates or updates a metadata item, by key, for an image.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Request

Name

Location

Type

Description

image_id

path

string

image_id parameter for /v2.1/images/{image_id}/metadata/{id} API

id

path

string

id parameter for /v2.1/images/{image_id}/metadata/{id} API

meta

body

object

The object of detailed key metadata items.

{
  "type": "object",
  "properties": {
    "meta": {
      "type": "object",
      "description": "The object of detailed key metadata items.",
      "additionalProperties": false,
      "patternProperties": {
        "^[a-zA-Z0-9-_:. ]{1,255}$": {
          "type": "string",
          "maxLength": 255
        }
      },
      "minProperties": 1,
      "maxProperties": 1
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.38"
  },
  "required": [
    "meta"
  ]
}

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the images/image_id/metadata/id:put operation"
}
400

Error

403

Error

404

Error

Delete Image Metadata Item

Deletes a metadata item, by key, for an image.

Normal response codes: 204

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

204

Ok

403

Error

404

Error

limits

Show Rate And Absolute Limits

Shows rate and absolute limits for the project.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "limits": {
      "type": "object",
      "description": "Data structure that contains both absolute limits within a deployment.",
      "properties": {
        "absolute": {
          "type": "object",
          "description": "Name/value pairs that set quota limits within a deployment and\nName/value pairs of resource usage.",
          "properties": {
            "maxServerGroupMembers": {
              "type": "integer",
              "description": "The number of allowed members for each server group."
            },
            "maxServerGroups": {
              "type": "integer",
              "description": "The number of allowed server groups for each tenant."
            },
            "maxServerMetamaxServerMeta": {
              "type": "integer",
              "description": "The number of allowed metadata items for each server."
            },
            "maxTotalCores": {
              "type": "integer",
              "description": "The number of allowed server cores for each tenant."
            },
            "maxTotalInstances": {
              "type": "integer",
              "description": "The number of allowed servers for each tenant."
            },
            "maxTotalKeypairs": {
              "type": "integer",
              "description": "The number of allowed key pairs for each user."
            },
            "maxTotalRAMSize": {
              "type": "integer",
              "description": "The amount of allowed server RAM, in MiB, for each tenant."
            },
            "totalCoresUsed": {
              "type": "integer",
              "description": "The number of used server cores in each tenant.\nIf `reserved` query parameter is specified and it is not 0,\nthe number of reserved server cores are also included."
            },
            "totalInstancesUsed": {
              "type": "integer",
              "description": "The number of servers in each tenant.\nIf `reserved` query parameter is specified and it is not 0,\nthe number of reserved servers are also included."
            },
            "totalRAMUsed": {
              "type": "integer",
              "description": "The amount of used server RAM in each tenant.\nIf `reserved` query parameter is specified and it is not 0,\nthe amount of reserved server RAM is also included."
            },
            "totalServerGroupsUsed": {
              "type": "integer",
              "description": "The number of used server groups in each tenant.\nIf `reserved` query parameter is specified and it is not 0,\nthe number of reserved server groups are also included."
            }
          },
          "additionalProperties": {
            "type": "integer"
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

limits

body

object

Data structure that contains both absolute limits within a deployment.

limits.absolute

body

object

Name/value pairs that set quota limits within a deployment and Name/value pairs of resource usage.

limits.absolute.maxServerGroupMembers

body

integer

The number of allowed members for each server group.

limits.absolute.maxServerGroups

body

integer

The number of allowed server groups for each tenant.

limits.absolute.maxServerMetamaxServerMeta

body

integer

The number of allowed metadata items for each server.

limits.absolute.maxTotalCores

body

integer

The number of allowed server cores for each tenant.

limits.absolute.maxTotalInstances

body

integer

The number of allowed servers for each tenant.

limits.absolute.maxTotalKeypairs

body

integer

The number of allowed key pairs for each user.

limits.absolute.maxTotalRAMSize

body

integer

The amount of allowed server RAM, in MiB, for each tenant.

limits.absolute.totalCoresUsed

body

integer

The number of used server cores in each tenant. If reserved query parameter is specified and it is not 0, the number of reserved server cores are also included.

limits.absolute.totalInstancesUsed

body

integer

The number of servers in each tenant. If reserved query parameter is specified and it is not 0, the number of reserved servers are also included.

limits.absolute.totalRAMUsed

body

integer

The amount of used server RAM in each tenant. If reserved query parameter is specified and it is not 0, the amount of reserved server RAM is also included.

limits.absolute.totalServerGroupsUsed

body

integer

The number of used server groups in each tenant. If reserved query parameter is specified and it is not 0, the number of reserved server groups are also included.

os-agents

List Agent Builds

Lists agent builds.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), gone(410)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-agents:get operation"
}
410

Error

Create Agent Build

Creates an agent build.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), conflict(409), gone(410)

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-agents:post operation"
}
410

Error

Update Agent Build

Updates an agent build.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), gone(410)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-agents/id:put operation"
}
410

Error

Delete Agent Build

Deletes an existing agent build.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), gone(410)

Responses

204

Ok

410

Error

os-aggregates

List Aggregates

Lists all aggregates. Includes the ID, name, and availability zone for each aggregate.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "description": "The list of existing aggregates.",
  "properties": {
    "aggregates": {
      "type": "array",
      "description": "The list of existing aggregates.",
      "items": {
        "type": "object",
        "description": "The host aggregate object",
        "properties": {
          "availability_zone": {
            "type": "string",
            "description": "The availability zone of the host aggregate."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time when the resource was created. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
          },
          "deleted": {
            "type": "boolean",
            "description": "A boolean indicates whether this aggregate is deleted or not, if it has\nnot been deleted, `false` will appear."
          },
          "deleted_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "The date and time when the resource was deleted. If the resource has\nnot been deleted yet, this field will be `null`, The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
          },
          "id": {
            "type": "integer",
            "description": "The ID of the host aggregate."
          },
          "metadata": {
            "type": "object",
            "patternProperties": {
              "^[a-zA-Z0-9-_:. ]{1,255}$": {
                "type": "string",
                "maxLength": 255
              }
            },
            "additionalProperties": false,
            "description": "Metadata key and value pairs associated with the aggregate."
          },
          "hosts": {
            "type": "array",
            "description": "A list of host ids in this aggregate.",
            "items": {
              "type": "string"
            }
          },
          "updated_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "The date and time when the resource was updated, if the resource has\nnot been updated, this field will show as `null`. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
          },
          "uuid": {
            "type": "string",
            "format": "uuid",
            "description": "The UUID of the host aggregate.\n\n\n**New in version 2\\.41**",
            "x-openstack": {
              "min-ver": "2.41"
            }
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

aggregates

body

array

The list of existing aggregates.

aggregates[].availability_zone

body

string

The availability zone of the host aggregate.

aggregates[].created_at

body

string

The date and time when the resource was created. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregates[].deleted

body

boolean

A boolean indicates whether this aggregate is deleted or not, if it has not been deleted, false will appear.

aggregates[].deleted_at

body

[‘string’, ‘null’]

The date and time when the resource was deleted. If the resource has not been deleted yet, this field will be null, The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregates[].id

body

integer

The ID of the host aggregate.

aggregates[].metadata

body

object

Metadata key and value pairs associated with the aggregate.

aggregates[].hosts

body

array

A list of host ids in this aggregate.

aggregates[].updated_at

body

[‘string’, ‘null’]

The date and time when the resource was updated, if the resource has not been updated, this field will show as null. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregates[].uuid

body

string

The UUID of the host aggregate.

New in version 2.41
New in version 2.41

Create Aggregate

Creates an aggregate. If specifying an option availability_zone, the aggregate is created as an availability zone and the availability zone is visible to normal users.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), conflict(409)

Request

Name

Location

Type

Description

aggregate

body

object

The host aggregate object.

aggregate.name

body

string

The name of the host aggregate.

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "aggregate": {
          "type": "object",
          "description": "The host aggregate object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name_with_leading_trailing_spaces",
              "description": "The name of the host aggregate."
            },
            "availability_zone": {
              "oneOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "format": "az_name_with_leading_trailing_spaces"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The availability zone of the host aggregate. You should use a custom\navailability zone rather than the default returned by the\nos\\-availability\\-zone API. The availability zone must not include \u2018:\u2019\nin its name."
            }
          },
          "additionalProperties": false,
          "required": [
            "name"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.0"
      },
      "required": [
        "aggregate"
      ]
    },
    {
      "type": "object",
      "properties": {
        "aggregate": {
          "type": "object",
          "description": "The host aggregate object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The name of the host aggregate."
            },
            "availability_zone": {
              "oneOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "format": "az_name"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The availability zone of the host aggregate. You should use a custom\navailability zone rather than the default returned by the\nos\\-availability\\-zone API. The availability zone must not include \u2018:\u2019\nin its name."
            }
          },
          "additionalProperties": false,
          "required": [
            "name"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.1"
      },
      "required": [
        "aggregate"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion"
  }
}

Responses

201

Ok

{
  "type": "object",
  "description": "Aggregate object.",
  "properties": {
    "aggregate": {
      "type": "object",
      "description": "The host aggregate object.",
      "properties": {
        "availability_zone": {
          "type": "string",
          "description": "The availability zone of the host aggregate."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the resource was created. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "deleted": {
          "type": "boolean",
          "description": "A boolean indicates whether this aggregate is deleted or not, if it has\nnot been deleted, `false` will appear."
        },
        "deleted_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "The date and time when the resource was deleted. If the resource has\nnot been deleted yet, this field will be `null`, The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "id": {
          "type": "integer",
          "description": "The ID of the host aggregate."
        },
        "metadata": {
          "type": "object",
          "patternProperties": {
            "^[a-zA-Z0-9-_:. ]{1,255}$": {
              "type": "string",
              "maxLength": 255
            }
          },
          "additionalProperties": false,
          "description": "Metadata key and value pairs associated with the aggregate."
        },
        "hosts": {
          "type": "array",
          "description": "An array of host information.",
          "items": {
            "type": "string"
          }
        },
        "updated_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "The date and time when the resource was updated, if the resource has\nnot been updated, this field will show as `null`. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "uuid": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the host aggregate.\n\n\n**New in version 2\\.41**",
          "x-openstack": {
            "min-ver": "2.41"
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

aggregate

body

object

The host aggregate object.

aggregate.availability_zone

body

string

The availability zone of the host aggregate.

aggregate.created_at

body

string

The date and time when the resource was created. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregate.deleted

body

boolean

A boolean indicates whether this aggregate is deleted or not, if it has not been deleted, false will appear.

aggregate.deleted_at

body

[‘string’, ‘null’]

The date and time when the resource was deleted. If the resource has not been deleted yet, this field will be null, The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregate.id

body

integer

The ID of the host aggregate.

aggregate.metadata

body

object

Metadata key and value pairs associated with the aggregate.

aggregate.hosts

body

array

An array of host information.

aggregate.updated_at

body

[‘string’, ‘null’]

The date and time when the resource was updated, if the resource has not been updated, this field will show as null. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregate.uuid

body

string

The UUID of the host aggregate.

New in version 2.41
New in version 2.41

400

Error

409

Error

Show Aggregate Details

Shows details for an aggregate. Details include hosts and metadata.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Aggregate object.",
  "properties": {
    "aggregate": {
      "type": "object",
      "description": "The host aggregate object.",
      "properties": {
        "availability_zone": {
          "type": "string",
          "description": "The availability zone of the host aggregate."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the resource was created. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "deleted": {
          "type": "boolean",
          "description": "A boolean indicates whether this aggregate is deleted or not, if it has\nnot been deleted, `false` will appear."
        },
        "deleted_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "The date and time when the resource was deleted. If the resource has\nnot been deleted yet, this field will be `null`, The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "id": {
          "type": "integer",
          "description": "The ID of the host aggregate."
        },
        "metadata": {
          "type": "object",
          "patternProperties": {
            "^[a-zA-Z0-9-_:. ]{1,255}$": {
              "type": "string",
              "maxLength": 255
            }
          },
          "additionalProperties": false,
          "description": "Metadata key and value pairs associated with the aggregate."
        },
        "hosts": {
          "type": "array",
          "description": "An array of host information.",
          "items": {
            "type": "string"
          }
        },
        "updated_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "The date and time when the resource was updated, if the resource has\nnot been updated, this field will show as `null`. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "uuid": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the host aggregate.\n\n\n**New in version 2\\.41**",
          "x-openstack": {
            "min-ver": "2.41"
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

aggregate

body

object

The host aggregate object.

aggregate.availability_zone

body

string

The availability zone of the host aggregate.

aggregate.created_at

body

string

The date and time when the resource was created. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregate.deleted

body

boolean

A boolean indicates whether this aggregate is deleted or not, if it has not been deleted, false will appear.

aggregate.deleted_at

body

[‘string’, ‘null’]

The date and time when the resource was deleted. If the resource has not been deleted yet, this field will be null, The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregate.id

body

integer

The ID of the host aggregate.

aggregate.metadata

body

object

Metadata key and value pairs associated with the aggregate.

aggregate.hosts

body

array

An array of host information.

aggregate.updated_at

body

[‘string’, ‘null’]

The date and time when the resource was updated, if the resource has not been updated, this field will show as null. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregate.uuid

body

string

The UUID of the host aggregate.

New in version 2.41
New in version 2.41

400

Error

404

Error

Update Aggregate

Updates either or both the name and availability zone for an aggregate. If the aggregate to be updated has host that already in the given availability zone, the request will fail with 400 error.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-aggregates/{id} API

aggregate

body

object

The host aggregate object.

aggregate.name

body

string

The name of the host aggregate.

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "aggregate": {
          "type": "object",
          "description": "The host aggregate object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name_with_leading_trailing_spaces",
              "description": "The name of the host aggregate."
            },
            "availability_zone": {
              "oneOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "format": "az_name_with_leading_trailing_spaces"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The availability zone of the host aggregate. You should use a custom\navailability zone rather than the default returned by the\nos\\-availability\\-zone API. The availability zone must not include \u2018:\u2019\nin its name.\n\n\n\nWarning\n\n\nYou should not change or unset the availability zone of an\naggregate when that aggregate has hosts which contain servers in it\nsince that may impact the ability for those servers to move to another\nhost."
            }
          },
          "additionalProperties": false,
          "anyOf": [
            {
              "required": [
                "name"
              ]
            },
            {
              "required": [
                "availability_zone"
              ]
            }
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.0"
      },
      "required": [
        "aggregate"
      ]
    },
    {
      "type": "object",
      "properties": {
        "aggregate": {
          "type": "object",
          "description": "The host aggregate object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name_with_leading_trailing_spaces",
              "description": "The name of the host aggregate."
            },
            "availability_zone": {
              "oneOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "format": "az_name"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The availability zone of the host aggregate. You should use a custom\navailability zone rather than the default returned by the\nos\\-availability\\-zone API. The availability zone must not include \u2018:\u2019\nin its name.\n\n\n\nWarning\n\n\nYou should not change or unset the availability zone of an\naggregate when that aggregate has hosts which contain servers in it\nsince that may impact the ability for those servers to move to another\nhost."
            }
          },
          "additionalProperties": false,
          "anyOf": [
            {
              "required": [
                "name"
              ]
            },
            {
              "required": [
                "availability_zone"
              ]
            }
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.1"
      },
      "required": [
        "aggregate"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion"
  }
}

Responses

200

Ok

{
  "type": "object",
  "description": "Aggregate object.",
  "properties": {
    "aggregate": {
      "type": "object",
      "description": "The host aggregate object.",
      "properties": {
        "availability_zone": {
          "type": "string",
          "description": "The availability zone of the host aggregate."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the resource was created. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "deleted": {
          "type": "boolean",
          "description": "A boolean indicates whether this aggregate is deleted or not, if it has\nnot been deleted, `false` will appear."
        },
        "deleted_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "The date and time when the resource was deleted. If the resource has\nnot been deleted yet, this field will be `null`, The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "id": {
          "type": "integer",
          "description": "The ID of the host aggregate."
        },
        "metadata": {
          "type": "object",
          "patternProperties": {
            "^[a-zA-Z0-9-_:. ]{1,255}$": {
              "type": "string",
              "maxLength": 255
            }
          },
          "additionalProperties": false,
          "description": "Metadata key and value pairs associated with the aggregate."
        },
        "hosts": {
          "type": "array",
          "description": "An array of host information.",
          "items": {
            "type": "string"
          }
        },
        "updated_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "The date and time when the resource was updated, if the resource has\nnot been updated, this field will show as `null`. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "uuid": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the host aggregate.\n\n\n**New in version 2\\.41**",
          "x-openstack": {
            "min-ver": "2.41"
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

aggregate

body

object

The host aggregate object.

aggregate.availability_zone

body

string

The availability zone of the host aggregate.

aggregate.created_at

body

string

The date and time when the resource was created. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregate.deleted

body

boolean

A boolean indicates whether this aggregate is deleted or not, if it has not been deleted, false will appear.

aggregate.deleted_at

body

[‘string’, ‘null’]

The date and time when the resource was deleted. If the resource has not been deleted yet, this field will be null, The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregate.id

body

integer

The ID of the host aggregate.

aggregate.metadata

body

object

Metadata key and value pairs associated with the aggregate.

aggregate.hosts

body

array

An array of host information.

aggregate.updated_at

body

[‘string’, ‘null’]

The date and time when the resource was updated, if the resource has not been updated, this field will show as null. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregate.uuid

body

string

The UUID of the host aggregate.

New in version 2.41
New in version 2.41

400

Error

404

Error

409

Error

Delete Aggregate

Deletes an aggregate.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Responses

204

Ok

400

Error

404

Error

`add_host` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-aggregates/{id}/action API

add_host

body

object

add_host.host

body

string

{
  "type": "object",
  "properties": {
    "add_host": {
      "type": "object",
      "properties": {
        "host": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255,
          "pattern": "^[a-zA-Z0-9-._]*$"
        }
      },
      "additionalProperties": false,
      "required": [
        "host"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "add_host"
  },
  "required": [
    "add_host"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "Aggregate object.",
  "properties": {
    "aggregate": {
      "type": "object",
      "description": "The host aggregate object.",
      "properties": {
        "availability_zone": {
          "type": "string",
          "description": "The availability zone of the host aggregate."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the resource was created. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "deleted": {
          "type": "boolean",
          "description": "A boolean indicates whether this aggregate is deleted or not, if it has\nnot been deleted, `false` will appear."
        },
        "deleted_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "The date and time when the resource was deleted. If the resource has\nnot been deleted yet, this field will be `null`, The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "id": {
          "type": "integer",
          "description": "The ID of the host aggregate."
        },
        "metadata": {
          "type": "object",
          "patternProperties": {
            "^[a-zA-Z0-9-_:. ]{1,255}$": {
              "type": "string",
              "maxLength": 255
            }
          },
          "additionalProperties": false,
          "description": "Metadata key and value pairs associated with the aggregate."
        },
        "hosts": {
          "type": "array",
          "description": "An array of host information.",
          "items": {
            "type": "string"
          }
        },
        "updated_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "The date and time when the resource was updated, if the resource has\nnot been updated, this field will show as `null`. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "uuid": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the host aggregate.\n\n\n**New in version 2\\.41**",
          "x-openstack": {
            "min-ver": "2.41"
          }
        }
      }
    }
  },
  "x-openstack": {
    "action-name": "add_host"
  }
}

Name

Location

Type

Description

aggregate

body

object

The host aggregate object.

aggregate.availability_zone

body

string

The availability zone of the host aggregate.

aggregate.created_at

body

string

The date and time when the resource was created. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregate.deleted

body

boolean

A boolean indicates whether this aggregate is deleted or not, if it has not been deleted, false will appear.

aggregate.deleted_at

body

[‘string’, ‘null’]

The date and time when the resource was deleted. If the resource has not been deleted yet, this field will be null, The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregate.id

body

integer

The ID of the host aggregate.

aggregate.metadata

body

object

Metadata key and value pairs associated with the aggregate.

aggregate.hosts

body

array

An array of host information.

aggregate.updated_at

body

[‘string’, ‘null’]

The date and time when the resource was updated, if the resource has not been updated, this field will show as null. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregate.uuid

body

string

The UUID of the host aggregate.

New in version 2.41
New in version 2.41

400

Error

404

Error

409

Error

`remove_host` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-aggregates/{id}/action API

remove_host

body

object

remove_host.host

body

string

{
  "type": "object",
  "properties": {
    "remove_host": {
      "type": "object",
      "properties": {
        "host": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255,
          "pattern": "^[a-zA-Z0-9-._]*$"
        }
      },
      "additionalProperties": false,
      "required": [
        "host"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "remove_host"
  },
  "required": [
    "remove_host"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "Aggregate object.",
  "properties": {
    "aggregate": {
      "type": "object",
      "description": "The host aggregate object.",
      "properties": {
        "availability_zone": {
          "type": "string",
          "description": "The availability zone of the host aggregate."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the resource was created. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "deleted": {
          "type": "boolean",
          "description": "A boolean indicates whether this aggregate is deleted or not, if it has\nnot been deleted, `false` will appear."
        },
        "deleted_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "The date and time when the resource was deleted. If the resource has\nnot been deleted yet, this field will be `null`, The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "id": {
          "type": "integer",
          "description": "The ID of the host aggregate."
        },
        "metadata": {
          "type": "object",
          "patternProperties": {
            "^[a-zA-Z0-9-_:. ]{1,255}$": {
              "type": "string",
              "maxLength": 255
            }
          },
          "additionalProperties": false,
          "description": "Metadata key and value pairs associated with the aggregate."
        },
        "hosts": {
          "type": "array",
          "description": "An array of host information.",
          "items": {
            "type": "string"
          }
        },
        "updated_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "The date and time when the resource was updated, if the resource has\nnot been updated, this field will show as `null`. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "uuid": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the host aggregate.\n\n\n**New in version 2\\.41**",
          "x-openstack": {
            "min-ver": "2.41"
          }
        }
      }
    }
  },
  "x-openstack": {
    "action-name": "remove_host"
  }
}

Name

Location

Type

Description

aggregate

body

object

The host aggregate object.

aggregate.availability_zone

body

string

The availability zone of the host aggregate.

aggregate.created_at

body

string

The date and time when the resource was created. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregate.deleted

body

boolean

A boolean indicates whether this aggregate is deleted or not, if it has not been deleted, false will appear.

aggregate.deleted_at

body

[‘string’, ‘null’]

The date and time when the resource was deleted. If the resource has not been deleted yet, this field will be null, The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregate.id

body

integer

The ID of the host aggregate.

aggregate.metadata

body

object

Metadata key and value pairs associated with the aggregate.

aggregate.hosts

body

array

An array of host information.

aggregate.updated_at

body

[‘string’, ‘null’]

The date and time when the resource was updated, if the resource has not been updated, this field will show as null. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregate.uuid

body

string

The UUID of the host aggregate.

New in version 2.41
New in version 2.41

400

Error

404

Error

409

Error

`set_metadata` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-aggregates/{id}/action API

set_metadata

body

object

set_metadata.metadata

body

object

{
  "type": "object",
  "properties": {
    "set_metadata": {
      "type": "object",
      "properties": {
        "metadata": {
          "type": "object",
          "additionalProperties": false,
          "patternProperties": {
            "^[a-zA-Z0-9-_:. ]{1,255}$": {
              "type": [
                "string",
                "null"
              ],
              "maxLength": 255
            }
          }
        }
      },
      "additionalProperties": false,
      "required": [
        "metadata"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "set_metadata"
  },
  "required": [
    "set_metadata"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "Aggregate object.",
  "properties": {
    "aggregate": {
      "type": "object",
      "description": "The host aggregate object.",
      "properties": {
        "availability_zone": {
          "type": "string",
          "description": "The availability zone of the host aggregate."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the resource was created. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "deleted": {
          "type": "boolean",
          "description": "A boolean indicates whether this aggregate is deleted or not, if it has\nnot been deleted, `false` will appear."
        },
        "deleted_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "The date and time when the resource was deleted. If the resource has\nnot been deleted yet, this field will be `null`, The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "id": {
          "type": "integer",
          "description": "The ID of the host aggregate."
        },
        "metadata": {
          "type": "object",
          "patternProperties": {
            "^[a-zA-Z0-9-_:. ]{1,255}$": {
              "type": "string",
              "maxLength": 255
            }
          },
          "additionalProperties": false,
          "description": "Metadata key and value pairs associated with the aggregate."
        },
        "hosts": {
          "type": "array",
          "description": "An array of host information.",
          "items": {
            "type": "string"
          }
        },
        "updated_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "The date and time when the resource was updated, if the resource has\nnot been updated, this field will show as `null`. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "uuid": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the host aggregate.\n\n\n**New in version 2\\.41**",
          "x-openstack": {
            "min-ver": "2.41"
          }
        }
      }
    }
  },
  "x-openstack": {
    "action-name": "set_metadata"
  }
}

Name

Location

Type

Description

aggregate

body

object

The host aggregate object.

aggregate.availability_zone

body

string

The availability zone of the host aggregate.

aggregate.created_at

body

string

The date and time when the resource was created. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregate.deleted

body

boolean

A boolean indicates whether this aggregate is deleted or not, if it has not been deleted, false will appear.

aggregate.deleted_at

body

[‘string’, ‘null’]

The date and time when the resource was deleted. If the resource has not been deleted yet, this field will be null, The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregate.id

body

integer

The ID of the host aggregate.

aggregate.metadata

body

object

Metadata key and value pairs associated with the aggregate.

aggregate.hosts

body

array

An array of host information.

aggregate.updated_at

body

[‘string’, ‘null’]

The date and time when the resource was updated, if the resource has not been updated, this field will show as null. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

aggregate.uuid

body

string

The UUID of the host aggregate.

New in version 2.41
New in version 2.41

400

Error

404

Error

409

Error

Request Image Pre-caching for Aggregate

Requests that a set of images be pre-cached on compute nodes within the referenced aggregate.

This API is available starting with microversion 2.81.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-aggregates/{id}/images API

cache

body

[‘array’]

A list of image objects to cache.

{
  "type": "object",
  "properties": {
    "cache": {
      "type": [
        "array"
      ],
      "minItems": 1,
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ]
      },
      "description": "A list of image objects to cache."
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.81"
  },
  "required": [
    "cache"
  ]
}

Responses

202

Ok

400

Error

404

Error

os-assisted-volume-snapshots

Create Assisted Volume Snapshots

Creates an assisted volume snapshot.

Normal response codes: 200

Error response codes: badRequest(400),unauthorized(401), forbidden(403)

Request

Name

Location

Type

Description

snapshot

body

object

A partial representation of a snapshot that is used to create a snapshot.

snapshot.volume_id

body

string

The source volume ID.

snapshot.create_info

body

object

Information for snapshot creation.

snapshot.create_info.snapshot_id

body

string

The UUID for a snapshot.

snapshot.create_info.type

body

string

The snapshot type. A valid value is qcow2.

snapshot.create_info.new_file

body

string

The name of the qcow2 file that Block Storage creates, which becomes the active image for the VM.

snapshot.create_info.id

body

string

Its an arbitrary string that gets passed back to the user.

{
  "type": "object",
  "properties": {
    "snapshot": {
      "type": "object",
      "description": "A partial representation of a snapshot that is used to create a snapshot.",
      "properties": {
        "volume_id": {
          "type": "string",
          "minLength": 1,
          "description": "The source volume ID."
        },
        "create_info": {
          "type": "object",
          "description": "Information for snapshot creation.",
          "properties": {
            "snapshot_id": {
              "type": "string",
              "minLength": 1,
              "description": "The UUID for a snapshot."
            },
            "type": {
              "type": "string",
              "enum": [
                "qcow2"
              ],
              "description": "The snapshot type. A valid value is `qcow2`."
            },
            "new_file": {
              "type": "string",
              "minLength": 1,
              "description": "The name of the qcow2 file that Block Storage creates, which becomes the active\nimage for the VM."
            },
            "id": {
              "type": "string",
              "minLength": 1,
              "description": "Its an arbitrary string that gets passed back to the user."
            }
          },
          "additionalProperties": false,
          "required": [
            "snapshot_id",
            "type",
            "new_file"
          ]
        }
      },
      "additionalProperties": false,
      "required": [
        "volume_id",
        "create_info"
      ]
    }
  },
  "additionalProperties": false,
  "required": [
    "snapshot"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "A partial representation of a snapshot that is used to create a snapshot.",
  "properties": {
    "snapshot": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Its the same arbitrary string which was sent in request body.\n\n\n\nNote\n\n\nThis string is passed back to user as it is and not being\nused in Nova internally. So use `snapshot_id` instead for further\noperation on this snapshot."
        },
        "volumeId": {
          "type": "string",
          "format": "uuid",
          "description": "The source volume ID."
        }
      },
      "description": "A partial representation of a snapshot that is used to create a snapshot."
    }
  }
}

Name

Location

Type

Description

snapshot

body

object

A partial representation of a snapshot that is used to create a snapshot.

snapshot.id

body

string

Its the same arbitrary string which was sent in request body.

Note

This string is passed back to user as it is and not being used in Nova internally. So use snapshot_id instead for further operation on this snapshot.

snapshot.volumeId

body

string

The source volume ID.

400

Error

Delete Assisted Volume Snapshot

Deletes an assisted volume snapshot.

To make this request, add the delete_info query parameter to the URI, as follows:

DELETE /os-assisted-volume-snapshots/421752a6-acf6-4b2d-bc7a-119f9148cd8c?delete_info=’{“volume_id”: “521752a6-acf6-4b2d-bc7a-119f9148cd8c”}’

Normal response codes: 204

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Responses

204

Ok

400

Error

404

Error

os-availability-zone

Get Availability Zone Information

Lists availability zone information.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "availabilityZoneInfo": {
      "type": "array",
      "description": "The list of availability zone information.",
      "items": {
        "type": "object",
        "properties": {
          "zoneName": {
            "type": "string",
            "description": "The availability zone name."
          },
          "zoneState": {
            "type": "object",
            "description": "The current state of the availability zone.",
            "properties": {
              "available": {
                "type": "boolean",
                "description": "Returns true if the availability zone is available."
              }
            }
          },
          "hosts": {
            "type": "null",
            "description": "It is always `null`."
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

availabilityZoneInfo

body

array

The list of availability zone information.

availabilityZoneInfo[].zoneName

body

string

The availability zone name.

availabilityZoneInfo[].zoneState

body

object

The current state of the availability zone.

availabilityZoneInfo[].zoneState.available

body

boolean

Returns true if the availability zone is available.

availabilityZoneInfo[].hosts

body

null

It is always null.

Get Detailed Availability Zone Information

Gets detailed availability zone information. Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "availabilityZoneInfo": {
      "type": "array",
      "description": "The list of availability zone information.",
      "items": {
        "type": "object",
        "properties": {
          "zoneName": {
            "type": "string",
            "description": "The availability zone name."
          },
          "zoneState": {
            "type": "object",
            "description": "The current state of the availability zone.",
            "properties": {
              "available": {
                "type": "boolean",
                "description": "Returns true if the availability zone is available."
              }
            }
          },
          "hosts": {
            "type": "object",
            "description": "An object containing a list of host information. The host information is comprised\nof host and service objects. The service object returns three parameters representing\nthe states of the service: `active`, `available`, and `updated_at`.",
            "examples": {
              "JSON request": {
                "conductor": {
                  "nova-conductor": {
                    "active": true,
                    "available": true,
                    "updated_at": null
                  }
                },
                "scheduler": {
                  "nova-scheduler": {
                    "active": true,
                    "available": true,
                    "updated_at": null
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

availabilityZoneInfo

body

array

The list of availability zone information.

availabilityZoneInfo[].zoneName

body

string

The availability zone name.

availabilityZoneInfo[].zoneState

body

object

The current state of the availability zone.

availabilityZoneInfo[].zoneState.available

body

boolean

Returns true if the availability zone is available.

availabilityZoneInfo[].hosts

body

object

An object containing a list of host information. The host information is comprised of host and service objects. The service object returns three parameters representing the states of the service: active, available, and updated_at.

os-baremetal-nodes

List Bare Metal Nodes

Lists the bare metal nodes known by the compute environment.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), notImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-baremetal-nodes:get operation"
}
404

Error

501

Error

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-baremetal-nodes:post operation"
}
400

Error

Show Bare Metal Node Details

Shows details for a bare metal node.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), notImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-baremetal-nodes/id:get operation"
}
404

Error

501

Error

Responses

204

Ok

400

Error

`add_interface` action

Empty body for add_interface action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-baremetal-nodes/{id}/action API

add_interface

body

null

{
  "type": "object",
  "description": "Empty body for add_interface action",
  "properties": {
    "add_interface": {
      "type": "null"
    }
  },
  "x-openstack": {
    "action-name": "add_interface"
  }
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-baremetal-nodes/id/action:post:add_interface action",
  "x-openstack": {
    "action-name": "add_interface"
  }
}
400

Error

`remove_interface` action

Empty body for remove_interface action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-baremetal-nodes/{id}/action API

remove_interface

body

null

{
  "type": "object",
  "description": "Empty body for remove_interface action",
  "properties": {
    "remove_interface": {
      "type": "null"
    }
  },
  "x-openstack": {
    "action-name": "remove_interface"
  }
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-baremetal-nodes/id/action:post:remove_interface action",
  "x-openstack": {
    "action-name": "remove_interface"
  }
}
400

Error

os-cells

List Cells

Lists cells.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), gone(410), notImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-cells:get operation"
}
410

Error

Create Cell

Create a new cell.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), gone(410), notImplemented(501)

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-cells:post operation"
}
410

Error

Capacities

Retrieve capacities.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), gone(410), notImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-cells/capacities:get operation"
}
410

Error

List Cells With Details

Lists cells with details of capabilities.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), gone(410), notImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-cells/detail:get operation"
}
410

Error

Info For This Cell

Retrieve info about the current cell.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), gone(410), notImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-cells/info:get operation"
}
410

Error

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-cells/sync_instances:post operation"
}
410

Error

Show Cell Data

Shows data for a cell.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), gone(410), notImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-cells/id:get operation"
}
410

Error

Update a Cell

Update an existing cell.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), gone(410), notImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-cells/id:put operation"
}
410

Error

Delete a Cell

Remove a cell.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), gone(410), notImplemented(501)

Responses

204

Ok

410

Error

Show Cell Capacities

Shows capacities for a cell.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), gone(410), notImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-cells/capacities:get operation"
}
410

Error

os-certificates

Create Root Certificate

Creates a root certificate.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-certificates:post operation"
}
410

Error

Return certificate information.

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-certificates/id:get operation"
}
410

Error

os-cloudpipe

List Cloudpipes

Lists cloudpipes.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound (404)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-cloudpipe:get operation"
}
410

Error

Create Cloudpipe

Creates a cloudpipe.

Normal response codes: 200

Error response codes: badRequest(400),unauthorized(401), forbidden(403)

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-cloudpipe:post operation"
}
410

Error

Configure cloudpipe parameters for the project.

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-cloudpipe/id:put operation"
}
410

Error

server-consoles

Manage server consoles.

Show Console Connection Information

Given the console authentication token for a server, shows the related connection information.

Nova HyperV driver has been removed therefore requests for RDP console connection information will always return an http 400 error. Starting from microversion 2.31 it’s available for all other console types.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Show Console Connection Information Response",
  "properties": {
    "console": {
      "type": "object",
      "description": "The console object.",
      "properties": {
        "instance_uuid": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the server."
        },
        "host": {
          "type": "string",
          "description": "The name or ID of the host."
        },
        "port": {
          "type": "integer",
          "description": "The port number."
        },
        "internal_access_path": {
          "type": "string",
          "description": "The id representing the internal access path."
        }
      },
      "required": [
        "instance_uuid",
        "port"
      ]
    }
  }
}

Name

Location

Type

Description

console

body

object

The console object.

console.instance_uuid

body

string

The UUID of the server.

console.host

body

string

The name or ID of the host.

console.port

body

integer

The port number.

console.internal_access_path

body

string

The id representing the internal access path.

400

Error

401

Error

404

Error

Create Console

The API provides a unified request for creating a remote console. The user can get a URL to connect the console from this API. The URL includes the token which is used to get permission to access the console. Servers may support different console protocols. To return a remote console using a specific protocol, such as VNC, set the protocol parameter to vnc.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), notImplemented(501)

Request

Name

Location

Type

Description

server_id

path

string

server_id parameter for /v2.1/servers/{server_id}/remote-consoles API

remote_console

body

object

The remote console object.

remote_console.protocol

body

string

The protocol of remote console. The valid values are vnc, spice, serial and mks. The protocol mks is added since Microversion 2.8.

remote_console.type

body

string

The type of remote console. The valid values are novnc, spice-html5, serial, and webmks. The type webmks is added since Microversion 2.8.

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "remote_console": {
          "type": "object",
          "description": "The remote console object.",
          "properties": {
            "protocol": {
              "type": "string",
              "enum": [
                "vnc",
                "spice",
                "serial"
              ],
              "description": "The protocol of remote console. The valid values are `vnc`, `spice`,\n`serial` and `mks`. The protocol `mks` is added since Microversion\n`2.8`."
            },
            "type": {
              "type": "string",
              "enum": [
                "novnc",
                "xvpvnc",
                "spice-html5",
                "serial"
              ],
              "description": "The type of remote console. The valid values are `novnc`,\n`spice-html5`, `serial`, and `webmks`. The type\n`webmks` is added since Microversion `2.8`."
            }
          },
          "additionalProperties": false,
          "required": [
            "protocol",
            "type"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.6",
        "max-ver": "2.7"
      },
      "required": [
        "remote_console"
      ]
    },
    {
      "type": "object",
      "properties": {
        "remote_console": {
          "type": "object",
          "description": "The remote console object.",
          "properties": {
            "protocol": {
              "type": "string",
              "enum": [
                "vnc",
                "spice",
                "serial",
                "mks"
              ],
              "description": "The protocol of remote console. The valid values are `vnc`, `spice`,\n`serial` and `mks`. The protocol `mks` is added since Microversion\n`2.8`."
            },
            "type": {
              "type": "string",
              "enum": [
                "novnc",
                "xvpvnc",
                "spice-html5",
                "serial",
                "webmks"
              ],
              "description": "The type of remote console. The valid values are `novnc`,\n`spice-html5`, `serial`, and `webmks`. The type\n`webmks` is added since Microversion `2.8`."
            }
          },
          "additionalProperties": false,
          "required": [
            "protocol",
            "type"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.8"
      },
      "required": [
        "remote_console"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion"
  }
}

Responses

201

Ok

{
  "type": "object",
  "description": "Create Console Response",
  "properties": {
    "remote_console": {
      "type": "object",
      "description": "The remote console object.",
      "properties": {
        "protocol": {
          "type": "string",
          "enum": [
            "vnc",
            "spice",
            "serial",
            "mks"
          ],
          "description": "The protocol of remote console. The valid values are `vnc`, `spice`,\n`serial` and `mks`. The protocol `mks` is added since Microversion\n`2.8`."
        },
        "type": {
          "type": "string",
          "enum": [
            "novnc",
            "xvpvnc",
            "spice-html5",
            "serial",
            "webmks"
          ],
          "description": "The type of remote console. The valid values are `novnc`,\n`spice-html5`, `serial`, and `webmks`. The type\n`webmks` is added since Microversion `2.8`."
        },
        "url": {
          "type": "string",
          "format": "uri",
          "description": "The URL is used to connect the console."
        }
      }
    }
  }
}

Name

Location

Type

Description

remote_console

body

object

The remote console object.

remote_console.protocol

body

string

The protocol of remote console. The valid values are vnc, spice, serial and mks. The protocol mks is added since Microversion 2.8.

remote_console.type

body

string

The type of remote console. The valid values are novnc, spice-html5, serial, and webmks. The type webmks is added since Microversion 2.8.

remote_console.url

body

string

The URL is used to connect the console.

400

Error

404

Error

409

Error

501

Error

os-fixed-ips

Show Fixed Ip Details

Shows details for a fixed IP address.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), gone(410)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-fixed-ips/id:get operation"
}
410

Error

`reserve` action

Empty body for reserve action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-fixed-ips/{id}/action API

reserve

body

null

{
  "type": "object",
  "description": "Empty body for reserve action",
  "properties": {
    "reserve": {
      "type": "null"
    }
  },
  "x-openstack": {
    "action-name": "reserve"
  }
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-fixed-ips/id/action:post:reserve action",
  "x-openstack": {
    "action-name": "reserve"
  }
}
410

Error

`unreserve` action

Empty body for unreserve action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-fixed-ips/{id}/action API

unreserve

body

null

{
  "type": "object",
  "description": "Empty body for unreserve action",
  "properties": {
    "unreserve": {
      "type": "null"
    }
  },
  "x-openstack": {
    "action-name": "unreserve"
  }
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-fixed-ips/id/action:post:unreserve action",
  "x-openstack": {
    "action-name": "unreserve"
  }
}
410

Error

os-floating-ip-dns

List DNS Domains

Lists registered DNS domains published by the DNS drivers.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), gone(410), notImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-floating-ip-dns:get operation"
}
410

Error

Create Or Update DNS Domain

Creates or updates a DNS domain.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), gone(410), notImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-floating-ip-dns/id:put operation"
}
410

Error

Delete DNS Domain

Deletes a DNS domain and all associated host entries.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), gone(410), notImplemented(501)

Responses

204

Ok

410

Error

List DNS Entries

Lists DNS entries for a domain and IP.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), gone(410), notImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-floating-ip-dns/domain_id/entries/id:get operation"
}
410

Error

Create Or Update DNS Entry

Creates or updates a DNS entry.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), gone(410), notImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-floating-ip-dns/domain_id/entries/id:put operation"
}
410

Error

Delete DNS Entry

Deletes a DNS entry.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), gone(410), notImplemented(501)

Responses

204

Ok

410

Error

os-floating-ip-pools

List Floating Ip Pools

Lists floating IP pools.

Policy defaults enable only users with the administrative role or user who is authorized to operate on tenant <tenant_id> to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-floating-ip-pools:get operation"
}

os-floating-ips

List Floating Ip Addresses

Lists floating IP addresses associated with the tenant or account.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-floating-ips:get operation"
}

Create (Allocate) Floating Ip Address

Creates, or allocates, a floating IP address for the current project. By default, the floating IP address is allocated from the public pool.

If more than one floating IP address pool is available, use the pool parameter to specify from which pool to allocate the IP address.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-floating-ips:post operation"
}
400

Error

403

Error

404

Error

Show Floating Ip Address Details

Shows details for a floating IP address, by ID, that is associated with the tenant or account.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-floating-ips/id:get operation"
}
400

Error

404

Error

Delete (Deallocate) Floating Ip Address

Deletes, or deallocates, a floating IP address from the current project and returns it to the pool from which it was allocated.

If the IP address is still associated with a running instance, it is automatically disassociated from that instance.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Responses

202

Ok

400

Error

403

Error

404

Error

409

Error

os-floating-ips-bulk

List Floating Ips

Lists all floating IPs.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), gone(410)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-floating-ips-bulk:get operation"
}
410

Error

Create Floating Ips

Bulk-creates floating IPs.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), conflict(409), gone(410)

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-floating-ips-bulk:post operation"
}
410

Error

List Floating Ips By Host

Lists all floating IPs for a host.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), gone(410)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-floating-ips-bulk/id:get operation"
}
410

Error

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-floating-ips-bulk/id:put operation"
}
410

Error

os-fping

Ping Instances

Runs the fping utility to ping instances and reports which instances are alive.

Specify the all_tenants=1 query parameter to ping instances for all tenants. For example:

Specify the include and exclude query parameters to filter the results. For example:

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: serviceUnavailable(503), unauthorized(401), forbidden(403), itemNotFound(404), gone(410)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-fping:get operation"
}
410

Error

Ping An Instance

Runs the fping utility to ping an instance and reports whether the instance is alive.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: serviceUnavailable(503), unauthorized(401), forbidden(403), itemNotFound(404), gone(410)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-fping/id:get operation"
}
410

Error

os-hosts

List Hosts

Lists hosts.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-hosts:get operation"
}

Show Host Details

Shows details for a host.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-hosts/id:get operation"
}
404

Error

Update Host status

Enables, disables a host or put a host in maintenance or normal mode.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), NotImplemented(501)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-hosts/{id} API

status

body

string

The status of the host, either enable or disable.

maintenance_mode

body

string

Mode of maintenance state, either enable or disable.

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "enable",
        "disable",
        "Enable",
        "Disable",
        "ENABLE",
        "DISABLE"
      ],
      "description": "The status of the host, either `enable` or `disable`."
    },
    "maintenance_mode": {
      "type": "string",
      "enum": [
        "enable",
        "disable",
        "Enable",
        "Disable",
        "ENABLE",
        "DISABLE"
      ],
      "description": "Mode of maintenance state, either `enable` or `disable`."
    }
  },
  "additionalProperties": false,
  "anyOf": [
    {
      "required": [
        "status"
      ]
    },
    {
      "required": [
        "maintenance_mode"
      ]
    }
  ],
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.42"
  }
}

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-hosts/id:put operation"
}
400

Error

404

Error

501

Error

Reboot Host

Reboots a host.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), NotImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-hosts/id/reboot:get operation"
}
400

Error

404

Error

501

Error

Shut Down Host

Shuts down a host.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), NotImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-hosts/id/shutdown:get operation"
}
400

Error

404

Error

501

Error

Start Host

Starts a host.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), NotImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-hosts/id/startup:get operation"
}
400

Error

404

Error

501

Error

os-hypervisors

List Hypervisors

Lists hypervisors.

Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "hypervisors": {
      "type": "array",
      "description": "An array of hypervisor information.",
      "items": {
        "type": "object",
        "description": "The hypervisor object.",
        "properties": {
          "hypervisor_hostname": {
            "type": "string",
            "description": "The hypervisor host name provided by the Nova virt driver. For the Ironic\ndriver, it is the Ironic node uuid."
          },
          "id": {
            "type": "string",
            "description": "The id of the hypervisor as a UUID.\n\n\n**New in version 2\\.53**"
          },
          "state": {
            "type": "string",
            "enum": [
              "up",
              "down"
            ],
            "description": "The state of the hypervisor. One of `up` or `down`."
          },
          "status": {
            "type": "string",
            "enum": [
              "disabled",
              "enabled"
            ],
            "description": "The status of the hypervisor. One of `enabled` or `disabled`."
          },
          "servers": {
            "type": "array",
            "description": "A list of `server` objects.\nThis field has become mandatory in microversion 2\\.75\\. If no servers is on hypervisor\nthen empty list is returned.\n\n\n**New in version 2\\.53**",
            "x-openstack": {
              "min-ver": "2.53"
            },
            "items": {
              "type": "object",
              "properties": {
                "uuid": {
                  "type": "string",
                  "format": "uuid",
                  "description": "The server ID."
                },
                "name": {
                  "type": "string",
                  "description": "The server name."
                }
              }
            }
          }
        }
      }
    },
    "hypervisor_links": {
      "type": "array",
      "description": "Links pertaining to usage. See [API Guide / Links and\nReferences](https://docs.openstack.org/api-guide/compute/links_and_references.html)\nfor more info.\n\n\n**New in version 2\\.40**",
      "items": {
        "type": "object",
        "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
        "properties": {
          "href": {
            "type": "string",
            "format": "uri"
          },
          "rel": {
            "type": "string"
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

hypervisors

body

array

An array of hypervisor information.

hypervisors[].hypervisor_hostname

body

string

The hypervisor host name provided by the Nova virt driver. For the Ironic driver, it is the Ironic node uuid.

hypervisors[].id

body

string

The id of the hypervisor as a UUID.

New in version 2.53

hypervisors[].state

body

string

The state of the hypervisor. One of up or down.

hypervisors[].status

body

string

The status of the hypervisor. One of enabled or disabled.

hypervisors[].servers

body

array

A list of server objects. This field has become mandatory in microversion 2.75. If no servers is on hypervisor then empty list is returned.

New in version 2.53
New in version 2.53

hypervisors[].servers[].uuid

body

string

The server ID.

hypervisors[].servers[].name

body

string

The server name.

hypervisor_links

body

array

Links pertaining to usage. See API Guide / Links and References for more info.

New in version 2.40

hypervisor_links[].href

body

string

hypervisor_links[].rel

body

string

400

Error

404

Error

List Hypervisors Details

Lists hypervisors details.

Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "hypervisors": {
      "type": "array",
      "description": "An array of hypervisor information.",
      "items": {
        "type": "object",
        "description": "The hypervisor object.",
        "properties": {
          "cpu_info": {
            "type": "object",
            "description": "A dictionary that contains cpu information like `arch`, `model`,\n`vendor`, `features` and `topology`. The content of this field is\nhypervisor specific.\n\n\n\nNote\n\n\nSince version 2\\.28 `cpu_info` field is returned as a dictionary\ninstead of string.\n\n\n\n**Available until version 2\\.87**",
            "additionalProperties": true,
            "x-openstack": {
              "max-ver": "2.87"
            }
          },
          "current_workload": {
            "type": "integer",
            "description": "The current_workload is the number of tasks the hypervisor is responsible\nfor. This will be equal or greater than the number of active VMs on the\nsystem (it can be greater when VMs are being deleted and the hypervisor is\nstill cleaning up).\n\n\n**Available until version 2\\.87**",
            "x-openstack": {
              "max-ver": "2.87"
            }
          },
          "disk_available_least": {
            "type": "integer",
            "description": "The actual free disk on this hypervisor(in GiB). If allocation ratios used\nfor overcommit are configured, this may be negative. This is intentional as\nit provides insight into the amount by which the disk is overcommitted.\n\n\n**Available until version 2\\.87**",
            "x-openstack": {
              "max-ver": "2.87"
            }
          },
          "host_ip": {
            "type": "string",
            "format": "ip",
            "description": "The IP address of the hypervisor\u2019s host."
          },
          "free_disk_gb": {
            "type": "integer",
            "description": "The free disk remaining on this hypervisor(in GiB). This does not take\nallocation ratios used for overcommit into account so this value may be\nnegative.\n\n\n**Available until version 2\\.87**",
            "x-openstack": {
              "max-ver": "2.87"
            }
          },
          "free_ram_mb": {
            "type": "integer",
            "description": "The free RAM in this hypervisor(in MiB). This does not take allocation\nratios used for overcommit into account so this value may be negative.\n\n\n**Available until version 2\\.87**",
            "x-openstack": {
              "max-ver": "2.87"
            }
          },
          "hypervisor_hostname": {
            "type": "string",
            "description": "The hypervisor host name provided by the Nova virt driver. For the Ironic\ndriver, it is the Ironic node uuid."
          },
          "hypervisor_type": {
            "type": "string",
            "description": "The hypervisor type."
          },
          "hypervisor_version": {
            "type": "integer",
            "description": "The hypervisor version."
          },
          "local_gb": {
            "type": "integer",
            "x-openstack": {
              "max-ver": "2.87",
              "description": "The disk in this hypervisor (in GiB). This does not take allocation ratios used for overcommit into account so there may be disparity between this and the used count."
            },
            "description": "The disk in this hypervisor (in GiB). This does not take allocation\nratios used for overcommit into account so there may be disparity between\nthis and the used count.\n\n\n**Available until version 2\\.87**"
          },
          "local_gb_used": {
            "type": "integer",
            "x-openstack": {
              "max-ver": "2.87",
              "description": "The disk used in this hypervisor (in GiB)."
            },
            "description": "The disk used in this hypervisor (in GiB).\n\n\n**Available until version 2\\.87**"
          },
          "memory_mb": {
            "type": "integer",
            "x-openstack": {
              "max-ver": "2.87",
              "description": "The memory of this hypervisor (in MiB). This does not take allocation ratios used for overcommit into account so there may be disparity between this and the used count."
            },
            "description": "The memory of this hypervisor (in MiB). This does not take allocation\nratios used for overcommit into account so there may be disparity between\nthis and the used count.\n\n\n**Available until version 2\\.87**"
          },
          "memory_mb_used": {
            "type": "integer",
            "x-openstack": {
              "max-ver": "2.87",
              "description": "The memory used in this hypervisor (in MiB)."
            },
            "description": "The memory used in this hypervisor (in MiB).\n\n\n**Available until version 2\\.87**"
          },
          "running_vms": {
            "type": "integer",
            "x-openstack": {
              "max-ver": "2.87",
              "description": "The number of running VMs on this hypervisor. "
            },
            "description": "The number of running VMs on this hypervisor.\n\n\n**Available until version 2\\.87**"
          },
          "service": {
            "type": "object",
            "description": "The hypervisor service object.",
            "properties": {
              "host": {
                "type": "string",
                "description": "The name of the host."
              },
              "id": {
                "type": [
                  "integer",
                  "string"
                ],
                "format": "uuid",
                "description": "The id of the service as a uuid.\n\n\n**New in version 2\\.53**"
              },
              "disabled_reason": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The disable reason of the service, `null` if the service is enabled or\ndisabled without reason provided."
              }
            }
          },
          "uptime": {
            "type": "string",
            "description": "The total uptime of the hypervisor and information about average load. Only\nreported for active hosts where the virt driver supports this feature.\n\n\n**New in version 2\\.88**",
            "x-openstack": {
              "min-ver": "2.87"
            }
          },
          "vcpus": {
            "type": "integer",
            "x-openstack": {
              "max-ver": "2.87"
            },
            "description": "The number of vCPU in this hypervisor. This does not take allocation\nratios used for overcommit into account so there may be disparity between\nthis and the used count.\n\n\n**Available until version 2\\.87**"
          },
          "vcpus_used": {
            "type": "integer",
            "x-openstack": {
              "max-ver": "2.87"
            },
            "description": "The number of vCPU used in this hypervisor.\n\n\n**Available until version 2\\.87**"
          },
          "id": {
            "type": "string",
            "description": "The id of the hypervisor. From version 2.53 it is a string as UUID"
          },
          "state": {
            "type": "string",
            "enum": [
              "up",
              "down"
            ],
            "description": "The state of the hypervisor. One of `up` or `down`."
          },
          "status": {
            "type": "string",
            "enum": [
              "disabled",
              "enabled"
            ],
            "description": "The status of the hypervisor. One of `enabled` or `disabled`."
          },
          "servers": {
            "type": "array",
            "description": "A list of `server` objects.\nThis field has become mandatory in microversion 2\\.75\\. If no servers is on hypervisor\nthen empty list is returned.\n\n\n**New in version 2\\.53**",
            "x-openstack": {
              "min-ver": "2.53"
            },
            "items": {
              "type": "object",
              "properties": {
                "uuid": {
                  "type": "string",
                  "format": "uuid",
                  "description": "The server ID."
                },
                "name": {
                  "type": "string",
                  "description": "The server name."
                }
              }
            }
          }
        }
      }
    },
    "hypervisor_links": {
      "type": "array",
      "description": "Links pertaining to usage. See [API Guide / Links and\nReferences](https://docs.openstack.org/api-guide/compute/links_and_references.html)\nfor more info.\n\n\n**New in version 2\\.40**",
      "items": {
        "type": "object",
        "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
        "properties": {
          "href": {
            "type": "string",
            "format": "uri"
          },
          "rel": {
            "type": "string"
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

hypervisors

body

array

An array of hypervisor information.

hypervisors[].cpu_info

body

object

A dictionary that contains cpu information like arch, model, vendor, features and topology. The content of this field is hypervisor specific.

Note

Since version 2.28 cpu_info field is returned as a dictionary instead of string.

Available until version 2.87
Available until version 2.87

hypervisors[].current_workload

body

integer

The current_workload is the number of tasks the hypervisor is responsible for. This will be equal or greater than the number of active VMs on the system (it can be greater when VMs are being deleted and the hypervisor is still cleaning up).

Available until version 2.87
Available until version 2.87

hypervisors[].disk_available_least

body

integer

The actual free disk on this hypervisor(in GiB). If allocation ratios used for overcommit are configured, this may be negative. This is intentional as it provides insight into the amount by which the disk is overcommitted.

Available until version 2.87
Available until version 2.87

hypervisors[].host_ip

body

string

The IP address of the hypervisor’s host.

hypervisors[].free_disk_gb

body

integer

The free disk remaining on this hypervisor(in GiB). This does not take allocation ratios used for overcommit into account so this value may be negative.

Available until version 2.87
Available until version 2.87

hypervisors[].free_ram_mb

body

integer

The free RAM in this hypervisor(in MiB). This does not take allocation ratios used for overcommit into account so this value may be negative.

Available until version 2.87
Available until version 2.87

hypervisors[].hypervisor_hostname

body

string

The hypervisor host name provided by the Nova virt driver. For the Ironic driver, it is the Ironic node uuid.

hypervisors[].hypervisor_type

body

string

The hypervisor type.

hypervisors[].hypervisor_version

body

integer

The hypervisor version.

hypervisors[].local_gb

body

integer

The disk in this hypervisor (in GiB). This does not take allocation ratios used for overcommit into account so there may be disparity between this and the used count.

Available until version 2.87
Available until version 2.87

hypervisors[].local_gb_used

body

integer

The disk used in this hypervisor (in GiB).

Available until version 2.87
Available until version 2.87

hypervisors[].memory_mb

body

integer

The memory of this hypervisor (in MiB). This does not take allocation ratios used for overcommit into account so there may be disparity between this and the used count.

Available until version 2.87
Available until version 2.87

hypervisors[].memory_mb_used

body

integer

The memory used in this hypervisor (in MiB).

Available until version 2.87
Available until version 2.87

hypervisors[].running_vms

body

integer

The number of running VMs on this hypervisor.

Available until version 2.87
Available until version 2.87

hypervisors[].service

body

object

The hypervisor service object.

hypervisors[].service.host

body

string

The name of the host.

hypervisors[].service.id

body

[‘integer’, ‘string’]

The id of the service as a uuid.

New in version 2.53

hypervisors[].service.disabled_reason

body

[‘string’, ‘null’]

The disable reason of the service, null if the service is enabled or disabled without reason provided.

hypervisors[].uptime

body

string

The total uptime of the hypervisor and information about average load. Only reported for active hosts where the virt driver supports this feature.

New in version 2.88
New in version 2.87

hypervisors[].vcpus

body

integer

The number of vCPU in this hypervisor. This does not take allocation ratios used for overcommit into account so there may be disparity between this and the used count.

Available until version 2.87
Available until version 2.87

hypervisors[].vcpus_used

body

integer

The number of vCPU used in this hypervisor.

Available until version 2.87
Available until version 2.87

hypervisors[].id

body

string

The id of the hypervisor. From version 2.53 it is a string as UUID

hypervisors[].state

body

string

The state of the hypervisor. One of up or down.

hypervisors[].status

body

string

The status of the hypervisor. One of enabled or disabled.

hypervisors[].servers

body

array

A list of server objects. This field has become mandatory in microversion 2.75. If no servers is on hypervisor then empty list is returned.

New in version 2.53
New in version 2.53

hypervisors[].servers[].uuid

body

string

The server ID.

hypervisors[].servers[].name

body

string

The server name.

hypervisor_links

body

array

Links pertaining to usage. See API Guide / Links and References for more info.

New in version 2.40

hypervisor_links[].href

body

string

hypervisor_links[].rel

body

string

400

Error

404

Error

Show Hypervisor Statistics (DEPRECATED)

Shows summary statistics for all enabled hypervisors over all compute nodes.

Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-hypervisors/statistics:get operation"
}

Show Hypervisor Details

Shows details for a given hypervisor.

Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "hypervisor": {
      "type": "object",
      "description": "The hypervisor object.",
      "properties": {
        "cpu_info": {
          "type": "object",
          "description": "A dictionary that contains cpu information like `arch`, `model`,\n`vendor`, `features` and `topology`. The content of this field is\nhypervisor specific.\n\n\n\nNote\n\n\nSince version 2\\.28 `cpu_info` field is returned as a dictionary\ninstead of string.\n\n\n\n**Available until version 2\\.87**",
          "additionalProperties": true,
          "x-openstack": {
            "max-ver": "2.87"
          }
        },
        "current_workload": {
          "type": "integer",
          "description": "The current_workload is the number of tasks the hypervisor is responsible\nfor. This will be equal or greater than the number of active VMs on the\nsystem (it can be greater when VMs are being deleted and the hypervisor is\nstill cleaning up).\n\n\n**Available until version 2\\.87**",
          "x-openstack": {
            "max-ver": "2.87"
          }
        },
        "disk_available_least": {
          "type": "integer",
          "description": "The actual free disk on this hypervisor(in GiB). If allocation ratios used\nfor overcommit are configured, this may be negative. This is intentional as\nit provides insight into the amount by which the disk is overcommitted.\n\n\n**Available until version 2\\.87**",
          "x-openstack": {
            "max-ver": "2.87"
          }
        },
        "host_ip": {
          "type": "string",
          "format": "ip",
          "description": "The IP address of the hypervisor\u2019s host."
        },
        "free_disk_gb": {
          "type": "integer",
          "description": "The free disk remaining on this hypervisor(in GiB). This does not take\nallocation ratios used for overcommit into account so this value may be\nnegative.\n\n\n**Available until version 2\\.87**",
          "x-openstack": {
            "max-ver": "2.87"
          }
        },
        "free_ram_mb": {
          "type": "integer",
          "description": "The free RAM in this hypervisor(in MiB). This does not take allocation\nratios used for overcommit into account so this value may be negative.\n\n\n**Available until version 2\\.87**",
          "x-openstack": {
            "max-ver": "2.87"
          }
        },
        "hypervisor_hostname": {
          "type": "string",
          "description": "The hypervisor host name provided by the Nova virt driver. For the Ironic\ndriver, it is the Ironic node uuid."
        },
        "hypervisor_type": {
          "type": "string",
          "description": "The hypervisor type."
        },
        "hypervisor_version": {
          "type": "integer",
          "description": "The hypervisor version."
        },
        "local_gb": {
          "type": "integer",
          "x-openstack": {
            "max-ver": "2.87",
            "description": "The disk in this hypervisor (in GiB). This does not take allocation ratios used for overcommit into account so there may be disparity between this and the used count."
          },
          "description": "The disk in this hypervisor (in GiB). This does not take allocation\nratios used for overcommit into account so there may be disparity between\nthis and the used count.\n\n\n**Available until version 2\\.87**"
        },
        "local_gb_used": {
          "type": "integer",
          "x-openstack": {
            "max-ver": "2.87",
            "description": "The disk used in this hypervisor (in GiB)."
          },
          "description": "The disk used in this hypervisor (in GiB).\n\n\n**Available until version 2\\.87**"
        },
        "memory_mb": {
          "type": "integer",
          "x-openstack": {
            "max-ver": "2.87",
            "description": "The memory of this hypervisor (in MiB). This does not take allocation ratios used for overcommit into account so there may be disparity between this and the used count."
          },
          "description": "The memory of this hypervisor (in MiB). This does not take allocation\nratios used for overcommit into account so there may be disparity between\nthis and the used count.\n\n\n**Available until version 2\\.87**"
        },
        "memory_mb_used": {
          "type": "integer",
          "x-openstack": {
            "max-ver": "2.87",
            "description": "The memory used in this hypervisor (in MiB)."
          },
          "description": "The memory used in this hypervisor (in MiB).\n\n\n**Available until version 2\\.87**"
        },
        "running_vms": {
          "type": "integer",
          "x-openstack": {
            "max-ver": "2.87",
            "description": "The number of running VMs on this hypervisor. "
          },
          "description": "The number of running VMs on this hypervisor.\n\n\n**Available until version 2\\.87**"
        },
        "service": {
          "type": "object",
          "description": "The hypervisor service object.",
          "properties": {
            "host": {
              "type": "string",
              "description": "The name of the host."
            },
            "id": {
              "type": [
                "integer",
                "string"
              ],
              "format": "uuid",
              "description": "The id of the service as a uuid.\n\n\n**New in version 2\\.53**"
            },
            "disabled_reason": {
              "type": [
                "string",
                "null"
              ],
              "description": "The disable reason of the service, `null` if the service is enabled or\ndisabled without reason provided."
            }
          }
        },
        "uptime": {
          "type": "string",
          "description": "The total uptime of the hypervisor and information about average load. Only\nreported for active hosts where the virt driver supports this feature.\n\n\n**New in version 2\\.88**",
          "x-openstack": {
            "min-ver": "2.87"
          }
        },
        "vcpus": {
          "type": "integer",
          "x-openstack": {
            "max-ver": "2.87"
          },
          "description": "The number of vCPU in this hypervisor. This does not take allocation\nratios used for overcommit into account so there may be disparity between\nthis and the used count.\n\n\n**Available until version 2\\.87**"
        },
        "vcpus_used": {
          "type": "integer",
          "x-openstack": {
            "max-ver": "2.87"
          },
          "description": "The number of vCPU used in this hypervisor.\n\n\n**Available until version 2\\.87**"
        },
        "id": {
          "type": "string",
          "description": "The id of the hypervisor. From version 2.53 it is a string as UUID"
        },
        "state": {
          "type": "string",
          "enum": [
            "up",
            "down"
          ],
          "description": "The state of the hypervisor. One of `up` or `down`."
        },
        "status": {
          "type": "string",
          "enum": [
            "disabled",
            "enabled"
          ],
          "description": "The status of the hypervisor. One of `enabled` or `disabled`."
        },
        "servers": {
          "type": "array",
          "description": "A list of `server` objects.\nThis field has become mandatory in microversion 2\\.75\\. If no servers is on hypervisor\nthen empty list is returned.\n\n\n**New in version 2\\.53**",
          "x-openstack": {
            "min-ver": "2.53"
          },
          "items": {
            "type": "object",
            "properties": {
              "uuid": {
                "type": "string",
                "format": "uuid",
                "description": "The server ID."
              },
              "name": {
                "type": "string",
                "description": "The server name."
              }
            }
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

hypervisor

body

object

The hypervisor object.

hypervisor.cpu_info

body

object

A dictionary that contains cpu information like arch, model, vendor, features and topology. The content of this field is hypervisor specific.

Note

Since version 2.28 cpu_info field is returned as a dictionary instead of string.

Available until version 2.87
Available until version 2.87

hypervisor.current_workload

body

integer

The current_workload is the number of tasks the hypervisor is responsible for. This will be equal or greater than the number of active VMs on the system (it can be greater when VMs are being deleted and the hypervisor is still cleaning up).

Available until version 2.87
Available until version 2.87

hypervisor.disk_available_least

body

integer

The actual free disk on this hypervisor(in GiB). If allocation ratios used for overcommit are configured, this may be negative. This is intentional as it provides insight into the amount by which the disk is overcommitted.

Available until version 2.87
Available until version 2.87

hypervisor.host_ip

body

string

The IP address of the hypervisor’s host.

hypervisor.free_disk_gb

body

integer

The free disk remaining on this hypervisor(in GiB). This does not take allocation ratios used for overcommit into account so this value may be negative.

Available until version 2.87
Available until version 2.87

hypervisor.free_ram_mb

body

integer

The free RAM in this hypervisor(in MiB). This does not take allocation ratios used for overcommit into account so this value may be negative.

Available until version 2.87
Available until version 2.87

hypervisor.hypervisor_hostname

body

string

The hypervisor host name provided by the Nova virt driver. For the Ironic driver, it is the Ironic node uuid.

hypervisor.hypervisor_type

body

string

The hypervisor type.

hypervisor.hypervisor_version

body

integer

The hypervisor version.

hypervisor.local_gb

body

integer

The disk in this hypervisor (in GiB). This does not take allocation ratios used for overcommit into account so there may be disparity between this and the used count.

Available until version 2.87
Available until version 2.87

hypervisor.local_gb_used

body

integer

The disk used in this hypervisor (in GiB).

Available until version 2.87
Available until version 2.87

hypervisor.memory_mb

body

integer

The memory of this hypervisor (in MiB). This does not take allocation ratios used for overcommit into account so there may be disparity between this and the used count.

Available until version 2.87
Available until version 2.87

hypervisor.memory_mb_used

body

integer

The memory used in this hypervisor (in MiB).

Available until version 2.87
Available until version 2.87

hypervisor.running_vms

body

integer

The number of running VMs on this hypervisor.

Available until version 2.87
Available until version 2.87

hypervisor.service

body

object

The hypervisor service object.

hypervisor.service.host

body

string

The name of the host.

hypervisor.service.id

body

[‘integer’, ‘string’]

The id of the service as a uuid.

New in version 2.53

hypervisor.service.disabled_reason

body

[‘string’, ‘null’]

The disable reason of the service, null if the service is enabled or disabled without reason provided.

hypervisor.uptime

body

string

The total uptime of the hypervisor and information about average load. Only reported for active hosts where the virt driver supports this feature.

New in version 2.88
New in version 2.87

hypervisor.vcpus

body

integer

The number of vCPU in this hypervisor. This does not take allocation ratios used for overcommit into account so there may be disparity between this and the used count.

Available until version 2.87
Available until version 2.87

hypervisor.vcpus_used

body

integer

The number of vCPU used in this hypervisor.

Available until version 2.87
Available until version 2.87

hypervisor.id

body

string

The id of the hypervisor. From version 2.53 it is a string as UUID

hypervisor.state

body

string

The state of the hypervisor. One of up or down.

hypervisor.status

body

string

The status of the hypervisor. One of enabled or disabled.

hypervisor.servers

body

array

A list of server objects. This field has become mandatory in microversion 2.75. If no servers is on hypervisor then empty list is returned.

New in version 2.53
New in version 2.53

hypervisor.servers[].uuid

body

string

The server ID.

hypervisor.servers[].name

body

string

The server name.

400

Error

404

Error

Search Hypervisor (DEPRECATED)

Search hypervisor by a given hypervisor host name or portion of it.

Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response code: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-hypervisors/id/search:get operation"
}
404

Error

List Hypervisor Servers (DEPRECATED)

List all servers belong to each hypervisor whose host name is matching a given hypervisor host name or portion of it.

Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response code: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-hypervisors/id/servers:get operation"
}
404

Error

Show Hypervisor Uptime (DEPRECATED)

Shows the uptime for a given hypervisor.

Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), NotImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-hypervisors/id/uptime:get operation"
}
400

Error

404

Error

501

Error

os-instance_usage_audit_log

List Server Usage Audits

Lists usage audits for all servers on all compute hosts where usage auditing is configured.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "description": "The object of instance usage audit log information.",
  "properties": {
    "hosts_not_run": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of the hosts whose instance audit tasks have not run."
    },
    "log": {
      "type": "object",
      "description": "The object of instance usage audit logs."
    },
    "errors": {
      "type": "integer",
      "description": "The number of errors."
    },
    "instances": {
      "type": "integer",
      "description": "The number of instances."
    },
    "message": {
      "type": "string",
      "description": "The log message of the instance usage audit task."
    },
    "state": {
      "type": "string",
      "enum": [
        "DONE",
        "RUNNING"
      ],
      "description": "The state of the instance usage audit task.\n`DONE` or `RUNNING`."
    },
    "num_hosts": {
      "type": "integer",
      "description": "The number of the hosts."
    },
    "num_hosts_done": {
      "type": "integer",
      "description": "The number of the hosts whose instance audit tasks have been done."
    },
    "num_hosts_not_run": {
      "type": "integer",
      "description": "The number of the hosts whose instance audit tasks have not run."
    },
    "num_hosts_running": {
      "type": "integer",
      "description": "The number of the hosts whose instance audit tasks are running."
    },
    "overall_status": {
      "type": "string",
      "description": "The overall status of instance audit tasks.\n\n\n\n```\nM of N hosts done. K errors.\n\n```\n\n\nThe `M` value is the number of hosts whose instance audit tasks have\nbeen done in the period. The `N` value is the number of all hosts.\nThe `K` value is the number of hosts whose instance audit tasks\ncause errors. If instance audit tasks have been done at all hosts\nin the period, the overall status is as follows:\n\n\n\n```\nALL hosts done. K errors.\n\n```"
    },
    "period_beginning": {
      "type": "string",
      "format": "date-time",
      "description": "The beginning time of the instance usage audit period.\nFor example, `2016-05-01 00:00:00`."
    },
    "period_ending": {
      "type": "string",
      "format": "date-time",
      "description": "The ending time of the instance usage audit period.\nFor example, `2016-06-01 00:00:00`."
    },
    "total_errors": {
      "type": "integer",
      "description": "The total number of instance audit task errors."
    },
    "total_instances": {
      "type": "integer",
      "description": "The total number of VM instances in the period."
    }
  }
}

Name

Location

Type

Description

hosts_not_run

body

array

A list of the hosts whose instance audit tasks have not run.

log

body

object

The object of instance usage audit logs.

errors

body

integer

The number of errors.

instances

body

integer

The number of instances.

message

body

string

The log message of the instance usage audit task.

state

body

string

The state of the instance usage audit task. DONE or RUNNING.

num_hosts

body

integer

The number of the hosts.

num_hosts_done

body

integer

The number of the hosts whose instance audit tasks have been done.

num_hosts_not_run

body

integer

The number of the hosts whose instance audit tasks have not run.

num_hosts_running

body

integer

The number of the hosts whose instance audit tasks are running.

overall_status

body

string

The overall status of instance audit tasks.

M of N hosts done. K errors.

The M value is the number of hosts whose instance audit tasks have been done in the period. The N value is the number of all hosts. The K value is the number of hosts whose instance audit tasks cause errors. If instance audit tasks have been done at all hosts in the period, the overall status is as follows:

ALL hosts done. K errors.

period_beginning

body

string

The beginning time of the instance usage audit period. For example, 2016-05-01 00:00:00.

period_ending

body

string

The ending time of the instance usage audit period. For example, 2016-06-01 00:00:00.

total_errors

body

integer

The total number of instance audit task errors.

total_instances

body

integer

The total number of VM instances in the period.

List Usage Audits Before Specified Time

Lists usage audits that occurred before a specified time.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "description": "The object of instance usage audit log information.",
  "properties": {
    "hosts_not_run": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of the hosts whose instance audit tasks have not run."
    },
    "log": {
      "type": "object",
      "description": "The object of instance usage audit logs."
    },
    "errors": {
      "type": "integer",
      "description": "The number of errors."
    },
    "instances": {
      "type": "integer",
      "description": "The number of instances."
    },
    "message": {
      "type": "string",
      "description": "The log message of the instance usage audit task."
    },
    "state": {
      "type": "string",
      "enum": [
        "DONE",
        "RUNNING"
      ],
      "description": "The state of the instance usage audit task.\n`DONE` or `RUNNING`."
    },
    "num_hosts": {
      "type": "integer",
      "description": "The number of the hosts."
    },
    "num_hosts_done": {
      "type": "integer",
      "description": "The number of the hosts whose instance audit tasks have been done."
    },
    "num_hosts_not_run": {
      "type": "integer",
      "description": "The number of the hosts whose instance audit tasks have not run."
    },
    "num_hosts_running": {
      "type": "integer",
      "description": "The number of the hosts whose instance audit tasks are running."
    },
    "overall_status": {
      "type": "string",
      "description": "The overall status of instance audit tasks.\n\n\n\n```\nM of N hosts done. K errors.\n\n```\n\n\nThe `M` value is the number of hosts whose instance audit tasks have\nbeen done in the period. The `N` value is the number of all hosts.\nThe `K` value is the number of hosts whose instance audit tasks\ncause errors. If instance audit tasks have been done at all hosts\nin the period, the overall status is as follows:\n\n\n\n```\nALL hosts done. K errors.\n\n```"
    },
    "period_beginning": {
      "type": "string",
      "format": "date-time",
      "description": "The beginning time of the instance usage audit period.\nFor example, `2016-05-01 00:00:00`."
    },
    "period_ending": {
      "type": "string",
      "format": "date-time",
      "description": "The ending time of the instance usage audit period.\nFor example, `2016-06-01 00:00:00`."
    },
    "total_errors": {
      "type": "integer",
      "description": "The total number of instance audit task errors."
    },
    "total_instances": {
      "type": "integer",
      "description": "The total number of VM instances in the period."
    }
  }
}

Name

Location

Type

Description

hosts_not_run

body

array

A list of the hosts whose instance audit tasks have not run.

log

body

object

The object of instance usage audit logs.

errors

body

integer

The number of errors.

instances

body

integer

The number of instances.

message

body

string

The log message of the instance usage audit task.

state

body

string

The state of the instance usage audit task. DONE or RUNNING.

num_hosts

body

integer

The number of the hosts.

num_hosts_done

body

integer

The number of the hosts whose instance audit tasks have been done.

num_hosts_not_run

body

integer

The number of the hosts whose instance audit tasks have not run.

num_hosts_running

body

integer

The number of the hosts whose instance audit tasks are running.

overall_status

body

string

The overall status of instance audit tasks.

M of N hosts done. K errors.

The M value is the number of hosts whose instance audit tasks have been done in the period. The N value is the number of all hosts. The K value is the number of hosts whose instance audit tasks cause errors. If instance audit tasks have been done at all hosts in the period, the overall status is as follows:

ALL hosts done. K errors.

period_beginning

body

string

The beginning time of the instance usage audit period. For example, 2016-05-01 00:00:00.

period_ending

body

string

The ending time of the instance usage audit period. For example, 2016-06-01 00:00:00.

total_errors

body

integer

The total number of instance audit task errors.

total_instances

body

integer

The total number of VM instances in the period.

400

Error

os-keypairs

List Keypairs

Lists keypairs that are associated with the account.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "keypairs": {
      "type": "array",
      "description": "Array of Keypair objects",
      "items": {
        "type": "object",
        "properties": {
          "keypair": {
            "type": "object",
            "description": "Keypair object",
            "properties": {
              "name": {
                "type": "string",
                "description": "The name for the keypair."
              },
              "public_key": {
                "type": "string",
                "description": "The keypair public key."
              },
              "fingerprint": {
                "type": "string",
                "description": "The fingerprint for the keypair."
              },
              "type": {
                "type": "string",
                "description": "The type of the keypair. Allowed values are `ssh` or `x509`.\n\n\n**New in version 2\\.2**",
                "x-openstack": {
                  "min-ver": "2.2"
                }
              }
            }
          }
        }
      }
    },
    "keypairs_links": {
      "type": "array",
      "description": "Links pertaining to keypair. See [API Guide / Links and\nReferences](https://docs.openstack.org/api-guide/compute/links_and_references.html)\nfor more info.\n\n\n**New in version 2\\.35**",
      "items": {
        "type": "object",
        "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
        "properties": {
          "href": {
            "type": "string",
            "format": "uri"
          },
          "rel": {
            "type": "string"
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

keypairs

body

array

Array of Keypair objects

keypairs[].keypair

body

object

Keypair object

keypairs[].keypair.name

body

string

The name for the keypair.

keypairs[].keypair.public_key

body

string

The keypair public key.

keypairs[].keypair.fingerprint

body

string

The fingerprint for the keypair.

keypairs[].keypair.type

body

string

The type of the keypair. Allowed values are ssh or x509.

New in version 2.2
New in version 2.2

keypairs_links

body

array

Links pertaining to keypair. See API Guide / Links and References for more info.

New in version 2.35

keypairs_links[].href

body

string

keypairs_links[].rel

body

string

400

Error

Import (or create) Keypair

Imports (or generates) a keypair.

Normal response codes: 200, 201

Error response codes: badRequest(400), unauthorized(401), forbidden(403), conflict(409)

Request

Name

Location

Type

Description

keypair

body

object

Keypair object

keypair.name

body

string

A name for the keypair which will be used to reference it later.

Note

Since microversion 2.92, allowed characters are ASCII letters [a-zA-Z], digits [0-9] and the following special characters: [@._- ].

keypair.public_key

body

string

The public ssh key to import. Was optional before microversion 2.92 : if you were omitting this value, a keypair was generated for you.

keypair.type

body

string

The type of the keypair. Allowed values are ssh or x509.

New in version 2.2

keypair.user_id

body

string

The user_id for a keypair. This allows administrative users to upload keys for other users than themselves.

New in version 2.10

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "keypair": {
          "type": "object",
          "description": "Keypair object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name_with_leading_trailing_spaces",
              "description": "A name for the keypair which will be used to reference it later.\n\n\n\nNote\n\n\nSince microversion 2\\.92, allowed characters are ASCII letters\n`[a-zA-Z]`, digits `[0-9]` and the following special\ncharacters: `[@._- ]`."
            },
            "public_key": {
              "type": "string",
              "description": "The public ssh key to import.\nWas optional before microversion 2\\.92 : if you were omitting this value, a\nkeypair was generated for you."
            }
          },
          "additionalProperties": false,
          "required": [
            "name"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.0"
      },
      "required": [
        "keypair"
      ]
    },
    {
      "type": "object",
      "properties": {
        "keypair": {
          "type": "object",
          "description": "Keypair object",
          "properties": {
            "name": {
              "allOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "format": "name"
                },
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "format": "keypair_name_20"
                }
              ],
              "description": "A name for the keypair which will be used to reference it later.\n\n\n\nNote\n\n\nSince microversion 2\\.92, allowed characters are ASCII letters\n`[a-zA-Z]`, digits `[0-9]` and the following special\ncharacters: `[@._- ]`."
            },
            "public_key": {
              "type": "string",
              "description": "The public ssh key to import.\nWas optional before microversion 2\\.92 : if you were omitting this value, a\nkeypair was generated for you."
            }
          },
          "additionalProperties": false,
          "required": [
            "name"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.1",
        "max-ver": "2.1"
      },
      "required": [
        "keypair"
      ]
    },
    {
      "type": "object",
      "properties": {
        "keypair": {
          "type": "object",
          "description": "Keypair object",
          "properties": {
            "name": {
              "allOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "format": "name"
                },
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "format": "keypair_name_20"
                }
              ],
              "description": "A name for the keypair which will be used to reference it later.\n\n\n\nNote\n\n\nSince microversion 2\\.92, allowed characters are ASCII letters\n`[a-zA-Z]`, digits `[0-9]` and the following special\ncharacters: `[@._- ]`."
            },
            "type": {
              "type": "string",
              "enum": [
                "ssh",
                "x509"
              ],
              "description": "The type of the keypair. Allowed values are `ssh` or `x509`.\n\n\n**New in version 2\\.2**"
            },
            "public_key": {
              "type": "string",
              "description": "The public ssh key to import.\nWas optional before microversion 2\\.92 : if you were omitting this value, a\nkeypair was generated for you."
            }
          },
          "additionalProperties": false,
          "required": [
            "name"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.2",
        "max-ver": "2.9"
      },
      "required": [
        "keypair"
      ]
    },
    {
      "type": "object",
      "properties": {
        "keypair": {
          "type": "object",
          "description": "Keypair object",
          "properties": {
            "name": {
              "allOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "format": "name"
                },
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "format": "keypair_name_20"
                }
              ],
              "description": "A name for the keypair which will be used to reference it later.\n\n\n\nNote\n\n\nSince microversion 2\\.92, allowed characters are ASCII letters\n`[a-zA-Z]`, digits `[0-9]` and the following special\ncharacters: `[@._- ]`."
            },
            "type": {
              "type": "string",
              "enum": [
                "ssh",
                "x509"
              ],
              "description": "The type of the keypair. Allowed values are `ssh` or `x509`.\n\n\n**New in version 2\\.2**"
            },
            "public_key": {
              "type": "string",
              "description": "The public ssh key to import.\nWas optional before microversion 2\\.92 : if you were omitting this value, a\nkeypair was generated for you."
            },
            "user_id": {
              "type": "string",
              "description": "The user_id for a keypair. This allows administrative users to\nupload keys for other users than themselves.\n\n\n**New in version 2\\.10**"
            }
          },
          "additionalProperties": false,
          "required": [
            "name"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.10",
        "max-ver": "2.91"
      },
      "required": [
        "keypair"
      ]
    },
    {
      "type": "object",
      "properties": {
        "keypair": {
          "type": "object",
          "description": "Keypair object",
          "properties": {
            "name": {
              "allOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "format": "name"
                },
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255,
                  "format": "keypair_name_292"
                }
              ],
              "description": "A name for the keypair which will be used to reference it later.\n\n\n\nNote\n\n\nSince microversion 2\\.92, allowed characters are ASCII letters\n`[a-zA-Z]`, digits `[0-9]` and the following special\ncharacters: `[@._- ]`."
            },
            "type": {
              "type": "string",
              "enum": [
                "ssh",
                "x509"
              ],
              "description": "The type of the keypair. Allowed values are `ssh` or `x509`.\n\n\n**New in version 2\\.2**"
            },
            "public_key": {
              "type": "string",
              "description": "The public ssh key to import.\nWas optional before microversion 2\\.92 : if you were omitting this value, a\nkeypair was generated for you."
            },
            "user_id": {
              "type": "string",
              "description": "The user_id for a keypair. This allows administrative users to\nupload keys for other users than themselves.\n\n\n**New in version 2\\.10**"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "public_key"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.92"
      },
      "required": [
        "keypair"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion"
  }
}

Responses

201

Ok

{
  "type": "object",
  "description": "Keypair object",
  "properties": {
    "keypair": {
      "type": "object",
      "description": "Keypair object",
      "properties": {
        "user_id": {
          "type": "string",
          "description": "The user_id for a keypair."
        },
        "deleted": {
          "type": "boolean",
          "description": "A boolean indicates whether this keypair is deleted or not. The value is always false (not deleted)."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the resource was created."
        },
        "deleted_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "It is always null."
        },
        "updated_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "It is always null."
        },
        "id": {
          "type": "integer",
          "description": "The keypair ID."
        },
        "name": {
          "type": "string",
          "description": "The name for the keypair."
        },
        "public_key": {
          "type": "string",
          "description": "The keypair public key."
        },
        "fingerprint": {
          "type": "string",
          "description": "The fingerprint for the keypair."
        },
        "type": {
          "type": "string",
          "description": "The type of the keypair. Allowed values are `ssh` or `x509`.\n\n\n**New in version 2\\.2**",
          "x-openstack": {
            "min-ver": "2.2"
          }
        },
        "private_key": {
          "type": "string",
          "description": "If you do not provide a public key on create, a new keypair will\nbe built for you, and the private key will be returned during the\ninitial create call. Make sure to save this, as there is no way to\nget this private key again in the future.\n\n\n**Available until version 2\\.91**",
          "x-openstack": {
            "max-ver": "2.91"
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

keypair

body

object

Keypair object

keypair.user_id

body

string

The user_id for a keypair.

keypair.deleted

body

boolean

A boolean indicates whether this keypair is deleted or not. The value is always false (not deleted).

keypair.created_at

body

string

The date and time when the resource was created.

keypair.deleted_at

body

[‘string’, ‘null’]

It is always null.

keypair.updated_at

body

[‘string’, ‘null’]

It is always null.

keypair.id

body

integer

The keypair ID.

keypair.name

body

string

The name for the keypair.

keypair.public_key

body

string

The keypair public key.

keypair.fingerprint

body

string

The fingerprint for the keypair.

keypair.type

body

string

The type of the keypair. Allowed values are ssh or x509.

New in version 2.2
New in version 2.2

keypair.private_key

body

string

If you do not provide a public key on create, a new keypair will be built for you, and the private key will be returned during the initial create call. Make sure to save this, as there is no way to get this private key again in the future.

Available until version 2.91
Available until version 2.91

400

Error

403

Error

409

Error

Show Keypair Details

Shows details for a keypair that is associated with the account.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Keypair object",
  "properties": {
    "keypair": {
      "type": "object",
      "description": "Keypair object",
      "properties": {
        "user_id": {
          "type": "string",
          "description": "The user_id for a keypair."
        },
        "deleted": {
          "type": "boolean",
          "description": "A boolean indicates whether this keypair is deleted or not.\nThe value is always `false` (not deleted)."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the resource was created. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "deleted_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "It is always `null`."
        },
        "updated_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "It is always `null`."
        },
        "id": {
          "type": "integer",
          "description": "The keypair ID."
        },
        "name": {
          "type": "string",
          "description": "The name for the keypair."
        },
        "public_key": {
          "type": "string",
          "description": "The keypair public key."
        },
        "fingerprint": {
          "type": "string",
          "description": "The fingerprint for the keypair."
        },
        "type": {
          "type": "string",
          "description": "The type of the keypair. Allowed values are `ssh` or `x509`.\n\n\n**New in version 2\\.2**",
          "x-openstack": {
            "min-ver": "2.2"
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

keypair

body

object

Keypair object

keypair.user_id

body

string

The user_id for a keypair.

keypair.deleted

body

boolean

A boolean indicates whether this keypair is deleted or not. The value is always false (not deleted).

keypair.created_at

body

string

The date and time when the resource was created. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

keypair.deleted_at

body

[‘string’, ‘null’]

It is always null.

keypair.updated_at

body

[‘string’, ‘null’]

It is always null.

keypair.id

body

integer

The keypair ID.

keypair.name

body

string

The name for the keypair.

keypair.public_key

body

string

The keypair public key.

keypair.fingerprint

body

string

The fingerprint for the keypair.

keypair.type

body

string

The type of the keypair. Allowed values are ssh or x509.

New in version 2.2
New in version 2.2

404

Error

Delete Keypair

Deletes a keypair.

Normal response codes: 202, 204

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

202

Ok

204

Ok

404

Error

os-migrations

List Migrations

Lists migrations.

Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Starting from microversion 2.59, the response is sorted by created_at and id in descending order.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "description": "List of migration objects",
  "properties": {
    "migrations": {
      "type": "array",
      "items": {
        "type": "object",
        "description": "Migration object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time when the resource was created. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time when the resource was updated. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
          },
          "dest_compute": {
            "type": "string",
            "description": "The target compute for a migration."
          },
          "dest_host": {
            "type": "string",
            "description": "The target host for a migration."
          },
          "dest_node": {
            "type": "string",
            "description": "The target node for a migration."
          },
          "id": {
            "type": "integer",
            "description": "The ID of the server migration."
          },
          "instance_uuid": {
            "type": "string",
            "format": "uuid",
            "description": "The UUID of the server."
          },
          "new_instance_type_id": {
            "type": "integer",
            "description": "In `resize` case, the flavor ID for resizing the server.\nIn the other cases, this parameter is same as the flavor ID\nof the server when the migration was started.\n\n\n\nNote\n\n\nThis is an internal ID and is not exposed in any other API.\nIn particular, this is not the ID specified or automatically generated\nduring flavor creation or returned via the `GET /flavors` API."
          },
          "old_instance_type_id": {
            "type": "integer",
            "description": "The flavor ID of the server when the migration was started.\n\n\n\nNote\n\n\nThis is an internal ID and is not exposed in any other API.\nIn particular, this is not the ID specified or automatically generated\nduring flavor creation or returned via the `GET /flavors` API."
          },
          "source_compute": {
            "type": "string",
            "description": "The source compute for a migration."
          },
          "source_node": {
            "type": "string",
            "description": "The source node for a migration."
          },
          "status": {
            "type": "string",
            "description": "The current status of the migration."
          },
          "project_id": {
            "type": [
              "string",
              "null"
            ],
            "description": "The ID of the project which initiated the server migration. The value\nmay be `null` for older migration records.\n\n\n**New in version 2\\.80**",
            "x-openstack": {
              "min-ver": "2.80"
            }
          },
          "user_id": {
            "type": [
              "string",
              "null"
            ],
            "description": "The ID of the user which initiated the server migration. The value\nmay be `null` for older migration records.\n\n\n**New in version 2\\.80**",
            "x-openstack": {
              "min-ver": "2.80"
            }
          },
          "migration_type": {
            "type": "string",
            "enum": [
              "live-migration",
              "migration",
              "resize"
            ],
            "description": "The type of the server migration. This is one of `live-migration`,\n`migration`, `resize` and `evacuation`.\n\n\n**New in version 2\\.23**",
            "x-openstack": {
              "min-ver": "2.23"
            }
          },
          "uuid": {
            "type": "string",
            "format": "uuid",
            "description": "The UUID of the migration.\n\n\n**New in version 2\\.59**",
            "x-openstack": {
              "min-ver": "2.59"
            }
          }
        }
      },
      "description": "The list of server migration objects."
    },
    "migrations_links": {
      "x-openstack": {
        "min-ver": "2.59"
      },
      "type": "array",
      "description": "Links pertaining to the migration.\nThis parameter is returned when paging and more data is available.\nSee [Paginated collections](https://docs.openstack.org/api-guide/compute/paginated_collections.html)\nfor more info.\n\n\n**New in version 2\\.59**",
      "items": {
        "type": "object",
        "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
        "properties": {
          "href": {
            "type": "string",
            "format": "uri"
          },
          "rel": {
            "type": "string"
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

migrations

body

array

The list of server migration objects.

migrations[].created_at

body

string

The date and time when the resource was created. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

migrations[].updated_at

body

string

The date and time when the resource was updated. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

migrations[].dest_compute

body

string

The target compute for a migration.

migrations[].dest_host

body

string

The target host for a migration.

migrations[].dest_node

body

string

The target node for a migration.

migrations[].id

body

integer

The ID of the server migration.

migrations[].instance_uuid

body

string

The UUID of the server.

migrations[].new_instance_type_id

body

integer

In resize case, the flavor ID for resizing the server. In the other cases, this parameter is same as the flavor ID of the server when the migration was started.

Note

This is an internal ID and is not exposed in any other API. In particular, this is not the ID specified or automatically generated during flavor creation or returned via the GET /flavors API.

migrations[].old_instance_type_id

body

integer

The flavor ID of the server when the migration was started.

Note

This is an internal ID and is not exposed in any other API. In particular, this is not the ID specified or automatically generated during flavor creation or returned via the GET /flavors API.

migrations[].source_compute

body

string

The source compute for a migration.

migrations[].source_node

body

string

The source node for a migration.

migrations[].status

body

string

The current status of the migration.

migrations[].project_id

body

[‘string’, ‘null’]

The ID of the project which initiated the server migration. The value may be null for older migration records.

New in version 2.80
New in version 2.80

migrations[].user_id

body

[‘string’, ‘null’]

The ID of the user which initiated the server migration. The value may be null for older migration records.

New in version 2.80
New in version 2.80

migrations[].migration_type

body

string

The type of the server migration. This is one of live-migration, migration, resize and evacuation.

New in version 2.23
New in version 2.23

migrations[].uuid

body

string

The UUID of the migration.

New in version 2.59
New in version 2.59

migrations_links

body

array

Links pertaining to the migration. This parameter is returned when paging and more data is available. See Paginated collections for more info.

New in version 2.59
New in version 2.59

migrations_links[].href

body

string

migrations_links[].rel

body

string

400

Error

os-networks

List Networks

Lists networks for the project.

Policy defaults enable all users to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-networks:get operation"
}

Create Network

Creates a network.

Policy defaults enable only users with the administrative role or the owner of the network to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), conflict(409), gone(410), notImplemented(501)

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-networks:post operation"
}
410

Error

Add Network

Adds a network to a project.

Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), gone(410), notImplemented(501)

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-networks/add:post operation"
}
410

Error

Show Network Details

Shows details for a network.

Policy defaults enable all users to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-networks/id:get operation"
}
404

Error

Delete Network

Deletes a network.

Policy defaults enable only users with the administrative role or the owner of the network to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), gone(410)

Responses

204

Ok

410

Error

`disassociate` action

Empty body for disassociate action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-networks/{id}/action API

disassociate

body

null

{
  "type": "object",
  "description": "Empty body for disassociate action",
  "properties": {
    "disassociate": {
      "type": "null"
    }
  },
  "x-openstack": {
    "action-name": "disassociate"
  }
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-networks/id/action:post:disassociate action",
  "x-openstack": {
    "action-name": "disassociate"
  }
}
410

Error

`disassociate_host` action

Empty body for disassociate_host action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-networks/{id}/action API

disassociate_host

body

null

{
  "type": "object",
  "description": "Empty body for disassociate_host action",
  "properties": {
    "disassociate_host": {
      "type": "null"
    }
  },
  "x-openstack": {
    "action-name": "disassociate_host"
  }
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-networks/id/action:post:disassociate_host action",
  "x-openstack": {
    "action-name": "disassociate_host"
  }
}
410

Error

`disassociate_project` action

Empty body for disassociate_project action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-networks/{id}/action API

disassociate_project

body

null

{
  "type": "object",
  "description": "Empty body for disassociate_project action",
  "properties": {
    "disassociate_project": {
      "type": "null"
    }
  },
  "x-openstack": {
    "action-name": "disassociate_project"
  }
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-networks/id/action:post:disassociate_project action",
  "x-openstack": {
    "action-name": "disassociate_project"
  }
}
410

Error

`associate_host` action

Empty body for associate_host action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-networks/{id}/action API

associate_host

body

null

{
  "type": "object",
  "description": "Empty body for associate_host action",
  "properties": {
    "associate_host": {
      "type": "null"
    }
  },
  "x-openstack": {
    "action-name": "associate_host"
  }
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-networks/id/action:post:associate_host action",
  "x-openstack": {
    "action-name": "associate_host"
  }
}
410

Error

quota-class-sets-os-quota-class-sets

Show, Create or Update the quotas for a Quota Class. Nova supports implicit ‘default’ Quota Class only.

Show the quota for Quota Class

Show the quota for the Quota Class.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "quota_class_set": {
      "type": "object",
      "description": "A `quota_class_set` object.",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the quota class.\nNova supports the `default` Quota Class only."
        },
        "instances": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "cores": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "ram": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "floating_ips": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "fixed_ips": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "metadata_items": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "key_pairs": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "security_groups": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "security_group_rules": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "injected_files": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "injected_file_content_bytes": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "injected_file_path_bytes": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "server_groups": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "server_group_members": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "networks": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        }
      }
    }
  }
}

Name

Location

Type

Description

quota_class_set

body

object

A quota_class_set object.

quota_class_set.id

body

string

The ID of the quota class. Nova supports the default Quota Class only.

quota_class_set.instances

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.cores

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.ram

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.floating_ips

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.fixed_ips

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.metadata_items

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.key_pairs

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.security_groups

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.security_group_rules

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.injected_files

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.injected_file_content_bytes

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.injected_file_path_bytes

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.server_groups

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.server_group_members

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.networks

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

Create or Update Quotas for Quota Class

Update the quotas for the Quota Class.

If the requested Quota Class is not found in the DB, then the API will create the one. Only ‘default’ quota class is valid and used to set the default quotas, all other quota class would not be used anywhere.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-quota-class-sets/{id} API

quota_class_set

body

object

A quota_class_set object.

quota_class_set.instances

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.cores

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.ram

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.floating_ips

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.fixed_ips

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.metadata_items

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.key_pairs

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.security_groups

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.security_group_rules

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.injected_files

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.injected_file_content_bytes

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.injected_file_path_bytes

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.server_groups

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.server_group_members

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_class_set.networks

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

{
  "type": "object",
  "properties": {
    "quota_class_set": {
      "type": "object",
      "description": "A `quota_class_set` object.",
      "properties": {
        "instances": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "cores": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "ram": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "floating_ips": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "fixed_ips": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "metadata_items": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "key_pairs": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "security_groups": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "security_group_rules": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "injected_files": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "injected_file_content_bytes": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "injected_file_path_bytes": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "server_groups": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "server_group_members": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "networks": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.49"
  },
  "required": [
    "quota_class_set"
  ]
}

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-quota-class-sets/id:put operation"
}
400

Error

quota-sets-os-quota-sets

Permits administrators, depending on policy settings, to view default quotas, view details for quotas, revert quotas to defaults, and update the quotas for a project or a project and user.

Show A Quota

Show the quota for a project or a project and a user.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "quota_set": {
      "type": "object",
      "description": "A `quota_set` object.",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the tenant/user the quotas listed for."
        },
        "instances": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "cores": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "ram": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "floating_ips": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "fixed_ips": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "metadata_items": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "key_pairs": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "security_groups": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "security_group_rules": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "injected_files": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "injected_file_content_bytes": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "injected_file_path_bytes": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "server_groups": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "server_group_members": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "networks": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        }
      }
    }
  }
}

Name

Location

Type

Description

quota_set

body

object

A quota_set object.

quota_set.id

body

string

The UUID of the tenant/user the quotas listed for.

quota_set.instances

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.cores

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.ram

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.floating_ips

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.fixed_ips

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.metadata_items

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.key_pairs

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.security_groups

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.security_group_rules

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.injected_files

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.injected_file_content_bytes

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.injected_file_path_bytes

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.server_groups

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.server_group_members

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.networks

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

400

Error

Update Quotas

Update the quotas for a project or a project and a user.

Users can force the update even if the quota has already been used and the reserved quota exceeds the new quota. To force the update, specify the "force": True attribute in the request body, the default value is false.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403)

Request

Name

Location

Type

Description

user_id

query

string

ID of user to set the quotas for.

id

path

string

id parameter for /v2.1/os-quota-sets/{id} API

quota_set

body

object

A quota_set object.

quota_set.instances

body

[‘integer’, ‘string’]

The number of allowed injected files for each tenant.

Available until version 2.56

quota_set.cores

body

[‘integer’, ‘string’]

The number of allowed injected files for each tenant.

Available until version 2.56

quota_set.ram

body

[‘integer’, ‘string’]

The number of allowed injected files for each tenant.

Available until version 2.56

quota_set.floating_ips

body

[‘integer’, ‘string’]

The number of allowed injected files for each tenant.

Available until version 2.56

quota_set.fixed_ips

body

[‘integer’, ‘string’]

The number of allowed injected files for each tenant.

Available until version 2.56

quota_set.metadata_items

body

[‘integer’, ‘string’]

The number of allowed injected files for each tenant.

Available until version 2.56

quota_set.key_pairs

body

[‘integer’, ‘string’]

The number of allowed injected files for each tenant.

Available until version 2.56

quota_set.security_groups

body

[‘integer’, ‘string’]

The number of allowed injected files for each tenant.

Available until version 2.56

quota_set.security_group_rules

body

[‘integer’, ‘string’]

The number of allowed injected files for each tenant.

Available until version 2.56

quota_set.injected_files

body

[‘integer’, ‘string’]

The number of allowed injected files for each tenant.

Available until version 2.56

quota_set.injected_file_content_bytes

body

[‘integer’, ‘string’]

The number of allowed injected files for each tenant.

Available until version 2.56

quota_set.injected_file_path_bytes

body

[‘integer’, ‘string’]

The number of allowed injected files for each tenant.

Available until version 2.56

quota_set.server_groups

body

[‘integer’, ‘string’]

The number of allowed injected files for each tenant.

Available until version 2.56

quota_set.server_group_members

body

[‘integer’, ‘string’]

The number of allowed injected files for each tenant.

Available until version 2.56

quota_set.networks

body

[‘integer’, ‘string’]

The number of allowed injected files for each tenant.

Available until version 2.56

quota_set.force

body

[‘boolean’, ‘string’]

You can force the update even if the quota has already been used and the reserved quota exceeds the new quota. To force the update, specify the "force": "True". Default is False.

{
  "type": "object",
  "properties": {
    "quota_set": {
      "type": "object",
      "description": "A `quota_set` object.",
      "properties": {
        "instances": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for each tenant.\n\n\n**Available until version 2\\.56**"
        },
        "cores": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for each tenant.\n\n\n**Available until version 2\\.56**"
        },
        "ram": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for each tenant.\n\n\n**Available until version 2\\.56**"
        },
        "floating_ips": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for each tenant.\n\n\n**Available until version 2\\.56**"
        },
        "fixed_ips": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for each tenant.\n\n\n**Available until version 2\\.56**"
        },
        "metadata_items": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for each tenant.\n\n\n**Available until version 2\\.56**"
        },
        "key_pairs": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for each tenant.\n\n\n**Available until version 2\\.56**"
        },
        "security_groups": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for each tenant.\n\n\n**Available until version 2\\.56**"
        },
        "security_group_rules": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for each tenant.\n\n\n**Available until version 2\\.56**"
        },
        "injected_files": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for each tenant.\n\n\n**Available until version 2\\.56**"
        },
        "injected_file_content_bytes": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for each tenant.\n\n\n**Available until version 2\\.56**"
        },
        "injected_file_path_bytes": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for each tenant.\n\n\n**Available until version 2\\.56**"
        },
        "server_groups": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for each tenant.\n\n\n**Available until version 2\\.56**"
        },
        "server_group_members": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for each tenant.\n\n\n**Available until version 2\\.56**"
        },
        "networks": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for each tenant.\n\n\n**Available until version 2\\.56**"
        },
        "force": {
          "type": [
            "boolean",
            "string"
          ],
          "enum": [
            true,
            "True",
            "TRUE",
            "true",
            "1",
            "ON",
            "On",
            "on",
            "YES",
            "Yes",
            "yes",
            false,
            "False",
            "FALSE",
            "false",
            "0",
            "OFF",
            "Off",
            "off",
            "NO",
            "No",
            "no"
          ],
          "description": "You can force the update even if the quota has already been used and the reserved\nquota exceeds the new quota. To force the update, specify the `\"force\": \"True\"`.\nDefault is `False`."
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.35"
  },
  "required": [
    "quota_set"
  ]
}

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "quota_set": {
      "type": "object",
      "description": "A `quota_set` object.",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the tenant/user the quotas listed for."
        },
        "instances": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "cores": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "ram": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "floating_ips": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "fixed_ips": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "metadata_items": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "key_pairs": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "security_groups": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "security_group_rules": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "injected_files": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "injected_file_content_bytes": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "injected_file_path_bytes": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "server_groups": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "server_group_members": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "networks": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        }
      }
    }
  }
}

Name

Location

Type

Description

quota_set

body

object

A quota_set object.

quota_set.id

body

string

The UUID of the tenant/user the quotas listed for.

quota_set.instances

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.cores

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.ram

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.floating_ips

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.fixed_ips

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.metadata_items

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.key_pairs

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.security_groups

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.security_group_rules

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.injected_files

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.injected_file_content_bytes

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.injected_file_path_bytes

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.server_groups

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.server_group_members

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.networks

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

400

Error

Revert Quotas To Defaults

Reverts the quotas to default values for a project or a project and a user.

To revert quotas for a project and a user, specify the user_id query parameter.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403)

Responses

202

Ok

Show The Detail of Quota

Show the detail of quota for a project or a project and a user.

To show a quota for a project and a user, specify the user_id query parameter.

Normal response codes: 200

Error response codes: badrequest(400), unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "quota_set": {
      "type": "object",
      "description": "A `quota_set` object.",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the tenant/user the quotas listed for."
        },
        "instances": {
          "type": "object",
          "description": "The object of detailed servers quota, including in_use, limit and\nreserved number of instances.",
          "properties": {
            "in_use": {
              "type": "integer"
            },
            "limit": {
              "type": "integer"
            },
            "reserved": {
              "type": "integer"
            }
          }
        },
        "cores": {
          "type": "object",
          "description": "The object of detailed cores quota, including in_use, limit and\nreserved number of cores.",
          "properties": {
            "in_use": {
              "type": "integer"
            },
            "limit": {
              "type": "integer"
            },
            "reserved": {
              "type": "integer"
            }
          }
        },
        "ram": {
          "type": "object",
          "description": "The object of detailed key ram quota, including in_use,\nlimit and reserved number of ram.",
          "properties": {
            "in_use": {
              "type": "integer"
            },
            "limit": {
              "type": "integer"
            },
            "reserved": {
              "type": "integer"
            }
          }
        },
        "floating_ips": {
          "type": "object",
          "description": "The object of detailed floating ips quota, including in_use, limit and\nreserved number of floating ips.\n\n\n**Available until version 2\\.35**",
          "properties": {
            "in_use": {
              "type": "integer"
            },
            "limit": {
              "type": "integer"
            },
            "reserved": {
              "type": "integer"
            }
          },
          "x-openstack": {
            "max-ver": "2.35"
          }
        },
        "fixed_ips": {
          "type": "object",
          "description": "The object of detailed fixed ips quota, including in_use, limit and\nreserved number of fixed ips.\n\n\n**Available until version 2\\.35**",
          "properties": {
            "in_use": {
              "type": "integer"
            },
            "limit": {
              "type": "integer"
            },
            "reserved": {
              "type": "integer"
            }
          },
          "x-openstack": {
            "max-ver": "2.35"
          }
        },
        "metadata_items": {
          "type": "object",
          "description": "The object of detailed key metadata items quota, including in_use,\nlimit and reserved number of metadata items.",
          "properties": {
            "in_use": {
              "type": "integer"
            },
            "limit": {
              "type": "integer"
            },
            "reserved": {
              "type": "integer"
            }
          }
        },
        "key_pairs": {
          "type": "object",
          "description": "The object of detailed key pairs quota, including in_use, limit and\nreserved number of key pairs.\n\n\n\nNote\n\n\n`in_use` field value for keypair quota details is always\nzero. In Nova, key_pairs are a user\\-level resource, not a project\\-\nlevel resource, so for legacy reasons, the keypair in\\-use information\nis not counted.",
          "properties": {
            "in_use": {
              "type": "integer"
            },
            "limit": {
              "type": "integer"
            },
            "reserved": {
              "type": "integer"
            }
          }
        },
        "security_groups": {
          "type": "object",
          "description": "The object of detailed security groups, including in_use,\nlimit and reserved number of security groups.\n\n\n**Available until version 2\\.35**",
          "properties": {
            "in_use": {
              "type": "integer"
            },
            "limit": {
              "type": "integer"
            },
            "reserved": {
              "type": "integer"
            }
          },
          "x-openstack": {
            "max-ver": "2.35"
          }
        },
        "security_group_rules": {
          "type": "object",
          "description": "The object of detailed security group rules quota, including in_use,\nlimit and reserved number of security group rules.\n\n\n**Available until version 2\\.35**",
          "properties": {
            "in_use": {
              "type": "integer"
            },
            "limit": {
              "type": "integer"
            },
            "reserved": {
              "type": "integer"
            }
          },
          "x-openstack": {
            "max-ver": "2.35"
          }
        },
        "injected_files": {
          "type": "object",
          "description": "The object of detailed injected files quota, including in_use, limit and\nreserved number of injected files.\n\n\n**Available until version 2\\.56**",
          "properties": {
            "in_use": {
              "type": "integer"
            },
            "limit": {
              "type": "integer"
            },
            "reserved": {
              "type": "integer"
            }
          },
          "x-openstack": {
            "max-ver": "2.56"
          }
        },
        "injected_files_content_bytes": {
          "type": "object",
          "description": "The object of detailed injected file content bytes quota, including in_use, limit and reserved number of injected file content bytes.",
          "properties": {
            "in_use": {
              "type": "integer"
            },
            "limit": {
              "type": "integer"
            },
            "reserved": {
              "type": "integer"
            }
          },
          "x-openstack": {
            "max-ver": "2.56"
          }
        },
        "injected_files_path_bytes": {
          "type": "object",
          "description": "The object of detailed injected file path bytes quota, including in_use, limit and reserved number of injected file path bytes.",
          "properties": {
            "in_use": {
              "type": "integer"
            },
            "limit": {
              "type": "integer"
            },
            "reserved": {
              "type": "integer"
            }
          },
          "x-openstack": {
            "max-ver": "2.56"
          }
        },
        "server_groups": {
          "type": "object",
          "description": "The object of detailed server groups, including in_use,\nlimit and reserved number of server groups.",
          "properties": {
            "in_use": {
              "type": "integer"
            },
            "limit": {
              "type": "integer"
            },
            "reserved": {
              "type": "integer"
            }
          }
        },
        "server_group_members": {
          "type": "object",
          "description": "The object of detailed server group members, including in_use,\nlimit and reserved number of server group members.",
          "properties": {
            "in_use": {
              "type": "integer"
            },
            "limit": {
              "type": "integer"
            },
            "reserved": {
              "type": "integer"
            }
          }
        },
        "networks": {
          "type": "object",
          "description": "The number of private networks that can be created per project.\n\n\n**Available until version 2\\.35**",
          "properties": {
            "in_use": {
              "type": "integer"
            },
            "limit": {
              "type": "integer"
            },
            "reserved": {
              "type": "integer"
            }
          },
          "x-openstack": {
            "max-ver": "2.35"
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

quota_set

body

object

A quota_set object.

quota_set.id

body

string

The UUID of the tenant/user the quotas listed for.

quota_set.instances

body

object

The object of detailed servers quota, including in_use, limit and reserved number of instances.

quota_set.instances.in_use

body

integer

quota_set.instances.limit

body

integer

quota_set.instances.reserved

body

integer

quota_set.cores

body

object

The object of detailed cores quota, including in_use, limit and reserved number of cores.

quota_set.cores.in_use

body

integer

quota_set.cores.limit

body

integer

quota_set.cores.reserved

body

integer

quota_set.ram

body

object

The object of detailed key ram quota, including in_use, limit and reserved number of ram.

quota_set.ram.in_use

body

integer

quota_set.ram.limit

body

integer

quota_set.ram.reserved

body

integer

quota_set.floating_ips

body

object

The object of detailed floating ips quota, including in_use, limit and reserved number of floating ips.

Available until version 2.35
Available until version 2.35

quota_set.floating_ips.in_use

body

integer

quota_set.floating_ips.limit

body

integer

quota_set.floating_ips.reserved

body

integer

quota_set.fixed_ips

body

object

The object of detailed fixed ips quota, including in_use, limit and reserved number of fixed ips.

Available until version 2.35
Available until version 2.35

quota_set.fixed_ips.in_use

body

integer

quota_set.fixed_ips.limit

body

integer

quota_set.fixed_ips.reserved

body

integer

quota_set.metadata_items

body

object

The object of detailed key metadata items quota, including in_use, limit and reserved number of metadata items.

quota_set.metadata_items.in_use

body

integer

quota_set.metadata_items.limit

body

integer

quota_set.metadata_items.reserved

body

integer

quota_set.key_pairs

body

object

The object of detailed key pairs quota, including in_use, limit and reserved number of key pairs.

Note

in_use field value for keypair quota details is always zero. In Nova, key_pairs are a user-level resource, not a project- level resource, so for legacy reasons, the keypair in-use information is not counted.

quota_set.key_pairs.in_use

body

integer

quota_set.key_pairs.limit

body

integer

quota_set.key_pairs.reserved

body

integer

quota_set.security_groups

body

object

The object of detailed security groups, including in_use, limit and reserved number of security groups.

Available until version 2.35
Available until version 2.35

quota_set.security_groups.in_use

body

integer

quota_set.security_groups.limit

body

integer

quota_set.security_groups.reserved

body

integer

quota_set.security_group_rules

body

object

The object of detailed security group rules quota, including in_use, limit and reserved number of security group rules.

Available until version 2.35
Available until version 2.35

quota_set.security_group_rules.in_use

body

integer

quota_set.security_group_rules.limit

body

integer

quota_set.security_group_rules.reserved

body

integer

quota_set.injected_files

body

object

The object of detailed injected files quota, including in_use, limit and reserved number of injected files.

Available until version 2.56
Available until version 2.56

quota_set.injected_files.in_use

body

integer

quota_set.injected_files.limit

body

integer

quota_set.injected_files.reserved

body

integer

quota_set.injected_files_content_bytes

body

object

The object of detailed injected file content bytes quota, including in_use, limit and reserved number of injected file content bytes.
Available until version 2.56

quota_set.injected_files_content_bytes.in_use

body

integer

quota_set.injected_files_content_bytes.limit

body

integer

quota_set.injected_files_content_bytes.reserved

body

integer

quota_set.injected_files_path_bytes

body

object

The object of detailed injected file path bytes quota, including in_use, limit and reserved number of injected file path bytes.
Available until version 2.56

quota_set.injected_files_path_bytes.in_use

body

integer

quota_set.injected_files_path_bytes.limit

body

integer

quota_set.injected_files_path_bytes.reserved

body

integer

quota_set.server_groups

body

object

The object of detailed server groups, including in_use, limit and reserved number of server groups.

quota_set.server_groups.in_use

body

integer

quota_set.server_groups.limit

body

integer

quota_set.server_groups.reserved

body

integer

quota_set.server_group_members

body

object

The object of detailed server group members, including in_use, limit and reserved number of server group members.

quota_set.server_group_members.in_use

body

integer

quota_set.server_group_members.limit

body

integer

quota_set.server_group_members.reserved

body

integer

quota_set.networks

body

object

The number of private networks that can be created per project.

Available until version 2.35
Available until version 2.35

quota_set.networks.in_use

body

integer

quota_set.networks.limit

body

integer

quota_set.networks.reserved

body

integer

400

Error

List Default Quotas For Tenant

Lists the default quotas for a project.

Normal response codes: 200

Error response codes: badrequest(400), unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "quota_set": {
      "type": "object",
      "description": "A `quota_set` object.",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the tenant/user the quotas listed for."
        },
        "instances": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "cores": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "ram": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "floating_ips": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "fixed_ips": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "metadata_items": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "key_pairs": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "security_groups": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "security_group_rules": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "injected_files": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "injected_file_content_bytes": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "injected_file_path_bytes": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "server_groups": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "server_group_members": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        },
        "networks": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "maximum": 2147483647,
          "description": "The number of allowed injected files for the quota class.\n\n\n**Available until version 2\\.56**"
        }
      }
    }
  }
}

Name

Location

Type

Description

quota_set

body

object

A quota_set object.

quota_set.id

body

string

The UUID of the tenant/user the quotas listed for.

quota_set.instances

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.cores

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.ram

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.floating_ips

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.fixed_ips

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.metadata_items

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.key_pairs

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.security_groups

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.security_group_rules

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.injected_files

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.injected_file_content_bytes

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.injected_file_path_bytes

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.server_groups

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.server_group_members

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

quota_set.networks

body

[‘integer’, ‘string’]

The number of allowed injected files for the quota class.

Available until version 2.56

400

Error

os-security-group-default-rules

List Default Security Group Rules

Lists default security group rules.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), gone(410), notImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-security-group-default-rules:get operation"
}
410

Error

Create Default Security Group Rule

Creates a default security group rule.

If you specify a source port ( from_port ) or destination port ( to_port ) value, you must specify an IP protocol ( ip_protocol ) value. Otherwise, the operation returns the Bad Request (400) response code.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), conflict(409), gone(410), notImplemented(501)

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-security-group-default-rules:post operation"
}
410

Error

Show Default Security Group Rule Details

Shows details for a security group rule.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), gone(410), notImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-security-group-default-rules/id:get operation"
}
410

Error

Delete Default Security Group Rule

Deletes a security group rule.

Normal response codes: 204

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), gone(410), notImplemented(501)

Responses

204

Ok

410

Error

os-security-group-rules

Create Security Group Rule

Creates a rule for a security group. Either cidr or group_id must be specified when creating a rule.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403)

Request

Name

Location

Type

Description

security_group_rule

body

object

A security_group_rule object.

security_group_rule.parent_group_id

body

string

Security group ID.

{
  "type": "object",
  "properties": {
    "security_group_rule": {
      "type": "object",
      "description": "A `security_group_rule` object.",
      "properties": {
        "group_id": {
          "oneOf": [
            {
              "type": "null"
            },
            {
              "type": "string",
              "format": "uuid"
            }
          ],
          "description": "The source security group ID."
        },
        "parent_group_id": {
          "type": "string",
          "format": "uuid",
          "description": "Security group ID."
        },
        "to_port": {},
        "from_port": {},
        "ip_protocol": {},
        "cidr": {}
      },
      "additionalProperties": true,
      "required": [
        "parent_group_id"
      ]
    }
  },
  "additionalProperties": true,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.35"
  },
  "required": [
    "security_group_rule"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-security-group-rules:post operation"
}
400

Error

403

Error

404

Error

Delete Security Group Rule

Deletes a security group rule.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Responses

202

Ok

400

Error

404

Error

409

Error

os-security-groups

List Security Groups

Lists security groups.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-security-groups:get operation"
}
404

Error

Create Security Group

Creates a security group.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403)

Request

Name

Location

Type

Description

security_group

body

object

Specify the security_group action in the request body.

security_group.name

body

string

The security group name.

security_group.description

body

string

Security group description.

{
  "type": "object",
  "properties": {
    "security_group": {
      "type": "object",
      "description": "Specify the `security_group` action in the request body.",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 0,
          "maxLength": 255,
          "description": "The security group name."
        },
        "description": {
          "type": "string",
          "minLength": 0,
          "maxLength": 255,
          "description": "Security group description."
        }
      },
      "additionalProperties": true,
      "required": [
        "name",
        "description"
      ]
    }
  },
  "additionalProperties": true,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.35"
  },
  "required": [
    "security_group"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-security-groups:post operation"
}
400

Error

403

Error

Show Security Group Details

Shows details for a security group.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-security-groups/id:get operation"
}
400

Error

404

Error

Update Security Group

Updates a security group.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-security-groups/{id} API

security_group

body

object

security_group.name

body

string

The security group name.

security_group.description

body

string

Security group description.

{
  "type": "object",
  "properties": {
    "security_group": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 0,
          "maxLength": 255,
          "description": "The security group name."
        },
        "description": {
          "type": "string",
          "minLength": 0,
          "maxLength": 255,
          "description": "Security group description."
        }
      },
      "additionalProperties": true,
      "required": [
        "name",
        "description"
      ]
    }
  },
  "additionalProperties": true,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.35"
  },
  "required": [
    "security_group"
  ]
}

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-security-groups/id:put operation"
}
400

Error

404

Error

Delete Security Group

Deletes a security group.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Responses

202

Ok

400

Error

404

Error

os-server-external-events

Run Events

Creates one or more external events, which the API dispatches to the host a server is assigned to. If the server is not currently assigned to a host the event will not be delivered.

You will receive back the list of events that you submitted, with an updated code and status indicating their level of success.

Normal response codes: 200, 207

A 200 will be returned if all events succeeded, 207 will be returned if any events could not be processed. The code attribute for the event will explain further what went wrong.

Error response codes: badRequest(400), unauthorized(401), forbidden(403)

Request

Name

Location

Type

Description

events

body

array

List of external events to process.

events[].server_uuid

body

string

The UUID of the server instance to which the API dispatches the event. You must assign this instance to a host. Otherwise, this call does not dispatch the event to the instance.

events[].name

body

string

The event name. A valid value is:

  • network-changed

  • network-vif-plugged

  • network-vif-unplugged

  • network-vif-deleted

  • volume-extended (since microversion 2.51)

  • power-update (since microversion 2.76)

  • accelerator-request-bound (since microversion 2.82)

events[].status

body

string

The event status. A valid value is failed, completed, or in-progress. Default is completed.

events[].tag

body

string

A string value that identifies the event. Certain types of events require specific tags:

  • For the accelerator-request-bound event, the tag must be the accelerator request UUID.

  • For the power-update event the tag must be either be POWER_ON or POWER_OFF.

  • For the volume-extended event the tag must be the volume id.

events

body

array

List of external events to process.

events

body

array

List of external events to process.

events

body

array

List of external events to process.

events

body

array

List of external events to process.

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "events": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "object",
            "properties": {
              "server_uuid": {
                "type": "string",
                "format": "uuid",
                "description": "The UUID of the server instance to which the API dispatches the event. You must\nassign this instance to a host. Otherwise, this call does not dispatch the event\nto the instance."
              },
              "name": {
                "type": "string",
                "enum": [
                  "network-changed",
                  "network-vif-plugged",
                  "network-vif-unplugged",
                  "network-vif-deleted"
                ],
                "description": "The event name. A valid value is:\n\n\n* `network-changed`\n* `network-vif-plugged`\n* `network-vif-unplugged`\n* `network-vif-deleted`\n* `volume-extended` (since microversion `2.51`)\n* `power-update` (since microversion `2.76`)\n* `accelerator-request-bound` (since microversion `2.82`)"
              },
              "status": {
                "type": "string",
                "enum": [
                  "failed",
                  "completed",
                  "in-progress"
                ],
                "description": "The event status. A valid value is `failed`, `completed`, or `in-progress`.\nDefault is `completed`."
              },
              "tag": {
                "type": "string",
                "maxLength": 255,
                "description": "A string value that identifies the event. Certain types of events require\nspecific tags:\n\n\n* For the `accelerator-request-bound` event, the tag must be\nthe accelerator request UUID.\n* For the `power-update` event the tag must be either be `POWER_ON`\nor `POWER_OFF`.\n* For the `volume-extended` event the tag must be the volume id."
              }
            },
            "required": [
              "server_uuid",
              "name"
            ],
            "additionalProperties": false
          },
          "description": "List of external events to process."
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.50"
      },
      "required": [
        "events"
      ]
    },
    {
      "type": "object",
      "properties": {
        "events": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "object",
            "properties": {
              "server_uuid": {
                "type": "string",
                "format": "uuid",
                "description": "The UUID of the server instance to which the API dispatches the event. You must\nassign this instance to a host. Otherwise, this call does not dispatch the event\nto the instance."
              },
              "name": {
                "type": "string",
                "enum": [
                  "network-changed",
                  "network-vif-plugged",
                  "network-vif-unplugged",
                  "network-vif-deleted",
                  "volume-extended"
                ],
                "description": "The event name. A valid value is:\n\n\n* `network-changed`\n* `network-vif-plugged`\n* `network-vif-unplugged`\n* `network-vif-deleted`\n* `volume-extended` (since microversion `2.51`)\n* `power-update` (since microversion `2.76`)\n* `accelerator-request-bound` (since microversion `2.82`)"
              },
              "status": {
                "type": "string",
                "enum": [
                  "failed",
                  "completed",
                  "in-progress"
                ],
                "description": "The event status. A valid value is `failed`, `completed`, or `in-progress`.\nDefault is `completed`."
              },
              "tag": {
                "type": "string",
                "maxLength": 255,
                "description": "A string value that identifies the event. Certain types of events require\nspecific tags:\n\n\n* For the `accelerator-request-bound` event, the tag must be\nthe accelerator request UUID.\n* For the `power-update` event the tag must be either be `POWER_ON`\nor `POWER_OFF`.\n* For the `volume-extended` event the tag must be the volume id."
              }
            },
            "required": [
              "server_uuid",
              "name"
            ],
            "additionalProperties": false
          },
          "description": "List of external events to process."
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.51",
        "max-ver": "2.75"
      },
      "required": [
        "events"
      ]
    },
    {
      "type": "object",
      "properties": {
        "events": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "object",
            "properties": {
              "server_uuid": {
                "type": "string",
                "format": "uuid",
                "description": "The UUID of the server instance to which the API dispatches the event. You must\nassign this instance to a host. Otherwise, this call does not dispatch the event\nto the instance."
              },
              "name": {
                "type": "string",
                "enum": [
                  "network-changed",
                  "network-vif-plugged",
                  "network-vif-unplugged",
                  "network-vif-deleted",
                  "volume-extended",
                  "power-update"
                ],
                "description": "The event name. A valid value is:\n\n\n* `network-changed`\n* `network-vif-plugged`\n* `network-vif-unplugged`\n* `network-vif-deleted`\n* `volume-extended` (since microversion `2.51`)\n* `power-update` (since microversion `2.76`)\n* `accelerator-request-bound` (since microversion `2.82`)"
              },
              "status": {
                "type": "string",
                "enum": [
                  "failed",
                  "completed",
                  "in-progress"
                ],
                "description": "The event status. A valid value is `failed`, `completed`, or `in-progress`.\nDefault is `completed`."
              },
              "tag": {
                "type": "string",
                "maxLength": 255,
                "description": "A string value that identifies the event. Certain types of events require\nspecific tags:\n\n\n* For the `accelerator-request-bound` event, the tag must be\nthe accelerator request UUID.\n* For the `power-update` event the tag must be either be `POWER_ON`\nor `POWER_OFF`.\n* For the `volume-extended` event the tag must be the volume id."
              }
            },
            "required": [
              "server_uuid",
              "name"
            ],
            "additionalProperties": false
          },
          "description": "List of external events to process."
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.76",
        "max-ver": "2.81"
      },
      "required": [
        "events"
      ]
    },
    {
      "type": "object",
      "properties": {
        "events": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "object",
            "properties": {
              "server_uuid": {
                "type": "string",
                "format": "uuid",
                "description": "The UUID of the server instance to which the API dispatches the event. You must\nassign this instance to a host. Otherwise, this call does not dispatch the event\nto the instance."
              },
              "name": {
                "type": "string",
                "enum": [
                  "network-changed",
                  "network-vif-plugged",
                  "network-vif-unplugged",
                  "network-vif-deleted",
                  "volume-extended",
                  "power-update",
                  "accelerator-request-bound"
                ],
                "description": "The event name. A valid value is:\n\n\n* `network-changed`\n* `network-vif-plugged`\n* `network-vif-unplugged`\n* `network-vif-deleted`\n* `volume-extended` (since microversion `2.51`)\n* `power-update` (since microversion `2.76`)\n* `accelerator-request-bound` (since microversion `2.82`)"
              },
              "status": {
                "type": "string",
                "enum": [
                  "failed",
                  "completed",
                  "in-progress"
                ],
                "description": "The event status. A valid value is `failed`, `completed`, or `in-progress`.\nDefault is `completed`."
              },
              "tag": {
                "type": "string",
                "maxLength": 255,
                "description": "A string value that identifies the event. Certain types of events require\nspecific tags:\n\n\n* For the `accelerator-request-bound` event, the tag must be\nthe accelerator request UUID.\n* For the `power-update` event the tag must be either be `POWER_ON`\nor `POWER_OFF`.\n* For the `volume-extended` event the tag must be the volume id."
              }
            },
            "required": [
              "server_uuid",
              "name"
            ],
            "additionalProperties": false
          },
          "description": "List of external events to process."
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.82",
        "max-ver": "2.92"
      },
      "required": [
        "events"
      ]
    },
    {
      "type": "object",
      "properties": {
        "events": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "object",
            "properties": {
              "server_uuid": {
                "type": "string",
                "format": "uuid",
                "description": "The UUID of the server instance to which the API dispatches the event. You must\nassign this instance to a host. Otherwise, this call does not dispatch the event\nto the instance."
              },
              "name": {
                "type": "string",
                "enum": [
                  "network-changed",
                  "network-vif-plugged",
                  "network-vif-unplugged",
                  "network-vif-deleted",
                  "volume-extended",
                  "power-update",
                  "accelerator-request-bound",
                  "volume-reimaged"
                ],
                "description": "The event name. A valid value is:\n\n\n* `network-changed`\n* `network-vif-plugged`\n* `network-vif-unplugged`\n* `network-vif-deleted`\n* `volume-extended` (since microversion `2.51`)\n* `power-update` (since microversion `2.76`)\n* `accelerator-request-bound` (since microversion `2.82`)"
              },
              "status": {
                "type": "string",
                "enum": [
                  "failed",
                  "completed",
                  "in-progress"
                ],
                "description": "The event status. A valid value is `failed`, `completed`, or `in-progress`.\nDefault is `completed`."
              },
              "tag": {
                "type": "string",
                "maxLength": 255,
                "description": "A string value that identifies the event. Certain types of events require\nspecific tags:\n\n\n* For the `accelerator-request-bound` event, the tag must be\nthe accelerator request UUID.\n* For the `power-update` event the tag must be either be `POWER_ON`\nor `POWER_OFF`.\n* For the `volume-extended` event the tag must be the volume id."
              }
            },
            "required": [
              "server_uuid",
              "name"
            ],
            "additionalProperties": false
          },
          "description": "List of external events to process."
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.93"
      },
      "required": [
        "events"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion"
  }
}

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "events": {
      "description": "List of external events to process.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "network-changed",
              "network-vif-plugged",
              "network-vif-unplugged",
              "network-vif-deleted",
              "volume-extended",
              "power-update",
              "accelerator-request-bound"
            ],
            "description": "The event name. A valid value is:\n\n\n* `network-changed`\n* `network-vif-plugged`\n* `network-vif-unplugged`\n* `network-vif-deleted`\n* `volume-extended` (since microversion `2.51`)\n* `power-update` (since microversion `2.76`)\n* `accelerator-request-bound` (since microversion `2.82`)"
          },
          "server_uuid": {
            "type": "string",
            "format": "uuid",
            "description": "The UUID of the server instance to which the API dispatches the event. You must\nassign this instance to a host. Otherwise, this call does not dispatch the event\nto the instance."
          },
          "status": {
            "type": "string",
            "enum": [
              "failed",
              "completed",
              "in-progress"
            ],
            "description": "The event status. A valid value is `failed`, `completed`, or `in-progress`.\nDefault is `completed`."
          },
          "tag": {
            "type": "string",
            "description": "A string value that identifies the event. Certain types of events require\nspecific tags:\n\n\n* For the `accelerator-request-bound` event, the tag must be\nthe accelerator request UUID.\n* For the `power-update` event the tag must be either be `POWER_ON`\nor `POWER_OFF`.\n* For the `volume-extended` event the tag must be the volume id."
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

events

body

array

List of external events to process.

events[].name

body

string

The event name. A valid value is:

  • network-changed

  • network-vif-plugged

  • network-vif-unplugged

  • network-vif-deleted

  • volume-extended (since microversion 2.51)

  • power-update (since microversion 2.76)

  • accelerator-request-bound (since microversion 2.82)

events[].server_uuid

body

string

The UUID of the server instance to which the API dispatches the event. You must assign this instance to a host. Otherwise, this call does not dispatch the event to the instance.

events[].status

body

string

The event status. A valid value is failed, completed, or in-progress. Default is completed.

events[].tag

body

string

A string value that identifies the event. Certain types of events require specific tags:

  • For the accelerator-request-bound event, the tag must be the accelerator request UUID.

  • For the power-update event the tag must be either be POWER_ON or POWER_OFF.

  • For the volume-extended event the tag must be the volume id.

403

Error

os-server-groups

List Server Groups

Lists all server groups for the tenant.

Administrative users can use the all_projects query parameter to list all server groups for all projects.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "server_groups": {
      "description": "The list of existing server groups.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "The UUID of the server group.",
            "readOnly": true
          },
          "members": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of members in the server group."
          },
          "metadata": {
            "description": "Metadata key and value pairs. The maximum size for each metadata key and value\npair is 255 bytes. It\u2019s always empty and only used for keeping compatibility.\n\n\n**Available until version 2\\.63**",
            "x-openstack": {
              "max-ver": "2.63"
            },
            "type": "object",
            "patternProperties": {
              "^[a-zA-Z0-9-_:. ]{1,255}$": {
                "type": "string",
                "maxLength": 255
              }
            },
            "additionalProperties": false
          },
          "name": {
            "type": "string",
            "description": "The name of the server group."
          },
          "policies": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "anti-affinity",
                "affinity",
                "soft-anti-affinity",
                "soft-affinity"
              ]
            },
            "description": "A list of exactly one policy name to associate with the server group. The\ncurrent valid policy names are:\n\n\n* `anti-affinity` \\- servers in this group must be scheduled to\ndifferent hosts.\n* `affinity` \\- servers in this group must be scheduled to the same host.\n* `soft-anti-affinity` \\- servers in this group should be scheduled to\ndifferent hosts if possible, but if not possible then they should still\nbe scheduled instead of resulting in a build failure. This policy was\nadded in microversion 2\\.15\\.\n* `soft-affinity` \\- servers in this group should be scheduled to the same\nhost if possible, but if not possible then they should still be scheduled\ninstead of resulting in a build failure. This policy was added in\nmicroversion 2\\.15\\.\n\n\n**Available until version 2\\.63**",
            "maxItems": 1,
            "x-openstack": {
              "max-ver": "2.63"
            }
          },
          "policy": {
            "type": "string",
            "description": "The `policy` field represents the name of the policy. The current\nvalid policy names are:\n\n\n* `anti-affinity` \\- servers in this group must be scheduled to\ndifferent hosts.\n* `affinity` \\- servers in this group must be scheduled to the same host.\n* `soft-anti-affinity` \\- servers in this group should be scheduled to\ndifferent hosts if possible, but if not possible then they should still\nbe scheduled instead of resulting in a build failure.\n* `soft-affinity` \\- servers in this group should be scheduled to the same\nhost if possible, but if not possible then they should still be scheduled\ninstead of resulting in a build failure.\n\n\n**New in version 2\\.64**",
            "enum": [
              "anti-affinity",
              "affinity",
              "soft-anti-affinity",
              "soft-affinity"
            ],
            "x-openstack": {
              "min-ver": "2.64"
            }
          },
          "project_id": {
            "type": "string",
            "description": "The project ID who owns the server group.\n\n\n**New in version 2\\.13**",
            "x-openstack": {
              "min-ver": "2.13"
            }
          },
          "rules": {
            "type": "object",
            "description": "The `rules` field, which is a dict, can be applied to the policy.\nCurrently, only the `max_server_per_host` rule is supported for the\n`anti-affinity` policy. The `max_server_per_host` rule allows\nspecifying how many members of the anti\\-affinity group can reside on the\nsame compute host. If not specified, only one member from the same\nanti\\-affinity group can reside on a given host.\n\n\n**New in version 2\\.64**",
            "properties": {
              "max_server_per_host": {
                "type": [
                  "integer",
                  "string"
                ],
                "pattern": "^[0-9]*$",
                "minimum": 1,
                "minLength": 1
              }
            },
            "additionalProperties": false,
            "x-openstack": {
              "min-ver": "2.64"
            }
          },
          "user_id": {
            "type": "string",
            "description": "The user ID who owns the server group.\n\n\n**New in version 2\\.13**",
            "x-openstack": {
              "min-ver": "2.13"
            }
          }
        },
        "description": "The server group object."
      }
    }
  }
}

Name

Location

Type

Description

server_groups

body

array

The list of existing server groups.

server_groups[].id

body

string

The UUID of the server group.

server_groups[].members

body

array

A list of members in the server group.

server_groups[].metadata

body

object

Metadata key and value pairs. The maximum size for each metadata key and value pair is 255 bytes. It’s always empty and only used for keeping compatibility.

Available until version 2.63
Available until version 2.63

server_groups[].name

body

string

The name of the server group.

server_groups[].policies

body

array

A list of exactly one policy name to associate with the server group. The current valid policy names are:

  • anti-affinity - servers in this group must be scheduled to different hosts.

  • affinity - servers in this group must be scheduled to the same host.

  • soft-anti-affinity - servers in this group should be scheduled to different hosts if possible, but if not possible then they should still be scheduled instead of resulting in a build failure. This policy was added in microversion 2.15.

  • soft-affinity - servers in this group should be scheduled to the same host if possible, but if not possible then they should still be scheduled instead of resulting in a build failure. This policy was added in microversion 2.15.

Available until version 2.63
Available until version 2.63

server_groups[].policy

body

string

The policy field represents the name of the policy. The current valid policy names are:

  • anti-affinity - servers in this group must be scheduled to different hosts.

  • affinity - servers in this group must be scheduled to the same host.

  • soft-anti-affinity - servers in this group should be scheduled to different hosts if possible, but if not possible then they should still be scheduled instead of resulting in a build failure.

  • soft-affinity - servers in this group should be scheduled to the same host if possible, but if not possible then they should still be scheduled instead of resulting in a build failure.

New in version 2.64
New in version 2.64

server_groups[].project_id

body

string

The project ID who owns the server group.

New in version 2.13
New in version 2.13

server_groups[].rules

body

object

The rules field, which is a dict, can be applied to the policy. Currently, only the max_server_per_host rule is supported for the anti-affinity policy. The max_server_per_host rule allows specifying how many members of the anti-affinity group can reside on the same compute host. If not specified, only one member from the same anti-affinity group can reside on a given host.

New in version 2.64
New in version 2.64

server_groups[].rules.max_server_per_host

body

[‘integer’, ‘string’]

server_groups[].user_id

body

string

The user ID who owns the server group.

New in version 2.13
New in version 2.13

Create Server Group

Creates a server group.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), conflict(409)

Request

Name

Location

Type

Description

server_group

body

object

The server group object.

server_group.name

body

string

The name of the server group.

server_group.policies

body

array

A list of exactly one policy name to associate with the server group. The current valid policy names are:

  • anti-affinity - servers in this group must be scheduled to different hosts.

  • affinity - servers in this group must be scheduled to the same host.

  • soft-anti-affinity - servers in this group should be scheduled to different hosts if possible, but if not possible then they should still be scheduled instead of resulting in a build failure. This policy was added in microversion 2.15.

  • soft-affinity - servers in this group should be scheduled to the same host if possible, but if not possible then they should still be scheduled instead of resulting in a build failure. This policy was added in microversion 2.15.

Available until version 2.63

server_group.policies

body

array

A list of exactly one policy name to associate with the server group. The current valid policy names are:

  • anti-affinity - servers in this group must be scheduled to different hosts.

  • affinity - servers in this group must be scheduled to the same host.

  • soft-anti-affinity - servers in this group should be scheduled to different hosts if possible, but if not possible then they should still be scheduled instead of resulting in a build failure. This policy was added in microversion 2.15.

  • soft-affinity - servers in this group should be scheduled to the same host if possible, but if not possible then they should still be scheduled instead of resulting in a build failure. This policy was added in microversion 2.15.

Available until version 2.63

server_group.policy

body

string

The policy field represents the name of the policy. The current valid policy names are:

  • anti-affinity - servers in this group must be scheduled to different hosts.

  • affinity - servers in this group must be scheduled to the same host.

  • soft-anti-affinity - servers in this group should be scheduled to different hosts if possible, but if not possible then they should still be scheduled instead of resulting in a build failure.

  • soft-affinity - servers in this group should be scheduled to the same host if possible, but if not possible then they should still be scheduled instead of resulting in a build failure.

New in version 2.64

server_group.rules

body

object

The rules field, which is a dict, can be applied to the policy. Currently, only the max_server_per_host rule is supported for the anti-affinity policy. The max_server_per_host rule allows specifying how many members of the anti-affinity group can reside on the same compute host. If not specified, only one member from the same anti-affinity group can reside on a given host. Requesting policy rules with any other policy than anti-affinity will be 400.

New in version 2.64

server_group.rules.max_server_per_host

body

[‘integer’, ‘string’]

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "server_group": {
          "type": "object",
          "description": "The server group object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The name of the server group."
            },
            "policies": {
              "type": "array",
              "prefixItems": [
                {
                  "type": "string",
                  "enum": [
                    "anti-affinity",
                    "affinity"
                  ]
                }
              ],
              "uniqueItems": true,
              "minItems": 1,
              "maxItems": 1,
              "description": "A list of exactly one policy name to associate with the server group. The\ncurrent valid policy names are:\n\n\n* `anti-affinity` \\- servers in this group must be scheduled to\ndifferent hosts.\n* `affinity` \\- servers in this group must be scheduled to the same host.\n* `soft-anti-affinity` \\- servers in this group should be scheduled to\ndifferent hosts if possible, but if not possible then they should still\nbe scheduled instead of resulting in a build failure. This policy was\nadded in microversion 2\\.15\\.\n* `soft-affinity` \\- servers in this group should be scheduled to the same\nhost if possible, but if not possible then they should still be scheduled\ninstead of resulting in a build failure. This policy was added in\nmicroversion 2\\.15\\.\n\n\n**Available until version 2\\.63**"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "policies"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.14"
      },
      "required": [
        "server_group"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server_group": {
          "type": "object",
          "description": "The server group object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The name of the server group."
            },
            "policies": {
              "type": "array",
              "prefixItems": [
                {
                  "type": "string",
                  "enum": [
                    "anti-affinity",
                    "affinity",
                    "soft-anti-affinity",
                    "soft-affinity"
                  ]
                }
              ],
              "uniqueItems": true,
              "minItems": 1,
              "maxItems": 1,
              "description": "A list of exactly one policy name to associate with the server group. The\ncurrent valid policy names are:\n\n\n* `anti-affinity` \\- servers in this group must be scheduled to\ndifferent hosts.\n* `affinity` \\- servers in this group must be scheduled to the same host.\n* `soft-anti-affinity` \\- servers in this group should be scheduled to\ndifferent hosts if possible, but if not possible then they should still\nbe scheduled instead of resulting in a build failure. This policy was\nadded in microversion 2\\.15\\.\n* `soft-affinity` \\- servers in this group should be scheduled to the same\nhost if possible, but if not possible then they should still be scheduled\ninstead of resulting in a build failure. This policy was added in\nmicroversion 2\\.15\\.\n\n\n**Available until version 2\\.63**"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "policies"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.15",
        "max-ver": "2.63"
      },
      "required": [
        "server_group"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server_group": {
          "type": "object",
          "description": "The server group object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The name of the server group."
            },
            "policy": {
              "type": "string",
              "enum": [
                "anti-affinity",
                "affinity",
                "soft-anti-affinity",
                "soft-affinity"
              ],
              "description": "The `policy` field represents the name of the policy. The current\nvalid policy names are:\n\n\n* `anti-affinity` \\- servers in this group must be scheduled to\ndifferent hosts.\n* `affinity` \\- servers in this group must be scheduled to the same host.\n* `soft-anti-affinity` \\- servers in this group should be scheduled to\ndifferent hosts if possible, but if not possible then they should still\nbe scheduled instead of resulting in a build failure.\n* `soft-affinity` \\- servers in this group should be scheduled to the same\nhost if possible, but if not possible then they should still be scheduled\ninstead of resulting in a build failure.\n\n\n**New in version 2\\.64**"
            },
            "rules": {
              "type": "object",
              "description": "The `rules` field, which is a dict, can be applied to the policy.\nCurrently, only the `max_server_per_host` rule is supported for the\n`anti-affinity` policy. The `max_server_per_host` rule allows\nspecifying how many members of the anti\\-affinity group can reside on the\nsame compute host. If not specified, only one member from the same\nanti\\-affinity group can reside on a given host. Requesting policy rules\nwith any other policy than `anti-affinity` will be 400\\.\n\n\n**New in version 2\\.64**",
              "properties": {
                "max_server_per_host": {
                  "type": [
                    "integer",
                    "string"
                  ],
                  "pattern": "^[0-9]*$",
                  "minimum": 1,
                  "minLength": 1
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "policy"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.64"
      },
      "required": [
        "server_group"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion"
  }
}

Responses

201

Ok

{
  "type": "object",
  "properties": {
    "server_group": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the server group.",
          "readOnly": true
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of members in the server group."
        },
        "metadata": {
          "description": "Metadata key and value pairs. The maximum size for each metadata key and value\npair is 255 bytes. It\u2019s always empty and only used for keeping compatibility.\n\n\n**Available until version 2\\.63**",
          "x-openstack": {
            "max-ver": "2.63"
          },
          "type": "object",
          "patternProperties": {
            "^[a-zA-Z0-9-_:. ]{1,255}$": {
              "type": "string",
              "maxLength": 255
            }
          },
          "additionalProperties": false
        },
        "name": {
          "type": "string",
          "description": "The name of the server group."
        },
        "policies": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "anti-affinity",
              "affinity",
              "soft-anti-affinity",
              "soft-affinity"
            ]
          },
          "description": "A list of exactly one policy name to associate with the server group. The\ncurrent valid policy names are:\n\n\n* `anti-affinity` \\- servers in this group must be scheduled to\ndifferent hosts.\n* `affinity` \\- servers in this group must be scheduled to the same host.\n* `soft-anti-affinity` \\- servers in this group should be scheduled to\ndifferent hosts if possible, but if not possible then they should still\nbe scheduled instead of resulting in a build failure. This policy was\nadded in microversion 2\\.15\\.\n* `soft-affinity` \\- servers in this group should be scheduled to the same\nhost if possible, but if not possible then they should still be scheduled\ninstead of resulting in a build failure. This policy was added in\nmicroversion 2\\.15\\.\n\n\n**Available until version 2\\.63**",
          "maxItems": 1,
          "x-openstack": {
            "max-ver": "2.63"
          }
        },
        "policy": {
          "type": "string",
          "description": "The `policy` field represents the name of the policy. The current\nvalid policy names are:\n\n\n* `anti-affinity` \\- servers in this group must be scheduled to\ndifferent hosts.\n* `affinity` \\- servers in this group must be scheduled to the same host.\n* `soft-anti-affinity` \\- servers in this group should be scheduled to\ndifferent hosts if possible, but if not possible then they should still\nbe scheduled instead of resulting in a build failure.\n* `soft-affinity` \\- servers in this group should be scheduled to the same\nhost if possible, but if not possible then they should still be scheduled\ninstead of resulting in a build failure.\n\n\n**New in version 2\\.64**",
          "enum": [
            "anti-affinity",
            "affinity",
            "soft-anti-affinity",
            "soft-affinity"
          ],
          "x-openstack": {
            "min-ver": "2.64"
          }
        },
        "project_id": {
          "type": "string",
          "description": "The project ID who owns the server group.\n\n\n**New in version 2\\.13**",
          "x-openstack": {
            "min-ver": "2.13"
          }
        },
        "rules": {
          "type": "object",
          "description": "The `rules` field, which is a dict, can be applied to the policy.\nCurrently, only the `max_server_per_host` rule is supported for the\n`anti-affinity` policy. The `max_server_per_host` rule allows\nspecifying how many members of the anti\\-affinity group can reside on the\nsame compute host. If not specified, only one member from the same\nanti\\-affinity group can reside on a given host.\n\n\n**New in version 2\\.64**",
          "properties": {
            "max_server_per_host": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            }
          },
          "additionalProperties": false,
          "x-openstack": {
            "min-ver": "2.64"
          }
        },
        "user_id": {
          "type": "string",
          "description": "The user ID who owns the server group.\n\n\n**New in version 2\\.13**",
          "x-openstack": {
            "min-ver": "2.13"
          }
        }
      },
      "description": "The server group object."
    }
  }
}

Name

Location

Type

Description

server_group

body

object

The server group object.

server_group.id

body

string

The UUID of the server group.

server_group.members

body

array

A list of members in the server group.

server_group.metadata

body

object

Metadata key and value pairs. The maximum size for each metadata key and value pair is 255 bytes. It’s always empty and only used for keeping compatibility.

Available until version 2.63
Available until version 2.63

server_group.name

body

string

The name of the server group.

server_group.policies

body

array

A list of exactly one policy name to associate with the server group. The current valid policy names are:

  • anti-affinity - servers in this group must be scheduled to different hosts.

  • affinity - servers in this group must be scheduled to the same host.

  • soft-anti-affinity - servers in this group should be scheduled to different hosts if possible, but if not possible then they should still be scheduled instead of resulting in a build failure. This policy was added in microversion 2.15.

  • soft-affinity - servers in this group should be scheduled to the same host if possible, but if not possible then they should still be scheduled instead of resulting in a build failure. This policy was added in microversion 2.15.

Available until version 2.63
Available until version 2.63

server_group.policy

body

string

The policy field represents the name of the policy. The current valid policy names are:

  • anti-affinity - servers in this group must be scheduled to different hosts.

  • affinity - servers in this group must be scheduled to the same host.

  • soft-anti-affinity - servers in this group should be scheduled to different hosts if possible, but if not possible then they should still be scheduled instead of resulting in a build failure.

  • soft-affinity - servers in this group should be scheduled to the same host if possible, but if not possible then they should still be scheduled instead of resulting in a build failure.

New in version 2.64
New in version 2.64

server_group.project_id

body

string

The project ID who owns the server group.

New in version 2.13
New in version 2.13

server_group.rules

body

object

The rules field, which is a dict, can be applied to the policy. Currently, only the max_server_per_host rule is supported for the anti-affinity policy. The max_server_per_host rule allows specifying how many members of the anti-affinity group can reside on the same compute host. If not specified, only one member from the same anti-affinity group can reside on a given host.

New in version 2.64
New in version 2.64

server_group.rules.max_server_per_host

body

[‘integer’, ‘string’]

server_group.user_id

body

string

The user ID who owns the server group.

New in version 2.13
New in version 2.13

400

Error

403

Error

409

Error

Show Server Group Details

Shows details for a server group.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "server_group": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the server group.",
          "readOnly": true
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of members in the server group."
        },
        "metadata": {
          "description": "Metadata key and value pairs. The maximum size for each metadata key and value\npair is 255 bytes. It\u2019s always empty and only used for keeping compatibility.\n\n\n**Available until version 2\\.63**",
          "x-openstack": {
            "max-ver": "2.63"
          },
          "type": "object",
          "patternProperties": {
            "^[a-zA-Z0-9-_:. ]{1,255}$": {
              "type": "string",
              "maxLength": 255
            }
          },
          "additionalProperties": false
        },
        "name": {
          "type": "string",
          "description": "The name of the server group."
        },
        "policies": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "anti-affinity",
              "affinity",
              "soft-anti-affinity",
              "soft-affinity"
            ]
          },
          "description": "A list of exactly one policy name to associate with the server group. The\ncurrent valid policy names are:\n\n\n* `anti-affinity` \\- servers in this group must be scheduled to\ndifferent hosts.\n* `affinity` \\- servers in this group must be scheduled to the same host.\n* `soft-anti-affinity` \\- servers in this group should be scheduled to\ndifferent hosts if possible, but if not possible then they should still\nbe scheduled instead of resulting in a build failure. This policy was\nadded in microversion 2\\.15\\.\n* `soft-affinity` \\- servers in this group should be scheduled to the same\nhost if possible, but if not possible then they should still be scheduled\ninstead of resulting in a build failure. This policy was added in\nmicroversion 2\\.15\\.\n\n\n**Available until version 2\\.63**",
          "maxItems": 1,
          "x-openstack": {
            "max-ver": "2.63"
          }
        },
        "policy": {
          "type": "string",
          "description": "The `policy` field represents the name of the policy. The current\nvalid policy names are:\n\n\n* `anti-affinity` \\- servers in this group must be scheduled to\ndifferent hosts.\n* `affinity` \\- servers in this group must be scheduled to the same host.\n* `soft-anti-affinity` \\- servers in this group should be scheduled to\ndifferent hosts if possible, but if not possible then they should still\nbe scheduled instead of resulting in a build failure.\n* `soft-affinity` \\- servers in this group should be scheduled to the same\nhost if possible, but if not possible then they should still be scheduled\ninstead of resulting in a build failure.\n\n\n**New in version 2\\.64**",
          "enum": [
            "anti-affinity",
            "affinity",
            "soft-anti-affinity",
            "soft-affinity"
          ],
          "x-openstack": {
            "min-ver": "2.64"
          }
        },
        "project_id": {
          "type": "string",
          "description": "The project ID who owns the server group.\n\n\n**New in version 2\\.13**",
          "x-openstack": {
            "min-ver": "2.13"
          }
        },
        "rules": {
          "type": "object",
          "description": "The `rules` field, which is a dict, can be applied to the policy.\nCurrently, only the `max_server_per_host` rule is supported for the\n`anti-affinity` policy. The `max_server_per_host` rule allows\nspecifying how many members of the anti\\-affinity group can reside on the\nsame compute host. If not specified, only one member from the same\nanti\\-affinity group can reside on a given host.\n\n\n**New in version 2\\.64**",
          "properties": {
            "max_server_per_host": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            }
          },
          "additionalProperties": false,
          "x-openstack": {
            "min-ver": "2.64"
          }
        },
        "user_id": {
          "type": "string",
          "description": "The user ID who owns the server group.\n\n\n**New in version 2\\.13**",
          "x-openstack": {
            "min-ver": "2.13"
          }
        }
      },
      "description": "The server group object."
    }
  }
}

Name

Location

Type

Description

server_group

body

object

The server group object.

server_group.id

body

string

The UUID of the server group.

server_group.members

body

array

A list of members in the server group.

server_group.metadata

body

object

Metadata key and value pairs. The maximum size for each metadata key and value pair is 255 bytes. It’s always empty and only used for keeping compatibility.

Available until version 2.63
Available until version 2.63

server_group.name

body

string

The name of the server group.

server_group.policies

body

array

A list of exactly one policy name to associate with the server group. The current valid policy names are:

  • anti-affinity - servers in this group must be scheduled to different hosts.

  • affinity - servers in this group must be scheduled to the same host.

  • soft-anti-affinity - servers in this group should be scheduled to different hosts if possible, but if not possible then they should still be scheduled instead of resulting in a build failure. This policy was added in microversion 2.15.

  • soft-affinity - servers in this group should be scheduled to the same host if possible, but if not possible then they should still be scheduled instead of resulting in a build failure. This policy was added in microversion 2.15.

Available until version 2.63
Available until version 2.63

server_group.policy

body

string

The policy field represents the name of the policy. The current valid policy names are:

  • anti-affinity - servers in this group must be scheduled to different hosts.

  • affinity - servers in this group must be scheduled to the same host.

  • soft-anti-affinity - servers in this group should be scheduled to different hosts if possible, but if not possible then they should still be scheduled instead of resulting in a build failure.

  • soft-affinity - servers in this group should be scheduled to the same host if possible, but if not possible then they should still be scheduled instead of resulting in a build failure.

New in version 2.64
New in version 2.64

server_group.project_id

body

string

The project ID who owns the server group.

New in version 2.13
New in version 2.13

server_group.rules

body

object

The rules field, which is a dict, can be applied to the policy. Currently, only the max_server_per_host rule is supported for the anti-affinity policy. The max_server_per_host rule allows specifying how many members of the anti-affinity group can reside on the same compute host. If not specified, only one member from the same anti-affinity group can reside on a given host.

New in version 2.64
New in version 2.64

server_group.rules.max_server_per_host

body

[‘integer’, ‘string’]

server_group.user_id

body

string

The user ID who owns the server group.

New in version 2.13
New in version 2.13

404

Error

Delete Server Group

Deletes a server group.

Normal response codes: 204

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

204

Ok

404

Error

os-services

List Compute Services

Lists all running Compute services.

Provides details why any services were disabled.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "services": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "zone": {
            "type": "string",
            "description": "The availability zone name.",
            "x-openstack-sdk-name": "availability_zone"
          },
          "binary": {
            "type": "string",
            "description": "The binary name of the service."
          },
          "disabled_reason": {
            "type": "string",
            "description": "The reason for disabling a service."
          },
          "host": {
            "type": "string",
            "description": "The name of the host."
          },
          "id": {
            "type": [
              "integer",
              "string"
            ],
            "format": "uuid",
            "description": "The id of the service as a uuid.",
            "readOnly": true
          },
          "forced_down": {
            "type": "boolean",
            "description": "Whether or not this service was forced down manually by an\nadministrator after the service was fenced. This value is useful\nto know that some 3rd party has verified the service should be\nmarked down.",
            "x-openstack": {
              "min-ver": "2.11"
            }
          },
          "name": {
            "type": "string",
            "description": "Service name"
          },
          "state": {
            "type": "string",
            "description": "The state of the service. One of `up` or `down`."
          },
          "status": {
            "type": "string",
            "description": "The status of the service. One of `enabled` or `disabled`.",
            "enum": [
              "disabled",
              "enabled"
            ],
            "readOnly": true
          },
          "updated_at": {
            "type": "string",
            "description": "The date and time when the resource was updated. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`.",
            "readOnly": true
          }
        },
        "description": "Object representing a compute service."
      },
      "description": "A list of service objects."
    }
  }
}

Name

Location

Type

Description

services

body

array

A list of service objects.

services[].zone

body

string

The availability zone name.

services[].binary

body

string

The binary name of the service.

services[].disabled_reason

body

string

The reason for disabling a service.

services[].host

body

string

The name of the host.

services[].id

body

[‘integer’, ‘string’]

The id of the service as a uuid.

services[].forced_down

body

boolean

Whether or not this service was forced down manually by an administrator after the service was fenced. This value is useful to know that some 3rd party has verified the service should be marked down.
New in version 2.11

services[].name

body

string

Service name

services[].state

body

string

The state of the service. One of up or down.

services[].status

body

string

The status of the service. One of enabled or disabled.

services[].updated_at

body

string

The date and time when the resource was updated. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

Update Compute Service

Update a compute service to enable or disable scheduling, including recording a reason why a compute service was disabled from scheduling. Set or unset the forced_down flag for the service. This operation is only allowed on services whose binary is nova-compute.

This API is available starting with microversion 2.53.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-services/{id} API

host

body

string

binary

body

string

disabled_reason

body

string

The reason for disabling a service. The minimum length is 1 and the maximum length is 255. This may only be requested with status=disabled.

forced_down

body

[‘boolean’, ‘string’]

forced_down is a manual override to tell nova that the service in question has been fenced manually by the operations team (either hard powered off, or network unplugged). That signals that it is safe to proceed with evacuate or other operations that nova has safety checks to prevent for hosts that are up.

Warning

Setting a service forced down without completely fencing it will likely result in the corruption of VMs on that host.

status

body

string

The status of the service. One of enabled or disabled.

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "host": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255,
          "pattern": "^[a-zA-Z0-9-._]*$"
        },
        "binary": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255
        },
        "disabled_reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255,
          "description": "The reason for disabling a service. The minimum length is 1 and the\nmaximum length is 255\\. This may only be requested with `status=disabled`."
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.10"
      },
      "required": [
        "host",
        "binary"
      ]
    },
    {
      "type": "object",
      "properties": {
        "host": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255,
          "pattern": "^[a-zA-Z0-9-._]*$"
        },
        "binary": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255
        },
        "disabled_reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255,
          "description": "The reason for disabling a service. The minimum length is 1 and the\nmaximum length is 255\\. This may only be requested with `status=disabled`."
        },
        "forced_down": {
          "type": [
            "boolean",
            "string"
          ],
          "enum": [
            true,
            "True",
            "TRUE",
            "true",
            "1",
            "ON",
            "On",
            "on",
            "YES",
            "Yes",
            "yes",
            false,
            "False",
            "FALSE",
            "false",
            "0",
            "OFF",
            "Off",
            "off",
            "NO",
            "No",
            "no"
          ],
          "description": "`forced_down` is a manual override to tell nova that the service in\nquestion has been fenced manually by the operations team (either hard\npowered off, or network unplugged). That signals that it is safe to proceed\nwith `evacuate` or other operations that nova has safety checks to\nprevent for hosts that are up.\n\n\n\nWarning\n\n\nSetting a service forced down without completely fencing it will likely\nresult in the corruption of VMs on that host."
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.11",
        "max-ver": "2.52"
      },
      "required": [
        "host",
        "binary"
      ]
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "enabled",
            "disabled"
          ],
          "description": "The status of the service. One of `enabled` or `disabled`."
        },
        "disabled_reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255,
          "description": "The reason for disabling a service. The minimum length is 1 and the\nmaximum length is 255\\. This may only be requested with `status=disabled`."
        },
        "forced_down": {
          "type": [
            "boolean",
            "string"
          ],
          "enum": [
            true,
            "True",
            "TRUE",
            "true",
            "1",
            "ON",
            "On",
            "on",
            "YES",
            "Yes",
            "yes",
            false,
            "False",
            "FALSE",
            "false",
            "0",
            "OFF",
            "Off",
            "off",
            "NO",
            "No",
            "no"
          ],
          "description": "`forced_down` is a manual override to tell nova that the service in\nquestion has been fenced manually by the operations team (either hard\npowered off, or network unplugged). That signals that it is safe to proceed\nwith `evacuate` or other operations that nova has safety checks to\nprevent for hosts that are up.\n\n\n\nWarning\n\n\nSetting a service forced down without completely fencing it will likely\nresult in the corruption of VMs on that host."
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.53"
      }
    }
  ],
  "x-openstack": {
    "discriminator": "microversion"
  }
}

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "service": {
      "type": "object",
      "properties": {
        "zone": {
          "type": "string",
          "description": "The availability zone name.",
          "x-openstack-sdk-name": "availability_zone"
        },
        "binary": {
          "type": "string",
          "description": "The binary name of the service."
        },
        "disabled_reason": {
          "type": "string",
          "description": "The reason for disabling a service."
        },
        "host": {
          "type": "string",
          "description": "The name of the host."
        },
        "id": {
          "type": [
            "integer",
            "string"
          ],
          "format": "uuid",
          "description": "The id of the service as a uuid.",
          "readOnly": true
        },
        "forced_down": {
          "type": "boolean",
          "description": "Whether or not this service was forced down manually by an\nadministrator after the service was fenced. This value is useful\nto know that some 3rd party has verified the service should be\nmarked down.",
          "x-openstack": {
            "min-ver": "2.11"
          }
        },
        "name": {
          "type": "string",
          "description": "Service name"
        },
        "state": {
          "type": "string",
          "description": "The state of the service. One of `up` or `down`."
        },
        "status": {
          "type": "string",
          "description": "The status of the service. One of `enabled` or `disabled`.",
          "enum": [
            "disabled",
            "enabled"
          ],
          "readOnly": true
        },
        "updated_at": {
          "type": "string",
          "description": "The date and time when the resource was updated. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`.",
          "readOnly": true
        }
      },
      "description": "Object representing a compute service."
    }
  }
}

Name

Location

Type

Description

service

body

object

Object representing a compute service.

service.zone

body

string

The availability zone name.

service.binary

body

string

The binary name of the service.

service.disabled_reason

body

string

The reason for disabling a service.

service.host

body

string

The name of the host.

service.id

body

[‘integer’, ‘string’]

The id of the service as a uuid.

service.forced_down

body

boolean

Whether or not this service was forced down manually by an administrator after the service was fenced. This value is useful to know that some 3rd party has verified the service should be marked down.
New in version 2.11

service.name

body

string

Service name

service.state

body

string

The state of the service. One of up or down.

service.status

body

string

The status of the service. One of enabled or disabled.

service.updated_at

body

string

The date and time when the resource was updated. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

400

Error

404

Error

Delete Compute Service

Deletes a service. If it’s a nova-compute service, then the corresponding host will be removed from all the host aggregates as well.

Attempts to delete a nova-compute service which is still hosting instances will result in a 409 HTTPConflict response. The instances will need to be migrated or deleted before a compute service can be deleted.

Similarly, attempts to delete a nova-compute service which is involved in in-progress migrations will result in a 409 HTTPConflict response. The migrations will need to be completed, for example confirming or reverting a resize, or the instances will need to be deleted before the compute service can be deleted.

Normal response codes: 204

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Responses

204

Ok

400

Error

404

Error

409

Error

os-simple-tenant-usage

List Tenant Usage Statistics For All Tenants

Lists usage statistics for all tenants.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "tenant_usages": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "tenant_id": {
            "type": "string",
            "description": "The UUID of the tenant in a multi\\-tenancy cloud."
          },
          "start": {
            "type": "string",
            "format": "date-time",
            "description": "The beginning time to calculate usage statistics on compute and\nstorage resources. The date and time stamp format is as follows:\n\n\n\n```\nCCYY-MM-DDThh:mm:ss.NNNNNN\n\n```\n\n\nFor example, `2015-08-27T09:49:58.123456`."
          },
          "stop": {
            "type": "string",
            "format": "date-time",
            "description": "The ending time to calculate usage statistics on compute and\nstorage resources. The date and time stamp format is as follows:\n\n\n\n```\nCCYY-MM-DDThh:mm:ss.NNNNNN\n\n```\n\n\nFor example, `2015-08-27T09:49:58.123456`."
          },
          "total_hours": {
            "type": "number",
            "format": "float",
            "description": "The total duration that servers exist (in hours)."
          },
          "total_local_gb_usage": {
            "type": "number",
            "format": "float",
            "description": "Multiplying the server disk size (in GiB) by hours the server exists,\nand then adding that all together for each server."
          },
          "total_memory_mb_usage": {
            "type": "number",
            "format": "float",
            "description": "Multiplying the server memory size (in MiB) by hours the server exists,\nand then adding that all together for each server."
          },
          "total_vcpus_usage": {
            "type": "number",
            "format": "float",
            "description": "Multiplying the number of virtual CPUs of the server by hours the server exists,\nand then adding that all together for each server."
          },
          "server_usages": {
            "type": "array",
            "description": "A list of the server usage objects.",
            "items": {
              "type": "object",
              "properties": {
                "ended_at": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The date and time when the server was deleted."
                },
                "flavor": {
                  "type": "string",
                  "description": "The display name of a flavor."
                },
                "hours": {
                  "type": "number",
                  "format": "float",
                  "description": "The duration that the server exists (in hours)."
                },
                "instance_id": {
                  "type": "string",
                  "format": "uuid",
                  "description": "The UUID of the server."
                },
                "local_gb": {
                  "type": "integer",
                  "description": "The sum of the root disk size of the server and the ephemeral disk size of it (in GiB)."
                },
                "memory_mb": {
                  "type": "integer",
                  "description": "The memory size of the server (in MiB)."
                },
                "name": {
                  "type": "string",
                  "description": "The server name."
                },
                "tenant_id": {
                  "type": "string",
                  "description": "The UUID of the project in a multi-tenancy cloud."
                },
                "started_at": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The date and time when the server was launched."
                },
                "state": {
                  "type": "string",
                  "description": "The VM state."
                },
                "uptime": {
                  "type": "integer",
                  "description": "The uptime of the server."
                },
                "vcpus": {
                  "type": "integer",
                  "description": "The number of virtual CPUs that the server uses."
                }
              }
            }
          }
        }
      },
      "description": "A list of the tenant usage objects."
    },
    "tenant_usages_links": {
      "type": "array",
      "description": "Links pertaining to usage. See [API Guide / Links and\nReferences](https://docs.openstack.org/api-guide/compute/links_and_references.html)\nfor more info.\n\n\n**New in version 2\\.40**",
      "items": {
        "type": "object",
        "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
        "properties": {
          "href": {
            "type": "string",
            "format": "uri"
          },
          "rel": {
            "type": "string"
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

tenant_usages

body

array

A list of the tenant usage objects.

tenant_usages[].tenant_id

body

string

The UUID of the tenant in a multi-tenancy cloud.

tenant_usages[].start

body

string

The beginning time to calculate usage statistics on compute and storage resources. The date and time stamp format is as follows:

CCYY-MM-DDThh:mm:ss.NNNNNN

For example, 2015-08-27T09:49:58.123456.

tenant_usages[].stop

body

string

The ending time to calculate usage statistics on compute and storage resources. The date and time stamp format is as follows:

CCYY-MM-DDThh:mm:ss.NNNNNN

For example, 2015-08-27T09:49:58.123456.

tenant_usages[].total_hours

body

number

The total duration that servers exist (in hours).

tenant_usages[].total_local_gb_usage

body

number

Multiplying the server disk size (in GiB) by hours the server exists, and then adding that all together for each server.

tenant_usages[].total_memory_mb_usage

body

number

Multiplying the server memory size (in MiB) by hours the server exists, and then adding that all together for each server.

tenant_usages[].total_vcpus_usage

body

number

Multiplying the number of virtual CPUs of the server by hours the server exists, and then adding that all together for each server.

tenant_usages[].server_usages

body

array

A list of the server usage objects.

tenant_usages[].server_usages[].ended_at

body

string

The date and time when the server was deleted.

tenant_usages[].server_usages[].flavor

body

string

The display name of a flavor.

tenant_usages[].server_usages[].hours

body

number

The duration that the server exists (in hours).

tenant_usages[].server_usages[].instance_id

body

string

The UUID of the server.

tenant_usages[].server_usages[].local_gb

body

integer

The sum of the root disk size of the server and the ephemeral disk size of it (in GiB).

tenant_usages[].server_usages[].memory_mb

body

integer

The memory size of the server (in MiB).

tenant_usages[].server_usages[].name

body

string

The server name.

tenant_usages[].server_usages[].tenant_id

body

string

The UUID of the project in a multi-tenancy cloud.

tenant_usages[].server_usages[].started_at

body

string

The date and time when the server was launched.

tenant_usages[].server_usages[].state

body

string

The VM state.

tenant_usages[].server_usages[].uptime

body

integer

The uptime of the server.

tenant_usages[].server_usages[].vcpus

body

integer

The number of virtual CPUs that the server uses.

tenant_usages_links

body

array

Links pertaining to usage. See API Guide / Links and References for more info.

New in version 2.40

tenant_usages_links[].href

body

string

tenant_usages_links[].rel

body

string

400

Error

Show Usage Statistics For Tenant

Shows usage statistics for a tenant.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "tenant_usages": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "tenant_id": {
            "type": "string",
            "description": "The UUID of the tenant in a multi\\-tenancy cloud."
          },
          "start": {
            "type": "string",
            "format": "date-time",
            "description": "The beginning time to calculate usage statistics on compute and\nstorage resources. The date and time stamp format is as follows:\n\n\n\n```\nCCYY-MM-DDThh:mm:ss.NNNNNN\n\n```\n\n\nFor example, `2015-08-27T09:49:58.123456`."
          },
          "stop": {
            "type": "string",
            "format": "date-time",
            "description": "The ending time to calculate usage statistics on compute and\nstorage resources. The date and time stamp format is as follows:\n\n\n\n```\nCCYY-MM-DDThh:mm:ss.NNNNNN\n\n```\n\n\nFor example, `2015-08-27T09:49:58.123456`."
          },
          "total_hours": {
            "type": "number",
            "format": "float",
            "description": "The total duration that servers exist (in hours)."
          },
          "total_local_gb_usage": {
            "type": "number",
            "format": "float",
            "description": "Multiplying the server disk size (in GiB) by hours the server exists,\nand then adding that all together for each server."
          },
          "total_memory_mb_usage": {
            "type": "number",
            "format": "float",
            "description": "Multiplying the server memory size (in MiB) by hours the server exists,\nand then adding that all together for each server."
          },
          "total_vcpus_usage": {
            "type": "number",
            "format": "float",
            "description": "Multiplying the number of virtual CPUs of the server by hours the server exists,\nand then adding that all together for each server."
          },
          "server_usages": {
            "type": "array",
            "description": "A list of the server usage objects.",
            "items": {
              "type": "object",
              "properties": {
                "ended_at": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The date and time when the server was deleted."
                },
                "flavor": {
                  "type": "string",
                  "description": "The display name of a flavor."
                },
                "hours": {
                  "type": "number",
                  "format": "float",
                  "description": "The duration that the server exists (in hours)."
                },
                "instance_id": {
                  "type": "string",
                  "format": "uuid",
                  "description": "The UUID of the server."
                },
                "local_gb": {
                  "type": "integer",
                  "description": "The sum of the root disk size of the server and the ephemeral disk size of it (in GiB)."
                },
                "memory_mb": {
                  "type": "integer",
                  "description": "The memory size of the server (in MiB)."
                },
                "name": {
                  "type": "string",
                  "description": "The server name."
                },
                "tenant_id": {
                  "type": "string",
                  "description": "The UUID of the project in a multi-tenancy cloud."
                },
                "started_at": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The date and time when the server was launched."
                },
                "state": {
                  "type": "string",
                  "description": "The VM state."
                },
                "uptime": {
                  "type": "integer",
                  "description": "The uptime of the server."
                },
                "vcpus": {
                  "type": "integer",
                  "description": "The number of virtual CPUs that the server uses."
                }
              }
            }
          }
        }
      },
      "description": "A list of the tenant usage objects."
    },
    "tenant_usages_links": {
      "type": "array",
      "description": "Links pertaining to usage. See [API Guide / Links and\nReferences](https://docs.openstack.org/api-guide/compute/links_and_references.html)\nfor more info.\n\n\n**New in version 2\\.40**",
      "items": {
        "type": "object",
        "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
        "properties": {
          "href": {
            "type": "string",
            "format": "uri"
          },
          "rel": {
            "type": "string"
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

tenant_usages

body

array

A list of the tenant usage objects.

tenant_usages[].tenant_id

body

string

The UUID of the tenant in a multi-tenancy cloud.

tenant_usages[].start

body

string

The beginning time to calculate usage statistics on compute and storage resources. The date and time stamp format is as follows:

CCYY-MM-DDThh:mm:ss.NNNNNN

For example, 2015-08-27T09:49:58.123456.

tenant_usages[].stop

body

string

The ending time to calculate usage statistics on compute and storage resources. The date and time stamp format is as follows:

CCYY-MM-DDThh:mm:ss.NNNNNN

For example, 2015-08-27T09:49:58.123456.

tenant_usages[].total_hours

body

number

The total duration that servers exist (in hours).

tenant_usages[].total_local_gb_usage

body

number

Multiplying the server disk size (in GiB) by hours the server exists, and then adding that all together for each server.

tenant_usages[].total_memory_mb_usage

body

number

Multiplying the server memory size (in MiB) by hours the server exists, and then adding that all together for each server.

tenant_usages[].total_vcpus_usage

body

number

Multiplying the number of virtual CPUs of the server by hours the server exists, and then adding that all together for each server.

tenant_usages[].server_usages

body

array

A list of the server usage objects.

tenant_usages[].server_usages[].ended_at

body

string

The date and time when the server was deleted.

tenant_usages[].server_usages[].flavor

body

string

The display name of a flavor.

tenant_usages[].server_usages[].hours

body

number

The duration that the server exists (in hours).

tenant_usages[].server_usages[].instance_id

body

string

The UUID of the server.

tenant_usages[].server_usages[].local_gb

body

integer

The sum of the root disk size of the server and the ephemeral disk size of it (in GiB).

tenant_usages[].server_usages[].memory_mb

body

integer

The memory size of the server (in MiB).

tenant_usages[].server_usages[].name

body

string

The server name.

tenant_usages[].server_usages[].tenant_id

body

string

The UUID of the project in a multi-tenancy cloud.

tenant_usages[].server_usages[].started_at

body

string

The date and time when the server was launched.

tenant_usages[].server_usages[].state

body

string

The VM state.

tenant_usages[].server_usages[].uptime

body

integer

The uptime of the server.

tenant_usages[].server_usages[].vcpus

body

integer

The number of virtual CPUs that the server uses.

tenant_usages_links

body

array

Links pertaining to usage. See API Guide / Links and References for more info.

New in version 2.40

tenant_usages_links[].href

body

string

tenant_usages_links[].rel

body

string

400

Error

os-snapshots

List Snapshots

Lists snapshots.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-snapshots:get operation"
}

Create Snapshot

Creates a new snapshot.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403)

Request

Name

Location

Type

Description

snapshot

body

object

A partial representation of a snapshot that is used to create a snapshot.

snapshot.volume_id

body

string

The source volume ID.

snapshot.force

body

[‘boolean’, ‘string’]

Indicates whether to create a snapshot, even if the volume is attached.

snapshot.display_name

body

string

The snapshot name.

snapshot.display_description

body

string

The snapshot description.

{
  "type": "object",
  "properties": {
    "snapshot": {
      "type": "object",
      "description": "A partial representation of a snapshot that is used to create a snapshot.",
      "properties": {
        "volume_id": {
          "type": "string",
          "description": "The source volume ID."
        },
        "force": {
          "type": [
            "boolean",
            "string"
          ],
          "enum": [
            true,
            "True",
            "TRUE",
            "true",
            "1",
            "ON",
            "On",
            "on",
            "YES",
            "Yes",
            "yes",
            false,
            "False",
            "FALSE",
            "false",
            "0",
            "OFF",
            "Off",
            "off",
            "NO",
            "No",
            "no"
          ],
          "description": "Indicates whether to create a snapshot, even if the volume is attached."
        },
        "display_name": {
          "type": "string",
          "description": "The snapshot name."
        },
        "display_description": {
          "type": "string",
          "description": "The snapshot description."
        }
      },
      "additionalProperties": false,
      "required": [
        "volume_id"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.35"
  },
  "required": [
    "snapshot"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-snapshots:post operation"
}
400

Error

403

Error

List Snapshots With Details

Lists all snapshots with details.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-snapshots/detail:get operation"
}

Show Snapshot Details

Shows details for a given snapshot.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-snapshots/id:get operation"
}
404

Error

Delete Snapshot

Deletes a snapshot from the account.

This operation is asynchronous. You must list snapshots repeatedly to determine whether the snapshot was deleted.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

202

Ok

404

Error

os-tenant-networks

List Project Networks

Lists all project networks.

Policy defaults enable only users with the administrative role or the owner of the network to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-tenant-networks:get operation"
}

Create Project Network

Creates a project network.

Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), conflict(409), gone(410), serviceUnavailable(503)

Example Create Project Network: JSON request

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-tenant-networks:post operation"
}
410

Error

Show Project Network Details

Shows details for a project network.

Policy defaults enable only users with the administrative role or the owner of the network to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-tenant-networks/id:get operation"
}
404

Error

Delete Project Network

Deletes a project network.

Policy defaults enable only users with the administrative role or the owner of the network to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), gone(410)

Responses

204

Ok

410

Error

os-volumes

List Volumes

Lists the volumes associated with the account.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-volumes:get operation"
}

Create Volume

Creates a new volume.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Request

Name

Location

Type

Description

volume

body

object

The volume object.

volume.volume_type

body

string

The unique identifier for a volume type.

volume.metadata

body

object

Metadata key and value pairs. The maximum size of the metadata key and value is 255 bytes each.

volume.snapshot_id

body

string

The UUID for a snapshot.

volume.size

body

[‘integer’, ‘string’]

The size of the volume, in gibibytes (GiB).

volume.availability_zone

body

string

The availability zone name.

volume.display_name

body

string

The volume name.

volume.display_description

body

string

The volume description.

{
  "type": "object",
  "properties": {
    "volume": {
      "type": "object",
      "description": "The `volume` object.",
      "properties": {
        "volume_type": {
          "type": "string",
          "description": "The unique identifier for a volume type."
        },
        "metadata": {
          "type": "object",
          "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each."
        },
        "snapshot_id": {
          "type": "string",
          "description": "The UUID for a snapshot."
        },
        "size": {
          "type": [
            "integer",
            "string"
          ],
          "pattern": "^[0-9]+$",
          "minimum": 1,
          "description": "The size of the volume, in gibibytes (GiB)."
        },
        "availability_zone": {
          "type": "string",
          "description": "The availability zone name."
        },
        "display_name": {
          "type": "string",
          "description": "The volume name."
        },
        "display_description": {
          "type": "string",
          "description": "The volume description."
        }
      },
      "additionalProperties": false,
      "required": [
        "size"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.35"
  },
  "required": [
    "volume"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-volumes:post operation"
}
400

Error

403

Error

404

Error

List Volumes With Details

Lists all volumes with details.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-volumes/detail:get operation"
}

Show Volume Details

Shows details for a given volume.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-volumes/id:get operation"
}
404

Error

Delete Volume

Deletes a volume.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

202

Ok

400

Error

404

Error

os-volumes_boot

Returns a list of server names and ids for a given user.

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot:get operation"
}
400

Error

403

Error

Creates a new server for a given user.

Request

Name

Location

Type

Description

server

body

object

server.name

body

string

server.flavorRef

body

[‘string’, ‘integer’]

server.adminPass

body

string

server.metadata

body

object

server.networks

body

array

server.networks[].fixed_ip

body

string

server.networks[].uuid

body

string

server.OS-DCF:diskConfig

body

string

server.accessIPv4

body

string

server.accessIPv6

body

string

server.personality

body

array

server.personality[].path

body

string

server.personality[].contents

body

string

server.availability_zone

body

string

server.block_device_mapping

body

array

server.block_device_mapping[].virtual_name

body

string

server.block_device_mapping[].volume_id

body

string

server.block_device_mapping[].snapshot_id

body

string

server.block_device_mapping[].volume_size

body

[‘integer’, ‘string’]

server.block_device_mapping[].device_name

body

string

server.block_device_mapping[].delete_on_termination

body

[‘boolean’, ‘string’]

server.block_device_mapping[].connection_info

body

string

server.block_device_mapping_v2

body

array

server.block_device_mapping_v2[].virtual_name

body

string

server.block_device_mapping_v2[].volume_id

body

string

server.block_device_mapping_v2[].snapshot_id

body

string

server.block_device_mapping_v2[].volume_size

body

[‘integer’, ‘string’]

server.block_device_mapping_v2[].device_name

body

string

server.block_device_mapping_v2[].delete_on_termination

body

[‘boolean’, ‘string’]

server.block_device_mapping_v2[].connection_info

body

string

server.block_device_mapping_v2[].source_type

body

string

server.block_device_mapping_v2[].uuid

body

string

server.block_device_mapping_v2[].image_id

body

string

server.block_device_mapping_v2[].destination_type

body

string

server.block_device_mapping_v2[].guest_format

body

string

server.block_device_mapping_v2[].device_type

body

string

server.block_device_mapping_v2[].disk_bus

body

string

server.block_device_mapping_v2[].boot_index

body

[‘integer’, ‘string’, ‘null’]

server.config_drive

body

[‘boolean’, ‘string’]

server.key_name

body

string

server.min_count

body

[‘integer’, ‘string’]

server.max_count

body

[‘integer’, ‘string’]

server.return_reservation_id

body

[‘boolean’, ‘string’]

server.security_groups

body

array

server.security_groups[].name

body

string

os:scheduler_hints

body

object

os:scheduler_hints.group

body

string

os:scheduler_hints.same_host

body

[‘string’, ‘array’]

os:scheduler_hints.query

body

[‘string’, ‘object’]

os:scheduler_hints.target_cell

body

string

os:scheduler_hints.different_cell

body

[‘string’, ‘array’]

os:scheduler_hints.build_near_host_ip

body

string

os:scheduler_hints.cidr

body

string

OS-SCH-HNT:scheduler_hints

body

object

OS-SCH-HNT:scheduler_hints.group

body

string

OS-SCH-HNT:scheduler_hints.same_host

body

[‘string’, ‘array’]

OS-SCH-HNT:scheduler_hints.query

body

[‘string’, ‘object’]

OS-SCH-HNT:scheduler_hints.target_cell

body

string

OS-SCH-HNT:scheduler_hints.different_cell

body

[‘string’, ‘array’]

OS-SCH-HNT:scheduler_hints.build_near_host_ip

body

string

OS-SCH-HNT:scheduler_hints.cidr

body

string

server.networks

body

array

server.personality

body

array

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

server.security_groups

body

array

server.user_data

body

string

server.networks

body

array

server.personality

body

array

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

server.security_groups

body

array

server.description

body

[‘string’, ‘null’]

server.networks

body

array

server.networks[].tag

body

string

server.personality

body

array

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

server.block_device_mapping_v2[].tag

body

string

server.security_groups

body

array

server.networks

body

array

server.personality

body

array

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

server.security_groups

body

array

server.personality

body

array

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

server.security_groups

body

array

server.personality

body

array

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

server.security_groups

body

array

server.personality

body

array

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

server.security_groups

body

array

server.tags

body

array

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

server.security_groups

body

array

server.tags

body

array

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

server.security_groups

body

array

server.tags

body

array

server.trusted_image_certificates

body

[‘array’, ‘null’]

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

server.block_device_mapping_v2[].volume_type

body

[‘string’, ‘null’]

server.security_groups

body

array

server.tags

body

array

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

server.security_groups

body

array

server.tags

body

array

server.host

body

string

server.hypervisor_hostname

body

string

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

server.security_groups

body

array

server.tags

body

array

server.hostname

body

string

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

server.security_groups

body

array

server.tags

body

array

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name_with_leading_trailing_spaces"
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ]
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "fixed_ip": {
                    "type": "string",
                    "oneOf": [
                      {
                        "format": "ipv4"
                      },
                      {
                        "format": "ipv6"
                      }
                    ]
                  },
                  "port": {
                    "oneOf": [
                      {
                        "type": "string",
                        "format": "uuid"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "uuid": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              }
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name_with_leading_trailing_spaces"
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  }
                },
                "additionalProperties": false
              }
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name_with_leading_trailing_spaces"
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name_with_leading_trailing_spaces"
                  }
                },
                "additionalProperties": false
              }
            },
            "user_data": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "base64",
                  "maxLength": 65535
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.0"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ]
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "fixed_ip": {
                    "type": "string",
                    "oneOf": [
                      {
                        "format": "ipv4"
                      },
                      {
                        "format": "ipv6"
                      }
                    ]
                  },
                  "port": {
                    "oneOf": [
                      {
                        "type": "string",
                        "format": "uuid"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "uuid": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              }
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  }
                },
                "additionalProperties": false
              }
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name"
                  }
                },
                "additionalProperties": false
              }
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.1",
        "max-ver": "2.18"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ]
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "fixed_ip": {
                    "type": "string",
                    "oneOf": [
                      {
                        "format": "ipv4"
                      },
                      {
                        "format": "ipv6"
                      }
                    ]
                  },
                  "port": {
                    "oneOf": [
                      {
                        "type": "string",
                        "format": "uuid"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "uuid": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              }
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  }
                },
                "additionalProperties": false
              }
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name"
                  }
                },
                "additionalProperties": false
              }
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.19",
        "max-ver": "2.31"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ]
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "fixed_ip": {
                    "type": "string",
                    "oneOf": [
                      {
                        "format": "ipv4"
                      },
                      {
                        "format": "ipv6"
                      }
                    ]
                  },
                  "port": {
                    "oneOf": [
                      {
                        "type": "string",
                        "format": "uuid"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "uuid": {
                    "type": "string"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  }
                },
                "additionalProperties": false
              }
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              }
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  }
                },
                "additionalProperties": false
              }
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name"
                  }
                },
                "additionalProperties": false
              }
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.32",
        "max-ver": "2.32"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ]
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "fixed_ip": {
                    "type": "string",
                    "oneOf": [
                      {
                        "format": "ipv4"
                      },
                      {
                        "format": "ipv6"
                      }
                    ]
                  },
                  "port": {
                    "oneOf": [
                      {
                        "type": "string",
                        "format": "uuid"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "uuid": {
                    "type": "string"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  }
                },
                "additionalProperties": false
              }
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              }
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  }
                },
                "additionalProperties": false
              }
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name"
                  }
                },
                "additionalProperties": false
              }
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.33",
        "max-ver": "2.36"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ]
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fixed_ip": {
                        "type": "string",
                        "oneOf": [
                          {
                            "format": "ipv4"
                          },
                          {
                            "format": "ipv6"
                          }
                        ]
                      },
                      "port": {
                        "oneOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "uuid": {
                        "type": "string",
                        "format": "uuid"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "type": "string",
                  "enum": [
                    "none",
                    "auto"
                  ]
                }
              ]
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              }
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  }
                },
                "additionalProperties": false
              }
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name"
                  }
                },
                "additionalProperties": false
              }
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef",
            "networks"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.37",
        "max-ver": "2.41"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ]
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fixed_ip": {
                        "type": "string",
                        "oneOf": [
                          {
                            "format": "ipv4"
                          },
                          {
                            "format": "ipv6"
                          }
                        ]
                      },
                      "port": {
                        "oneOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "uuid": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "tag": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60,
                        "pattern": "^[^,/]*$"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "type": "string",
                  "enum": [
                    "none",
                    "auto"
                  ]
                }
              ]
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              }
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  }
                },
                "additionalProperties": false
              }
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name"
                  }
                },
                "additionalProperties": false
              }
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef",
            "networks"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.42",
        "max-ver": "2.51"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ]
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fixed_ip": {
                        "type": "string",
                        "oneOf": [
                          {
                            "format": "ipv4"
                          },
                          {
                            "format": "ipv6"
                          }
                        ]
                      },
                      "port": {
                        "oneOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "uuid": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "tag": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60,
                        "pattern": "^[^,/]*$"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "type": "string",
                  "enum": [
                    "none",
                    "auto"
                  ]
                }
              ]
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              }
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  }
                },
                "additionalProperties": false
              }
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name"
                  }
                },
                "additionalProperties": false
              }
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 60,
                "pattern": "^[^,/]*$"
              },
              "maxItems": 50
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef",
            "networks"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.52",
        "max-ver": "2.56"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ]
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fixed_ip": {
                        "type": "string",
                        "oneOf": [
                          {
                            "format": "ipv4"
                          },
                          {
                            "format": "ipv6"
                          }
                        ]
                      },
                      "port": {
                        "oneOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "uuid": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "tag": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60,
                        "pattern": "^[^,/]*$"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "type": "string",
                  "enum": [
                    "none",
                    "auto"
                  ]
                }
              ]
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  }
                },
                "additionalProperties": false
              }
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name"
                  }
                },
                "additionalProperties": false
              }
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 60,
                "pattern": "^[^,/]*$"
              },
              "maxItems": 50
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef",
            "networks"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.57",
        "max-ver": "2.62"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ]
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fixed_ip": {
                        "type": "string",
                        "oneOf": [
                          {
                            "format": "ipv4"
                          },
                          {
                            "format": "ipv6"
                          }
                        ]
                      },
                      "port": {
                        "oneOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "uuid": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "tag": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60,
                        "pattern": "^[^,/]*$"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "type": "string",
                  "enum": [
                    "none",
                    "auto"
                  ]
                }
              ]
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  }
                },
                "additionalProperties": false
              }
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name"
                  }
                },
                "additionalProperties": false
              }
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 60,
                "pattern": "^[^,/]*$"
              },
              "maxItems": 50
            },
            "trusted_image_certificates": {
              "type": [
                "array",
                "null"
              ],
              "minItems": 1,
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "minLength": 1
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef",
            "networks"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.63",
        "max-ver": "2.66"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ]
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fixed_ip": {
                        "type": "string",
                        "oneOf": [
                          {
                            "format": "ipv4"
                          },
                          {
                            "format": "ipv6"
                          }
                        ]
                      },
                      "port": {
                        "oneOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "uuid": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "tag": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60,
                        "pattern": "^[^,/]*$"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "type": "string",
                  "enum": [
                    "none",
                    "auto"
                  ]
                }
              ]
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  },
                  "volume_type": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "minLength": 0,
                    "maxLength": 255
                  }
                },
                "additionalProperties": false
              }
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name"
                  }
                },
                "additionalProperties": false
              }
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 60,
                "pattern": "^[^,/]*$"
              },
              "maxItems": 50
            },
            "trusted_image_certificates": {
              "type": [
                "array",
                "null"
              ],
              "minItems": 1,
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "minLength": 1
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef",
            "networks"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.67",
        "max-ver": "2.73"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ]
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fixed_ip": {
                        "type": "string",
                        "oneOf": [
                          {
                            "format": "ipv4"
                          },
                          {
                            "format": "ipv6"
                          }
                        ]
                      },
                      "port": {
                        "oneOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "uuid": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "tag": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60,
                        "pattern": "^[^,/]*$"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "type": "string",
                  "enum": [
                    "none",
                    "auto"
                  ]
                }
              ]
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  },
                  "volume_type": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "minLength": 0,
                    "maxLength": 255
                  }
                },
                "additionalProperties": false
              }
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name"
                  }
                },
                "additionalProperties": false
              }
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 60,
                "pattern": "^[^,/]*$"
              },
              "maxItems": 50
            },
            "trusted_image_certificates": {
              "type": [
                "array",
                "null"
              ],
              "minItems": 1,
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "minLength": 1
              }
            },
            "host": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$"
            },
            "hypervisor_hostname": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef",
            "networks"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.74",
        "max-ver": "2.89"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ]
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fixed_ip": {
                        "type": "string",
                        "oneOf": [
                          {
                            "format": "ipv4"
                          },
                          {
                            "format": "ipv6"
                          }
                        ]
                      },
                      "port": {
                        "oneOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "uuid": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "tag": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60,
                        "pattern": "^[^,/]*$"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "type": "string",
                  "enum": [
                    "none",
                    "auto"
                  ]
                }
              ]
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  },
                  "volume_type": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "minLength": 0,
                    "maxLength": 255
                  }
                },
                "additionalProperties": false
              }
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name"
                  }
                },
                "additionalProperties": false
              }
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 60,
                "pattern": "^[^,/]*$"
              },
              "maxItems": 50
            },
            "trusted_image_certificates": {
              "type": [
                "array",
                "null"
              ],
              "minItems": 1,
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "minLength": 1
              }
            },
            "host": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$"
            },
            "hypervisor_hostname": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$"
            },
            "hostname": {
              "type": "string",
              "minLength": 2,
              "maxLength": 63,
              "pattern": "^[a-zA-Z0-9]+[a-zA-Z0-9-]*[a-zA-Z0-9]+$"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef",
            "networks"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.90",
        "max-ver": "2.93"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ]
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fixed_ip": {
                        "type": "string",
                        "oneOf": [
                          {
                            "format": "ipv4"
                          },
                          {
                            "format": "ipv6"
                          }
                        ]
                      },
                      "port": {
                        "oneOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "uuid": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "tag": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60,
                        "pattern": "^[^,/]*$"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "type": "string",
                  "enum": [
                    "none",
                    "auto"
                  ]
                }
              ]
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  },
                  "volume_type": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "minLength": 0,
                    "maxLength": 255
                  }
                },
                "additionalProperties": false
              }
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name"
                  }
                },
                "additionalProperties": false
              }
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 60,
                "pattern": "^[^,/]*$"
              },
              "maxItems": 50
            },
            "trusted_image_certificates": {
              "type": [
                "array",
                "null"
              ],
              "minItems": 1,
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "minLength": 1
              }
            },
            "host": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$"
            },
            "hypervisor_hostname": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$"
            },
            "hostname": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef",
            "networks"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid"
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ]
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "query": {
              "type": [
                "string",
                "object"
              ]
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$"
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.94"
      },
      "required": [
        "server"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion"
  }
}

Responses

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot:post operation"
}
400

Error

403

Error

409

Error

Returns a list of server details for a given user.

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/detail:get operation"
}
400

Error

403

Error

Returns server details by server id.

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id:get operation"
}
404

Error

Update server then pass on to version-specific controller.

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id} API

server

body

object

server.name

body

string

server.OS-DCF:diskConfig

body

string

server.accessIPv4

body

string

server.accessIPv6

body

string

server.description

body

[‘string’, ‘null’]

server.hostname

body

string

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name_with_leading_trailing_spaces"
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.0"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.1",
        "max-ver": "2.18"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.19",
        "max-ver": "2.89"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            },
            "hostname": {
              "type": "string",
              "minLength": 2,
              "maxLength": 63,
              "pattern": "^[a-zA-Z0-9]+[a-zA-Z0-9-]*[a-zA-Z0-9]+$"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.90",
        "max-ver": "2.93"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            },
            "hostname": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.94"
      },
      "required": [
        "server"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion"
  }
}

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id:put operation"
}
404

Error

Destroys a server.

Responses

204

Ok

404

Error

409

Error

`confirmResize` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

{
  "type": "object",
  "properties": {
    "confirmResize": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "confirmResize"
  },
  "required": [
    "confirmResize"
  ]
}

Responses

201

Ok

202

Ok

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`revertResize` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

{
  "type": "object",
  "properties": {
    "revertResize": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "revertResize"
  },
  "required": [
    "revertResize"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:revertResize action",
  "x-openstack": {
    "action-name": "revertResize"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`reboot` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

reboot

body

object

reboot.type

body

string

{
  "type": "object",
  "properties": {
    "reboot": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "HARD",
            "Hard",
            "hard",
            "SOFT",
            "Soft",
            "soft"
          ]
        }
      },
      "additionalProperties": false,
      "required": [
        "type"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "reboot"
  },
  "required": [
    "reboot"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:reboot action",
  "x-openstack": {
    "action-name": "reboot"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`resize` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

resize

body

object

resize.flavorRef

body

[‘string’, ‘integer’]

resize.OS-DCF:diskConfig

body

string

{
  "type": "object",
  "properties": {
    "resize": {
      "type": "object",
      "properties": {
        "flavorRef": {
          "type": [
            "string",
            "integer"
          ],
          "minLength": 1
        },
        "OS-DCF:diskConfig": {
          "type": "string",
          "enum": [
            "AUTO",
            "MANUAL"
          ]
        }
      },
      "additionalProperties": false,
      "required": [
        "flavorRef"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "resize"
  },
  "required": [
    "resize"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:resize action",
  "x-openstack": {
    "action-name": "resize"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`rebuild` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

rebuild

body

object

rebuild.name

body

string

rebuild.imageRef

body

string

rebuild.adminPass

body

string

rebuild.metadata

body

object

rebuild.preserve_ephemeral

body

[‘boolean’, ‘string’]

rebuild.OS-DCF:diskConfig

body

string

rebuild.accessIPv4

body

string

rebuild.accessIPv6

body

string

rebuild.personality

body

array

rebuild.personality[].path

body

string

rebuild.personality[].contents

body

string

rebuild.personality

body

array

rebuild.personality

body

array

rebuild.description

body

[‘string’, ‘null’]

rebuild.personality

body

array

rebuild.trusted_image_certificates

body

[‘array’, ‘null’]

rebuild.hostname

body

string

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "rebuild": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name_with_leading_trailing_spaces"
            },
            "imageRef": {
              "type": "string",
              "format": "uuid"
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "preserve_ephemeral": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "imageRef"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.0",
        "action-name": "rebuild"
      },
      "required": [
        "rebuild"
      ]
    },
    {
      "type": "object",
      "properties": {
        "rebuild": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "type": "string",
              "format": "uuid"
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "preserve_ephemeral": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "imageRef"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.1",
        "max-ver": "2.18",
        "action-name": "rebuild"
      },
      "required": [
        "rebuild"
      ]
    },
    {
      "type": "object",
      "properties": {
        "rebuild": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "type": "string",
              "format": "uuid"
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "preserve_ephemeral": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              }
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            }
          },
          "additionalProperties": false,
          "required": [
            "imageRef"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.19",
        "max-ver": "2.53",
        "action-name": "rebuild"
      },
      "required": [
        "rebuild"
      ]
    },
    {
      "type": "object",
      "properties": {
        "rebuild": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "type": "string",
              "format": "uuid"
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "preserve_ephemeral": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              }
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            },
            "key_name": {
              "oneOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "additionalProperties": false,
          "required": [
            "imageRef"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.54",
        "max-ver": "2.56",
        "action-name": "rebuild"
      },
      "required": [
        "rebuild"
      ]
    },
    {
      "type": "object",
      "properties": {
        "rebuild": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "type": "string",
              "format": "uuid"
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "preserve_ephemeral": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            },
            "key_name": {
              "oneOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255
                },
                {
                  "type": "null"
                }
              ]
            },
            "user_data": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "base64",
                  "maxLength": 65535
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "additionalProperties": false,
          "required": [
            "imageRef"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.57",
        "max-ver": "2.62",
        "action-name": "rebuild"
      },
      "required": [
        "rebuild"
      ]
    },
    {
      "type": "object",
      "properties": {
        "rebuild": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "type": "string",
              "format": "uuid"
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "preserve_ephemeral": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            },
            "key_name": {
              "oneOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255
                },
                {
                  "type": "null"
                }
              ]
            },
            "user_data": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "base64",
                  "maxLength": 65535
                },
                {
                  "type": "null"
                }
              ]
            },
            "trusted_image_certificates": {
              "type": [
                "array",
                "null"
              ],
              "minItems": 1,
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "minLength": 1
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "imageRef"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.63",
        "max-ver": "2.89",
        "action-name": "rebuild"
      },
      "required": [
        "rebuild"
      ]
    },
    {
      "type": "object",
      "properties": {
        "rebuild": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "type": "string",
              "format": "uuid"
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "preserve_ephemeral": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            },
            "key_name": {
              "oneOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255
                },
                {
                  "type": "null"
                }
              ]
            },
            "user_data": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "base64",
                  "maxLength": 65535
                },
                {
                  "type": "null"
                }
              ]
            },
            "trusted_image_certificates": {
              "type": [
                "array",
                "null"
              ],
              "minItems": 1,
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "minLength": 1
              }
            },
            "hostname": {
              "type": "string",
              "minLength": 2,
              "maxLength": 63,
              "pattern": "^[a-zA-Z0-9]+[a-zA-Z0-9-]*[a-zA-Z0-9]+$"
            }
          },
          "additionalProperties": false,
          "required": [
            "imageRef"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.90",
        "max-ver": "2.93",
        "action-name": "rebuild"
      },
      "required": [
        "rebuild"
      ]
    },
    {
      "type": "object",
      "properties": {
        "rebuild": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "imageRef": {
              "type": "string",
              "format": "uuid"
            },
            "adminPass": {
              "type": "string"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "preserve_ephemeral": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4"
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6"
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$"
            },
            "key_name": {
              "oneOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255
                },
                {
                  "type": "null"
                }
              ]
            },
            "user_data": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "base64",
                  "maxLength": 65535
                },
                {
                  "type": "null"
                }
              ]
            },
            "trusted_image_certificates": {
              "type": [
                "array",
                "null"
              ],
              "minItems": 1,
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "minLength": 1
              }
            },
            "hostname": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$"
            }
          },
          "additionalProperties": false,
          "required": [
            "imageRef"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.94",
        "action-name": "rebuild"
      },
      "required": [
        "rebuild"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion",
    "action-name": "rebuild"
  }
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:rebuild action",
  "x-openstack": {
    "action-name": "rebuild"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`createImage` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

createImage

body

object

createImage.name

body

string

createImage.metadata

body

object

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "createImage": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "name"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.0",
        "action-name": "createImage"
      },
      "required": [
        "createImage"
      ]
    },
    {
      "type": "object",
      "properties": {
        "createImage": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "name"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.1",
        "action-name": "createImage"
      },
      "required": [
        "createImage"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion",
    "action-name": "createImage"
  }
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:createImage action",
  "x-openstack": {
    "action-name": "createImage"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`os-start` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

{
  "type": "object",
  "properties": {
    "os-start": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "os-start"
  },
  "required": [
    "os-start"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:os-start action",
  "x-openstack": {
    "action-name": "os-start"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`os-stop` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

{
  "type": "object",
  "properties": {
    "os-stop": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "os-stop"
  },
  "required": [
    "os-stop"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:os-stop action",
  "x-openstack": {
    "action-name": "os-stop"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`trigger_crash_dump` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

trigger_crash_dump

body

null

{
  "type": "object",
  "properties": {
    "trigger_crash_dump": {
      "type": "null"
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.17",
    "action-name": "trigger_crash_dump"
  },
  "required": [
    "trigger_crash_dump"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:trigger_crash_dump action",
  "x-openstack": {
    "action-name": "trigger_crash_dump"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`resetNetwork` action

Empty body for resetNetwork action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

resetNetwork

body

null

{
  "type": "object",
  "description": "Empty body for resetNetwork action",
  "properties": {
    "resetNetwork": {
      "type": "null"
    }
  },
  "x-openstack": {
    "action-name": "resetNetwork"
  }
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:resetNetwork action",
  "x-openstack": {
    "action-name": "resetNetwork"
  }
}
202

Ok

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`injectNetworkInfo` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

{
  "type": "object",
  "properties": {
    "injectNetworkInfo": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "injectNetworkInfo"
  },
  "required": [
    "injectNetworkInfo"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:injectNetworkInfo action",
  "x-openstack": {
    "action-name": "injectNetworkInfo"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`os-resetState` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

os-resetState

body

object

os-resetState.state

body

string

{
  "type": "object",
  "properties": {
    "os-resetState": {
      "type": "object",
      "properties": {
        "state": {
          "type": "string",
          "enum": [
            "active",
            "error"
          ]
        }
      },
      "additionalProperties": false,
      "required": [
        "state"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "os-resetState"
  },
  "required": [
    "os-resetState"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:os-resetState action",
  "x-openstack": {
    "action-name": "os-resetState"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`changePassword` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

changePassword

body

object

changePassword.adminPass

body

string

{
  "type": "object",
  "properties": {
    "changePassword": {
      "type": "object",
      "properties": {
        "adminPass": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "required": [
        "adminPass"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "changePassword"
  },
  "required": [
    "changePassword"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:changePassword action",
  "x-openstack": {
    "action-name": "changePassword"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`os-getConsoleOutput` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

os-getConsoleOutput

body

object

os-getConsoleOutput.length

body

[‘integer’, ‘string’, ‘null’]

{
  "type": "object",
  "properties": {
    "os-getConsoleOutput": {
      "type": "object",
      "properties": {
        "length": {
          "type": [
            "integer",
            "string",
            "null"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "os-getConsoleOutput"
  },
  "required": [
    "os-getConsoleOutput"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:os-getConsoleOutput action",
  "x-openstack": {
    "action-name": "os-getConsoleOutput"
  }
}
202

Ok

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`createBackup` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

createBackup

body

object

createBackup.name

body

string

createBackup.backup_type

body

string

createBackup.rotation

body

[‘integer’, ‘string’]

createBackup.metadata

body

object

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "createBackup": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name_with_leading_trailing_spaces"
            },
            "backup_type": {
              "type": "string"
            },
            "rotation": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 0,
              "minLength": 1
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "backup_type",
            "rotation"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.0",
        "action-name": "createBackup"
      },
      "required": [
        "createBackup"
      ]
    },
    {
      "type": "object",
      "properties": {
        "createBackup": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            },
            "backup_type": {
              "type": "string"
            },
            "rotation": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 0,
              "minLength": 1
            },
            "metadata": {
              "type": "object",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "backup_type",
            "rotation"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.1",
        "action-name": "createBackup"
      },
      "required": [
        "createBackup"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion",
    "action-name": "createBackup"
  }
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:createBackup action",
  "x-openstack": {
    "action-name": "createBackup"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`restore` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

{
  "type": "object",
  "properties": {
    "restore": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "restore"
  },
  "required": [
    "restore"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:restore action",
  "x-openstack": {
    "action-name": "restore"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`forceDelete` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

{
  "type": "object",
  "properties": {
    "forceDelete": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "forceDelete"
  },
  "required": [
    "forceDelete"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:forceDelete action",
  "x-openstack": {
    "action-name": "forceDelete"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`evacuate` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

evacuate

body

object

evacuate.host

body

string

evacuate.onSharedStorage

body

[‘boolean’, ‘string’]

evacuate.adminPass

body

string

evacuate.force

body

[‘boolean’, ‘string’]

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "evacuate": {
          "type": "object",
          "properties": {
            "host": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$"
            },
            "onSharedStorage": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "adminPass": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "required": [
            "onSharedStorage"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.13",
        "action-name": "evacuate"
      },
      "required": [
        "evacuate"
      ]
    },
    {
      "type": "object",
      "properties": {
        "evacuate": {
          "type": "object",
          "properties": {
            "host": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$"
            },
            "adminPass": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.14",
        "max-ver": "2.28",
        "action-name": "evacuate"
      },
      "required": [
        "evacuate"
      ]
    },
    {
      "type": "object",
      "properties": {
        "evacuate": {
          "type": "object",
          "properties": {
            "host": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$"
            },
            "adminPass": {
              "type": "string"
            },
            "force": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.29",
        "max-ver": "2.67",
        "action-name": "evacuate"
      },
      "required": [
        "evacuate"
      ]
    },
    {
      "type": "object",
      "properties": {
        "evacuate": {
          "type": "object",
          "properties": {
            "host": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$"
            },
            "adminPass": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.68",
        "max-ver": "2.94",
        "action-name": "evacuate"
      },
      "required": [
        "evacuate"
      ]
    },
    {
      "type": "object",
      "properties": {
        "evacuate": {
          "type": "object",
          "properties": {
            "host": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$"
            },
            "adminPass": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.95",
        "action-name": "evacuate"
      },
      "required": [
        "evacuate"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion",
    "action-name": "evacuate"
  }
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:evacuate action",
  "x-openstack": {
    "action-name": "evacuate"
  }
}
202

Ok

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`addFloatingIp` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

addFloatingIp

body

object

addFloatingIp.address

body

string

addFloatingIp.fixed_address

body

string

{
  "type": "object",
  "properties": {
    "addFloatingIp": {
      "type": "object",
      "properties": {
        "address": {
          "type": "string",
          "oneOf": [
            {
              "format": "ipv4"
            },
            {
              "format": "ipv6"
            }
          ]
        },
        "fixed_address": {
          "type": "string",
          "oneOf": [
            {
              "format": "ipv4"
            },
            {
              "format": "ipv6"
            }
          ]
        }
      },
      "additionalProperties": false,
      "required": [
        "address"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.43",
    "action-name": "addFloatingIp"
  },
  "required": [
    "addFloatingIp"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:addFloatingIp action",
  "x-openstack": {
    "action-name": "addFloatingIp"
  }
}
202

Ok

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`removeFloatingIp` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

removeFloatingIp

body

object

removeFloatingIp.address

body

string

{
  "type": "object",
  "properties": {
    "removeFloatingIp": {
      "type": "object",
      "properties": {
        "address": {
          "type": "string",
          "oneOf": [
            {
              "format": "ipv4"
            },
            {
              "format": "ipv6"
            }
          ]
        }
      },
      "additionalProperties": false,
      "required": [
        "address"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.43",
    "action-name": "removeFloatingIp"
  },
  "required": [
    "removeFloatingIp"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:removeFloatingIp action",
  "x-openstack": {
    "action-name": "removeFloatingIp"
  }
}
202

Ok

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`lock` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

lock

body

[‘object’, ‘null’]

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "lock": {}
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.1",
        "max-ver": "2.72",
        "action-name": "lock"
      },
      "required": [
        "lock"
      ]
    },
    {
      "type": "object",
      "properties": {
        "lock": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "locked_reason": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.73",
        "action-name": "lock"
      },
      "required": [
        "lock"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion",
    "action-name": "lock"
  }
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:lock action",
  "x-openstack": {
    "action-name": "lock"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`unlock` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

{
  "type": "object",
  "properties": {
    "unlock": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.72",
    "action-name": "unlock"
  },
  "required": [
    "unlock"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:unlock action",
  "x-openstack": {
    "action-name": "unlock"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`migrate` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

migrate

body

[‘object’, ‘null’]

{
  "type": "object",
  "properties": {
    "migrate": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "host": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 1,
          "maxLength": 255,
          "pattern": "^[a-zA-Z0-9-._]*$"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.56",
    "action-name": "migrate"
  },
  "required": [
    "migrate"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:migrate action",
  "x-openstack": {
    "action-name": "migrate"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`os-migrateLive` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

os-migrateLive

body

object

os-migrateLive.block_migration

body

[‘boolean’, ‘string’]

os-migrateLive.disk_over_commit

body

[‘boolean’, ‘string’]

os-migrateLive.host

body

[‘string’, ‘null’]

os-migrateLive.force

body

[‘boolean’, ‘string’]

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "os-migrateLive": {
          "type": "object",
          "properties": {
            "block_migration": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "disk_over_commit": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            },
            "host": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$"
            }
          },
          "additionalProperties": false,
          "required": [
            "block_migration",
            "disk_over_commit",
            "host"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.24",
        "action-name": "os-migrateLive"
      },
      "required": [
        "os-migrateLive"
      ]
    },
    {
      "type": "object",
      "properties": {
        "os-migrateLive": {
          "type": "object",
          "properties": {
            "block_migration": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no",
                "auto"
              ]
            },
            "host": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$"
            }
          },
          "additionalProperties": false,
          "required": [
            "block_migration",
            "host"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.25",
        "max-ver": "2.29",
        "action-name": "os-migrateLive"
      },
      "required": [
        "os-migrateLive"
      ]
    },
    {
      "type": "object",
      "properties": {
        "os-migrateLive": {
          "type": "object",
          "properties": {
            "block_migration": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no",
                "auto"
              ]
            },
            "host": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$"
            },
            "force": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ]
            }
          },
          "additionalProperties": false,
          "required": [
            "block_migration",
            "host"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.30",
        "max-ver": "2.67",
        "action-name": "os-migrateLive"
      },
      "required": [
        "os-migrateLive"
      ]
    },
    {
      "type": "object",
      "properties": {
        "os-migrateLive": {
          "type": "object",
          "properties": {
            "block_migration": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no",
                "auto"
              ]
            },
            "host": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$"
            }
          },
          "additionalProperties": false,
          "required": [
            "block_migration",
            "host"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.68",
        "action-name": "os-migrateLive"
      },
      "required": [
        "os-migrateLive"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion",
    "action-name": "os-migrateLive"
  }
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:os-migrateLive action",
  "x-openstack": {
    "action-name": "os-migrateLive"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`addFixedIp` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

addFixedIp

body

object

addFixedIp.networkId

body

[‘string’, ‘number’]

{
  "type": "object",
  "properties": {
    "addFixedIp": {
      "type": "object",
      "properties": {
        "networkId": {
          "type": [
            "string",
            "number"
          ],
          "minLength": 1,
          "maxLength": 36
        }
      },
      "additionalProperties": false,
      "required": [
        "networkId"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.43",
    "action-name": "addFixedIp"
  },
  "required": [
    "addFixedIp"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:addFixedIp action",
  "x-openstack": {
    "action-name": "addFixedIp"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`removeFixedIp` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

removeFixedIp

body

object

removeFixedIp.address

body

string

{
  "type": "object",
  "properties": {
    "removeFixedIp": {
      "type": "object",
      "properties": {
        "address": {
          "type": "string",
          "oneOf": [
            {
              "format": "ipv4"
            },
            {
              "format": "ipv6"
            }
          ]
        }
      },
      "additionalProperties": false,
      "required": [
        "address"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.43",
    "action-name": "removeFixedIp"
  },
  "required": [
    "removeFixedIp"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:removeFixedIp action",
  "x-openstack": {
    "action-name": "removeFixedIp"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`pause` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

{
  "type": "object",
  "properties": {
    "pause": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "pause"
  },
  "required": [
    "pause"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:pause action",
  "x-openstack": {
    "action-name": "pause"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`unpause` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

{
  "type": "object",
  "properties": {
    "unpause": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "unpause"
  },
  "required": [
    "unpause"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:unpause action",
  "x-openstack": {
    "action-name": "unpause"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`os-getVNCConsole` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

os-getVNCConsole

body

object

os-getVNCConsole.type

body

string

{
  "type": "object",
  "properties": {
    "os-getVNCConsole": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "novnc",
            "xvpvnc"
          ]
        }
      },
      "additionalProperties": false,
      "required": [
        "type"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.5",
    "action-name": "os-getVNCConsole"
  },
  "required": [
    "os-getVNCConsole"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:os-getVNCConsole action",
  "x-openstack": {
    "action-name": "os-getVNCConsole"
  }
}
202

Ok

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`os-getSPICEConsole` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

os-getSPICEConsole

body

object

os-getSPICEConsole.type

body

string

{
  "type": "object",
  "properties": {
    "os-getSPICEConsole": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "spice-html5"
          ]
        }
      },
      "additionalProperties": false,
      "required": [
        "type"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.5",
    "action-name": "os-getSPICEConsole"
  },
  "required": [
    "os-getSPICEConsole"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:os-getSPICEConsole action",
  "x-openstack": {
    "action-name": "os-getSPICEConsole"
  }
}
202

Ok

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`os-getRDPConsole` action

Empty body for os-getRDPConsole action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

os-getRDPConsole

body

null

{
  "type": "object",
  "description": "Empty body for os-getRDPConsole action",
  "properties": {
    "os-getRDPConsole": {
      "type": "null"
    }
  },
  "x-openstack": {
    "action-name": "os-getRDPConsole"
  }
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:os-getRDPConsole action",
  "x-openstack": {
    "action-name": "os-getRDPConsole"
  }
}
202

Ok

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`os-getSerialConsole` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

os-getSerialConsole

body

object

os-getSerialConsole.type

body

string

{
  "type": "object",
  "properties": {
    "os-getSerialConsole": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "serial"
          ]
        }
      },
      "additionalProperties": false,
      "required": [
        "type"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.5",
    "action-name": "os-getSerialConsole"
  },
  "required": [
    "os-getSerialConsole"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:os-getSerialConsole action",
  "x-openstack": {
    "action-name": "os-getSerialConsole"
  }
}
202

Ok

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`rescue` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

rescue

body

[‘object’, ‘null’]

{
  "type": "object",
  "properties": {
    "rescue": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "adminPass": {
          "type": "string"
        },
        "rescue_image_ref": {
          "type": "string",
          "format": "uuid"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "rescue"
  },
  "required": [
    "rescue"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:rescue action",
  "x-openstack": {
    "action-name": "rescue"
  }
}
202

Ok

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`unrescue` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

{
  "type": "object",
  "properties": {
    "unrescue": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "unrescue"
  },
  "required": [
    "unrescue"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:unrescue action",
  "x-openstack": {
    "action-name": "unrescue"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`addSecurityGroup` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

name

body

string

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    }
  },
  "additionalProperties": true,
  "x-openstack": {
    "action-name": "addSecurityGroup"
  }
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:addSecurityGroup action",
  "x-openstack": {
    "action-name": "addSecurityGroup"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`removeSecurityGroup` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

name

body

string

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1
    }
  },
  "additionalProperties": true,
  "x-openstack": {
    "action-name": "removeSecurityGroup"
  }
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:removeSecurityGroup action",
  "x-openstack": {
    "action-name": "removeSecurityGroup"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`shelve` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

{
  "type": "object",
  "properties": {
    "shelve": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "shelve"
  },
  "required": [
    "shelve"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:shelve action",
  "x-openstack": {
    "action-name": "shelve"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`shelveOffload` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

{
  "type": "object",
  "properties": {
    "shelveOffload": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "shelveOffload"
  },
  "required": [
    "shelveOffload"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:shelveOffload action",
  "x-openstack": {
    "action-name": "shelveOffload"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`unshelve` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

unshelve

body

[‘object’, ‘null’]

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "unshelve": {}
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.1",
        "max-ver": "2.76",
        "action-name": "unshelve"
      },
      "required": [
        "unshelve"
      ]
    },
    {
      "type": "object",
      "properties": {
        "unshelve": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            }
          },
          "required": [
            "availability_zone"
          ],
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.77",
        "max-ver": "2.90",
        "action-name": "unshelve"
      },
      "required": [
        "unshelve"
      ]
    },
    {
      "type": "object",
      "properties": {
        "unshelve": {
          "oneOf": [
            {
              "type": [
                "object"
              ],
              "properties": {
                "availability_zone": {
                  "oneOf": [
                    {
                      "type": [
                        "null"
                      ]
                    },
                    {
                      "type": "string"
                    }
                  ]
                },
                "host": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": [
                "null"
              ]
            }
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.91",
        "action-name": "unshelve"
      },
      "required": [
        "unshelve"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion",
    "action-name": "unshelve"
  }
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:unshelve action",
  "x-openstack": {
    "action-name": "unshelve"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`suspend` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

{
  "type": "object",
  "properties": {
    "suspend": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "suspend"
  },
  "required": [
    "suspend"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:suspend action",
  "x-openstack": {
    "action-name": "suspend"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`resume` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/os-volumes_boot/{id}/action API

{
  "type": "object",
  "properties": {
    "resume": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "resume"
  },
  "required": [
    "resume"
  ]
}

Responses

201

Ok

202

Ok

{
  "type": "object",
  "description": "Response of the os-volumes_boot/id/action:post:resume action",
  "x-openstack": {
    "action-name": "resume"
  }
}
204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

servers

List Servers

Lists IDs, names, and links for servers.

By default the servers are filtered using the project ID associated with the authenticated request.

Servers contain a status attribute that indicates the current server state. You can filter on the server status when you complete a list servers request. The server status is returned in the response body. The possible server status values are:

There is whitelist for valid filter keys. Any filter key other than from whitelist will be silently ignored.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "servers": {
      "type": "array",
      "items": {
        "type": "object",
        "description": "Server object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "The UUID of the server."
          },
          "name": {
            "type": "string",
            "format": "uuid",
            "description": "The server name."
          }
        }
      },
      "description": "A list of `server` objects."
    },
    "servers_links": {
      "type": "array",
      "description": "Links pertaining to usage. See [API Guide / Links and\nReferences](https://docs.openstack.org/api-guide/compute/links_and_references.html)\nfor more info.\n\n\n**New in version 2\\.40**",
      "items": {
        "type": "object",
        "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
        "properties": {
          "href": {
            "type": "string",
            "format": "uri"
          },
          "rel": {
            "type": "string"
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

servers

body

array

A list of server objects.

servers[].id

body

string

The UUID of the server.

servers[].name

body

string

The server name.

servers_links

body

array

Links pertaining to usage. See API Guide / Links and References for more info.

New in version 2.40

servers_links[].href

body

string

servers_links[].rel

body

string

400

Error

403

Error

Create Server

Creates a server.

The progress of this operation depends on the location of the requested image, network I/O, host load, selected flavor, and other factors.

To check the progress of the request, make a GET /servers/{id} request. This call returns a progress attribute, which is a percentage value from 0 to 100.

The Location header returns the full URL to the newly created server and is available as a self and bookmark link in the server representation.

When you create a server, the response shows only the server ID, its links, and the admin password. You can get additional attributes through subsequent GET requests on the server.

Include the block_device_mapping_v2 parameter in the create request body to boot a server from a volume.

Include the key_name parameter in the create request body to add a keypair to the server when you create it. To create a keypair, make a create keypair request.

Preconditions

Asynchronous postconditions

Troubleshooting

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

server

body

object

A server object.

server.name

body

string

Key pair name.

Note

The null value was allowed in the Nova legacy v2 API, but due to strict input validation, it is not allowed in the Nova v2.1 API.

server.flavorRef

body

[‘string’, ‘integer’]

The flavor reference, as an ID (including a UUID) or full URL, for the flavor for your server instance.

server.adminPass

body

string

The administrative password of the server. If you omit this parameter, the operation generates a new password.

server.metadata

body

object

Metadata key and value pairs. The maximum size of the metadata key and value is 255 bytes each.

server.networks

body

array

A list of network object. Required parameter when there are multiple networks defined for the tenant. When you do not specify the networks parameter, the server attaches to the only network created for the current tenant. Optionally, you can create one or more NICs on the server. To provision the server instance with a NIC for a network, specify the UUID of the network in the uuid attribute in a networks object. To provision the server instance with a NIC for an already existing port, specify the port-id in the port attribute in a networks object.

If multiple networks are defined, the order in which they appear in the guest operating system will not necessarily reflect the order in which they are given in the server boot request. Guests should therefore not depend on device order to deduce any information about their network devices. Instead, device role tags should be used: introduced in 2.32, broken in 2.37, and re-introduced and fixed in 2.42, the tag is an optional, string attribute that can be used to assign a tag to a virtual network interface. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that network interface, such as bus (ex: PCI), bus address (ex: 0000:00:02.0), and MAC address.

A bug has caused the tag attribute to no longer be accepted starting with version 2.37. Therefore, network interfaces could only be tagged in versions 2.32 to 2.36 inclusively. Version 2.42 has restored the tag attribute.

Starting with microversion 2.37, this field is required and the special string values auto and none can be specified for networks. auto tells the Compute service to use a network that is available to the project, if one exists. If one does not exist, the Compute service will attempt to automatically allocate a network for the project (if possible). none tells the Compute service to not allocate a network for the instance. The auto and none values cannot be used with any other network values, including other network uuids, ports, fixed IPs or device tags. These are requested as strings for the networks value, not in a list. See the associated example.

server.networks[].fixed_ip

body

string

Schedule the server on a host in the network specified with this parameter and a cidr (os:scheduler_hints.cidr). It is available when SimpleCIDRAffinityFilter is available on cloud side.

server.networks[].uuid

body

string

server.OS-DCF:diskConfig

body

string

Controls how the API partitions the disk when you create, rebuild, or resize servers. A server inherits the OS-DCF:diskConfig value from the image from which it was created, and an image inherits the OS-DCF:diskConfig value from the server from which it was created. To override the inherited setting, you can include this attribute in the request body of a server create, rebuild, or resize request. If the OS-DCF:diskConfig value for an image is MANUAL, you cannot create a server from that image and set its OS-DCF:diskConfig value to AUTO. A valid value is:

  • AUTO. The API builds the server with a single partition the size of the target flavor disk. The API automatically adjusts the file system to fit the entire partition.

  • MANUAL. The API builds the server by using whatever partition scheme and file system is in the source image. If the target flavor disk is larger, the API does not partition the remaining disk space.

server.accessIPv4

body

string

IPv4 address that should be used to access this server.

server.accessIPv6

body

string

IPv6 address that should be used to access this server.

server.personality

body

array

The file path and contents, text only, to inject into the server at launch. The maximum size of the file path data is 255 bytes. The maximum limit is the number of allowed bytes in the decoded, rather than encoded, data.

Available until version 2.56

server.personality[].path

body

string

server.personality[].contents

body

string

server.availability_zone

body

string

Key pair name.

Note

The null value was allowed in the Nova legacy v2 API, but due to strict input validation, it is not allowed in the Nova v2.1 API.

server.block_device_mapping

body

array

server.block_device_mapping[].virtual_name

body

string

server.block_device_mapping[].volume_id

body

string

server.block_device_mapping[].snapshot_id

body

string

server.block_device_mapping[].volume_size

body

[‘integer’, ‘string’]

server.block_device_mapping[].device_name

body

string

server.block_device_mapping[].delete_on_termination

body

[‘boolean’, ‘string’]

Indicates whether a config drive enables metadata injection. The config_drive setting provides information about a drive that the instance can mount at boot time. The instance reads files from the drive to get information that is normally available through the metadata service. This metadata is different from the user data. Not all cloud providers enable the config_drive. Read more in the OpenStack End User Guide.

server.block_device_mapping[].connection_info

body

string

server.block_device_mapping_v2

body

array

Enables fine grained control of the block device mapping for an instance. This is typically used for booting servers from volumes. An example format would look as follows:

"block_device_mapping_v2": [{
    "boot_index": "0",
    "uuid": "ac408821-c95a-448f-9292-73986c790911",
    "source_type": "image",
    "volume_size": "25",
    "destination_type": "volume",
    "delete_on_termination": true,
    "tag": "disk1",
    "disk_bus": "scsi"}]

In microversion 2.32, tag is an optional string attribute that can be used to assign a tag to the block device. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that block device, such as bus (ex: SCSI), bus address (ex: 1:0:2:0), and serial.

A bug has caused the tag attribute to no longer be accepted starting with version 2.33. It has been restored in version 2.42.

server.block_device_mapping_v2[].virtual_name

body

string

server.block_device_mapping_v2[].volume_id

body

string

server.block_device_mapping_v2[].snapshot_id

body

string

server.block_device_mapping_v2[].volume_size

body

[‘integer’, ‘string’]

server.block_device_mapping_v2[].device_name

body

string

server.block_device_mapping_v2[].delete_on_termination

body

[‘boolean’, ‘string’]

server.block_device_mapping_v2[].connection_info

body

string

server.block_device_mapping_v2[].source_type

body

string

server.block_device_mapping_v2[].uuid

body

string

server.block_device_mapping_v2[].image_id

body

string

server.block_device_mapping_v2[].destination_type

body

string

server.block_device_mapping_v2[].guest_format

body

string

server.block_device_mapping_v2[].device_type

body

string

server.block_device_mapping_v2[].disk_bus

body

string

server.block_device_mapping_v2[].boot_index

body

[‘integer’, ‘string’, ‘null’]

server.config_drive

body

[‘boolean’, ‘string’]

Indicates whether a config drive enables metadata injection. The config_drive setting provides information about a drive that the instance can mount at boot time. The instance reads files from the drive to get information that is normally available through the metadata service. This metadata is different from the user data. Not all cloud providers enable the config_drive. Read more in the OpenStack End User Guide.

server.key_name

body

string

Key pair name.

Note

The null value was allowed in the Nova legacy v2 API, but due to strict input validation, it is not allowed in the Nova v2.1 API.

server.min_count

body

[‘integer’, ‘string’]

server.max_count

body

[‘integer’, ‘string’]

server.return_reservation_id

body

[‘boolean’, ‘string’]

Indicates whether a config drive enables metadata injection. The config_drive setting provides information about a drive that the instance can mount at boot time. The instance reads files from the drive to get information that is normally available through the metadata service. This metadata is different from the user data. Not all cloud providers enable the config_drive. Read more in the OpenStack End User Guide.

server.security_groups

body

array

One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group. Requested security groups are not applied to pre-existing ports.

server.security_groups[].name

body

string

Key pair name.

Note

The null value was allowed in the Nova legacy v2 API, but due to strict input validation, it is not allowed in the Nova v2.1 API.

os:scheduler_hints

body

object

The dictionary of data to send to the scheduler. Alternatively, you can specify OS-SCH-HNT:scheduler_hints as the key in the request body.

Note

This is a top-level key in the request body, not part of the server portion of the request body.

There are a few caveats with scheduler hints:

  • The request validation schema is per hint. For example, some require a single string value, and some accept a list of values.

  • Hints are only used based on the cloud scheduler configuration, which varies per deployment.

  • Hints are pluggable per deployment, meaning that a cloud can have custom hints which may not be available in another cloud.

For these reasons, it is important to consult each cloud’s user documentation to know what is available for scheduler hints.

os:scheduler_hints.group

body

string

The server group UUID. Schedule the server according to a policy of the server group (anti-affinity, affinity, soft-anti-affinity or soft-affinity). It is available when ServerGroupAffinityFilter, ServerGroupAntiAffinityFilter, ServerGroupSoftAntiAffinityWeigher, ServerGroupSoftAffinityWeigher are available on cloud side.

os:scheduler_hints.same_host

body

[‘string’, ‘array’]

A list of server UUIDs or a server UUID. Schedule the server on the same host as another server in a set of servers. It is available when SameHostFilter is available on cloud side.

os:scheduler_hints.query

body

[‘string’, ‘object’]

Schedule the server by using a custom filter in JSON format. For example:

"query": "[\">=\",\"$free_ram_mb\",1024]"

It is available when JsonFilter is available on cloud side.

os:scheduler_hints.target_cell

body

string

A target cell name. Schedule the server in a host in the cell specified. It is available when TargetCellFilter is available on cloud side that is cell v1 environment.

os:scheduler_hints.different_cell

body

[‘string’, ‘array’]

A list of cell routes or a cell route (string). Schedule the server in a cell that is not specified. It is available when DifferentCellFilter is available on cloud side that is cell v1 environment.

os:scheduler_hints.build_near_host_ip

body

string

Schedule the server on a host in the network specified with this parameter and a cidr (os:scheduler_hints.cidr). It is available when SimpleCIDRAffinityFilter is available on cloud side.

os:scheduler_hints.cidr

body

string

Schedule the server on a host in the network specified with an IP address (os:scheduler_hints:build_near_host_ip) and this parameter. If os:scheduler_hints:build_near_host_ip is specified and this parameter is omitted, /24 is used. It is available when SimpleCIDRAffinityFilter is available on cloud side.

OS-SCH-HNT:scheduler_hints

body

object

OS-SCH-HNT:scheduler_hints.group

body

string

The server group UUID. Schedule the server according to a policy of the server group (anti-affinity, affinity, soft-anti-affinity or soft-affinity). It is available when ServerGroupAffinityFilter, ServerGroupAntiAffinityFilter, ServerGroupSoftAntiAffinityWeigher, ServerGroupSoftAffinityWeigher are available on cloud side.

OS-SCH-HNT:scheduler_hints.same_host

body

[‘string’, ‘array’]

A list of server UUIDs or a server UUID. Schedule the server on the same host as another server in a set of servers. It is available when SameHostFilter is available on cloud side.

OS-SCH-HNT:scheduler_hints.query

body

[‘string’, ‘object’]

Schedule the server by using a custom filter in JSON format. For example:

"query": "[\">=\",\"$free_ram_mb\",1024]"

It is available when JsonFilter is available on cloud side.

OS-SCH-HNT:scheduler_hints.target_cell

body

string

A target cell name. Schedule the server in a host in the cell specified. It is available when TargetCellFilter is available on cloud side that is cell v1 environment.

OS-SCH-HNT:scheduler_hints.different_cell

body

[‘string’, ‘array’]

A list of cell routes or a cell route (string). Schedule the server in a cell that is not specified. It is available when DifferentCellFilter is available on cloud side that is cell v1 environment.

OS-SCH-HNT:scheduler_hints.build_near_host_ip

body

string

Schedule the server on a host in the network specified with this parameter and a cidr (os:scheduler_hints.cidr). It is available when SimpleCIDRAffinityFilter is available on cloud side.

OS-SCH-HNT:scheduler_hints.cidr

body

string

Schedule the server on a host in the network specified with an IP address (os:scheduler_hints:build_near_host_ip) and this parameter. If os:scheduler_hints:build_near_host_ip is specified and this parameter is omitted, /24 is used. It is available when SimpleCIDRAffinityFilter is available on cloud side.

server.networks

body

array

A list of network object. Required parameter when there are multiple networks defined for the tenant. When you do not specify the networks parameter, the server attaches to the only network created for the current tenant. Optionally, you can create one or more NICs on the server. To provision the server instance with a NIC for a network, specify the UUID of the network in the uuid attribute in a networks object. To provision the server instance with a NIC for an already existing port, specify the port-id in the port attribute in a networks object.

If multiple networks are defined, the order in which they appear in the guest operating system will not necessarily reflect the order in which they are given in the server boot request. Guests should therefore not depend on device order to deduce any information about their network devices. Instead, device role tags should be used: introduced in 2.32, broken in 2.37, and re-introduced and fixed in 2.42, the tag is an optional, string attribute that can be used to assign a tag to a virtual network interface. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that network interface, such as bus (ex: PCI), bus address (ex: 0000:00:02.0), and MAC address.

A bug has caused the tag attribute to no longer be accepted starting with version 2.37. Therefore, network interfaces could only be tagged in versions 2.32 to 2.36 inclusively. Version 2.42 has restored the tag attribute.

Starting with microversion 2.37, this field is required and the special string values auto and none can be specified for networks. auto tells the Compute service to use a network that is available to the project, if one exists. If one does not exist, the Compute service will attempt to automatically allocate a network for the project (if possible). none tells the Compute service to not allocate a network for the instance. The auto and none values cannot be used with any other network values, including other network uuids, ports, fixed IPs or device tags. These are requested as strings for the networks value, not in a list. See the associated example.

server.personality

body

array

The file path and contents, text only, to inject into the server at launch. The maximum size of the file path data is 255 bytes. The maximum limit is the number of allowed bytes in the decoded, rather than encoded, data.

Available until version 2.56

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

Enables fine grained control of the block device mapping for an instance. This is typically used for booting servers from volumes. An example format would look as follows:

"block_device_mapping_v2": [{
    "boot_index": "0",
    "uuid": "ac408821-c95a-448f-9292-73986c790911",
    "source_type": "image",
    "volume_size": "25",
    "destination_type": "volume",
    "delete_on_termination": true,
    "tag": "disk1",
    "disk_bus": "scsi"}]

In microversion 2.32, tag is an optional string attribute that can be used to assign a tag to the block device. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that block device, such as bus (ex: SCSI), bus address (ex: 1:0:2:0), and serial.

A bug has caused the tag attribute to no longer be accepted starting with version 2.33. It has been restored in version 2.42.

server.security_groups

body

array

One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group. Requested security groups are not applied to pre-existing ports.

server.user_data

body

string

Configuration information or scripts to use upon launch. Must be Base64 encoded. Restricted to 65535 bytes.

Note

The null value allowed in Nova legacy v2 API, but due to the strict input validation, it isn’t allowed in Nova v2.1 API.

server.networks

body

array

A list of network object. Required parameter when there are multiple networks defined for the tenant. When you do not specify the networks parameter, the server attaches to the only network created for the current tenant. Optionally, you can create one or more NICs on the server. To provision the server instance with a NIC for a network, specify the UUID of the network in the uuid attribute in a networks object. To provision the server instance with a NIC for an already existing port, specify the port-id in the port attribute in a networks object.

If multiple networks are defined, the order in which they appear in the guest operating system will not necessarily reflect the order in which they are given in the server boot request. Guests should therefore not depend on device order to deduce any information about their network devices. Instead, device role tags should be used: introduced in 2.32, broken in 2.37, and re-introduced and fixed in 2.42, the tag is an optional, string attribute that can be used to assign a tag to a virtual network interface. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that network interface, such as bus (ex: PCI), bus address (ex: 0000:00:02.0), and MAC address.

A bug has caused the tag attribute to no longer be accepted starting with version 2.37. Therefore, network interfaces could only be tagged in versions 2.32 to 2.36 inclusively. Version 2.42 has restored the tag attribute.

Starting with microversion 2.37, this field is required and the special string values auto and none can be specified for networks. auto tells the Compute service to use a network that is available to the project, if one exists. If one does not exist, the Compute service will attempt to automatically allocate a network for the project (if possible). none tells the Compute service to not allocate a network for the instance. The auto and none values cannot be used with any other network values, including other network uuids, ports, fixed IPs or device tags. These are requested as strings for the networks value, not in a list. See the associated example.

server.personality

body

array

The file path and contents, text only, to inject into the server at launch. The maximum size of the file path data is 255 bytes. The maximum limit is the number of allowed bytes in the decoded, rather than encoded, data.

Available until version 2.56

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

Enables fine grained control of the block device mapping for an instance. This is typically used for booting servers from volumes. An example format would look as follows:

"block_device_mapping_v2": [{
    "boot_index": "0",
    "uuid": "ac408821-c95a-448f-9292-73986c790911",
    "source_type": "image",
    "volume_size": "25",
    "destination_type": "volume",
    "delete_on_termination": true,
    "tag": "disk1",
    "disk_bus": "scsi"}]

In microversion 2.32, tag is an optional string attribute that can be used to assign a tag to the block device. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that block device, such as bus (ex: SCSI), bus address (ex: 1:0:2:0), and serial.

A bug has caused the tag attribute to no longer be accepted starting with version 2.33. It has been restored in version 2.42.

server.security_groups

body

array

One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group. Requested security groups are not applied to pre-existing ports.

server.description

body

[‘string’, ‘null’]

A free form description of the server. Limited to 255 characters in length. Before microversion 2.19 this was set to the server name.

New in version 2.19

server.networks

body

array

A list of network object. Required parameter when there are multiple networks defined for the tenant. When you do not specify the networks parameter, the server attaches to the only network created for the current tenant. Optionally, you can create one or more NICs on the server. To provision the server instance with a NIC for a network, specify the UUID of the network in the uuid attribute in a networks object. To provision the server instance with a NIC for an already existing port, specify the port-id in the port attribute in a networks object.

If multiple networks are defined, the order in which they appear in the guest operating system will not necessarily reflect the order in which they are given in the server boot request. Guests should therefore not depend on device order to deduce any information about their network devices. Instead, device role tags should be used: introduced in 2.32, broken in 2.37, and re-introduced and fixed in 2.42, the tag is an optional, string attribute that can be used to assign a tag to a virtual network interface. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that network interface, such as bus (ex: PCI), bus address (ex: 0000:00:02.0), and MAC address.

A bug has caused the tag attribute to no longer be accepted starting with version 2.37. Therefore, network interfaces could only be tagged in versions 2.32 to 2.36 inclusively. Version 2.42 has restored the tag attribute.

Starting with microversion 2.37, this field is required and the special string values auto and none can be specified for networks. auto tells the Compute service to use a network that is available to the project, if one exists. If one does not exist, the Compute service will attempt to automatically allocate a network for the project (if possible). none tells the Compute service to not allocate a network for the instance. The auto and none values cannot be used with any other network values, including other network uuids, ports, fixed IPs or device tags. These are requested as strings for the networks value, not in a list. See the associated example.

server.networks[].tag

body

string

server.personality

body

array

The file path and contents, text only, to inject into the server at launch. The maximum size of the file path data is 255 bytes. The maximum limit is the number of allowed bytes in the decoded, rather than encoded, data.

Available until version 2.56

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

Enables fine grained control of the block device mapping for an instance. This is typically used for booting servers from volumes. An example format would look as follows:

"block_device_mapping_v2": [{
    "boot_index": "0",
    "uuid": "ac408821-c95a-448f-9292-73986c790911",
    "source_type": "image",
    "volume_size": "25",
    "destination_type": "volume",
    "delete_on_termination": true,
    "tag": "disk1",
    "disk_bus": "scsi"}]

In microversion 2.32, tag is an optional string attribute that can be used to assign a tag to the block device. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that block device, such as bus (ex: SCSI), bus address (ex: 1:0:2:0), and serial.

A bug has caused the tag attribute to no longer be accepted starting with version 2.33. It has been restored in version 2.42.

server.block_device_mapping_v2[].tag

body

string

server.security_groups

body

array

One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group. Requested security groups are not applied to pre-existing ports.

server.networks

body

array

A list of network object. Required parameter when there are multiple networks defined for the tenant. When you do not specify the networks parameter, the server attaches to the only network created for the current tenant. Optionally, you can create one or more NICs on the server. To provision the server instance with a NIC for a network, specify the UUID of the network in the uuid attribute in a networks object. To provision the server instance with a NIC for an already existing port, specify the port-id in the port attribute in a networks object.

If multiple networks are defined, the order in which they appear in the guest operating system will not necessarily reflect the order in which they are given in the server boot request. Guests should therefore not depend on device order to deduce any information about their network devices. Instead, device role tags should be used: introduced in 2.32, broken in 2.37, and re-introduced and fixed in 2.42, the tag is an optional, string attribute that can be used to assign a tag to a virtual network interface. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that network interface, such as bus (ex: PCI), bus address (ex: 0000:00:02.0), and MAC address.

A bug has caused the tag attribute to no longer be accepted starting with version 2.37. Therefore, network interfaces could only be tagged in versions 2.32 to 2.36 inclusively. Version 2.42 has restored the tag attribute.

Starting with microversion 2.37, this field is required and the special string values auto and none can be specified for networks. auto tells the Compute service to use a network that is available to the project, if one exists. If one does not exist, the Compute service will attempt to automatically allocate a network for the project (if possible). none tells the Compute service to not allocate a network for the instance. The auto and none values cannot be used with any other network values, including other network uuids, ports, fixed IPs or device tags. These are requested as strings for the networks value, not in a list. See the associated example.

server.personality

body

array

The file path and contents, text only, to inject into the server at launch. The maximum size of the file path data is 255 bytes. The maximum limit is the number of allowed bytes in the decoded, rather than encoded, data.

Available until version 2.56

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

Enables fine grained control of the block device mapping for an instance. This is typically used for booting servers from volumes. An example format would look as follows:

"block_device_mapping_v2": [{
    "boot_index": "0",
    "uuid": "ac408821-c95a-448f-9292-73986c790911",
    "source_type": "image",
    "volume_size": "25",
    "destination_type": "volume",
    "delete_on_termination": true,
    "tag": "disk1",
    "disk_bus": "scsi"}]

In microversion 2.32, tag is an optional string attribute that can be used to assign a tag to the block device. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that block device, such as bus (ex: SCSI), bus address (ex: 1:0:2:0), and serial.

A bug has caused the tag attribute to no longer be accepted starting with version 2.33. It has been restored in version 2.42.

server.security_groups

body

array

One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group. Requested security groups are not applied to pre-existing ports.

server.personality

body

array

The file path and contents, text only, to inject into the server at launch. The maximum size of the file path data is 255 bytes. The maximum limit is the number of allowed bytes in the decoded, rather than encoded, data.

Available until version 2.56

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

Enables fine grained control of the block device mapping for an instance. This is typically used for booting servers from volumes. An example format would look as follows:

"block_device_mapping_v2": [{
    "boot_index": "0",
    "uuid": "ac408821-c95a-448f-9292-73986c790911",
    "source_type": "image",
    "volume_size": "25",
    "destination_type": "volume",
    "delete_on_termination": true,
    "tag": "disk1",
    "disk_bus": "scsi"}]

In microversion 2.32, tag is an optional string attribute that can be used to assign a tag to the block device. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that block device, such as bus (ex: SCSI), bus address (ex: 1:0:2:0), and serial.

A bug has caused the tag attribute to no longer be accepted starting with version 2.33. It has been restored in version 2.42.

server.security_groups

body

array

One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group. Requested security groups are not applied to pre-existing ports.

server.personality

body

array

The file path and contents, text only, to inject into the server at launch. The maximum size of the file path data is 255 bytes. The maximum limit is the number of allowed bytes in the decoded, rather than encoded, data.

Available until version 2.56

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

Enables fine grained control of the block device mapping for an instance. This is typically used for booting servers from volumes. An example format would look as follows:

"block_device_mapping_v2": [{
    "boot_index": "0",
    "uuid": "ac408821-c95a-448f-9292-73986c790911",
    "source_type": "image",
    "volume_size": "25",
    "destination_type": "volume",
    "delete_on_termination": true,
    "tag": "disk1",
    "disk_bus": "scsi"}]

In microversion 2.32, tag is an optional string attribute that can be used to assign a tag to the block device. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that block device, such as bus (ex: SCSI), bus address (ex: 1:0:2:0), and serial.

A bug has caused the tag attribute to no longer be accepted starting with version 2.33. It has been restored in version 2.42.

server.security_groups

body

array

One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group. Requested security groups are not applied to pre-existing ports.

server.personality

body

array

The file path and contents, text only, to inject into the server at launch. The maximum size of the file path data is 255 bytes. The maximum limit is the number of allowed bytes in the decoded, rather than encoded, data.

Available until version 2.56

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

Enables fine grained control of the block device mapping for an instance. This is typically used for booting servers from volumes. An example format would look as follows:

"block_device_mapping_v2": [{
    "boot_index": "0",
    "uuid": "ac408821-c95a-448f-9292-73986c790911",
    "source_type": "image",
    "volume_size": "25",
    "destination_type": "volume",
    "delete_on_termination": true,
    "tag": "disk1",
    "disk_bus": "scsi"}]

In microversion 2.32, tag is an optional string attribute that can be used to assign a tag to the block device. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that block device, such as bus (ex: SCSI), bus address (ex: 1:0:2:0), and serial.

A bug has caused the tag attribute to no longer be accepted starting with version 2.33. It has been restored in version 2.42.

server.security_groups

body

array

One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group. Requested security groups are not applied to pre-existing ports.

server.tags

body

array

A list of tags. Tags have the following restrictions:

  • Tag is a Unicode bytestring no longer than 60 characters.

  • Tag is a non-empty string.

  • ‘/’ is not allowed to be in a tag name

  • Comma is not allowed to be in a tag name in order to simplify requests that specify lists of tags

  • All other characters are allowed to be in a tag name

  • Each server can have up to 50 tags.

New in version 2.52

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

Enables fine grained control of the block device mapping for an instance. This is typically used for booting servers from volumes. An example format would look as follows:

"block_device_mapping_v2": [{
    "boot_index": "0",
    "uuid": "ac408821-c95a-448f-9292-73986c790911",
    "source_type": "image",
    "volume_size": "25",
    "destination_type": "volume",
    "delete_on_termination": true,
    "tag": "disk1",
    "disk_bus": "scsi"}]

In microversion 2.32, tag is an optional string attribute that can be used to assign a tag to the block device. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that block device, such as bus (ex: SCSI), bus address (ex: 1:0:2:0), and serial.

A bug has caused the tag attribute to no longer be accepted starting with version 2.33. It has been restored in version 2.42.

server.security_groups

body

array

One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group. Requested security groups are not applied to pre-existing ports.

server.tags

body

array

A list of tags. Tags have the following restrictions:

  • Tag is a Unicode bytestring no longer than 60 characters.

  • Tag is a non-empty string.

  • ‘/’ is not allowed to be in a tag name

  • Comma is not allowed to be in a tag name in order to simplify requests that specify lists of tags

  • All other characters are allowed to be in a tag name

  • Each server can have up to 50 tags.

New in version 2.52

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

Enables fine grained control of the block device mapping for an instance. This is typically used for booting servers from volumes. An example format would look as follows:

"block_device_mapping_v2": [{
    "boot_index": "0",
    "uuid": "ac408821-c95a-448f-9292-73986c790911",
    "source_type": "image",
    "volume_size": "25",
    "destination_type": "volume",
    "delete_on_termination": true,
    "tag": "disk1",
    "disk_bus": "scsi"}]

In microversion 2.32, tag is an optional string attribute that can be used to assign a tag to the block device. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that block device, such as bus (ex: SCSI), bus address (ex: 1:0:2:0), and serial.

A bug has caused the tag attribute to no longer be accepted starting with version 2.33. It has been restored in version 2.42.

server.security_groups

body

array

One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group. Requested security groups are not applied to pre-existing ports.

server.tags

body

array

A list of tags. Tags have the following restrictions:

  • Tag is a Unicode bytestring no longer than 60 characters.

  • Tag is a non-empty string.

  • ‘/’ is not allowed to be in a tag name

  • Comma is not allowed to be in a tag name in order to simplify requests that specify lists of tags

  • All other characters are allowed to be in a tag name

  • Each server can have up to 50 tags.

New in version 2.52

server.trusted_image_certificates

body

[‘array’, ‘null’]

A list of trusted certificate IDs, which are used during image signature verification to verify the signing certificate. The list is restricted to a maximum of 50 IDs. This parameter is optional in server create requests if allowed by policy, and is not supported for volume-backed instances.

New in version 2.63

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

Enables fine grained control of the block device mapping for an instance. This is typically used for booting servers from volumes. An example format would look as follows:

"block_device_mapping_v2": [{
    "boot_index": "0",
    "uuid": "ac408821-c95a-448f-9292-73986c790911",
    "source_type": "image",
    "volume_size": "25",
    "destination_type": "volume",
    "delete_on_termination": true,
    "tag": "disk1",
    "disk_bus": "scsi"}]

In microversion 2.32, tag is an optional string attribute that can be used to assign a tag to the block device. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that block device, such as bus (ex: SCSI), bus address (ex: 1:0:2:0), and serial.

A bug has caused the tag attribute to no longer be accepted starting with version 2.33. It has been restored in version 2.42.

server.block_device_mapping_v2[].volume_type

body

[‘string’, ‘null’]

server.security_groups

body

array

One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group. Requested security groups are not applied to pre-existing ports.

server.tags

body

array

A list of tags. Tags have the following restrictions:

  • Tag is a Unicode bytestring no longer than 60 characters.

  • Tag is a non-empty string.

  • ‘/’ is not allowed to be in a tag name

  • Comma is not allowed to be in a tag name in order to simplify requests that specify lists of tags

  • All other characters are allowed to be in a tag name

  • Each server can have up to 50 tags.

New in version 2.52

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

Enables fine grained control of the block device mapping for an instance. This is typically used for booting servers from volumes. An example format would look as follows:

"block_device_mapping_v2": [{
    "boot_index": "0",
    "uuid": "ac408821-c95a-448f-9292-73986c790911",
    "source_type": "image",
    "volume_size": "25",
    "destination_type": "volume",
    "delete_on_termination": true,
    "tag": "disk1",
    "disk_bus": "scsi"}]

In microversion 2.32, tag is an optional string attribute that can be used to assign a tag to the block device. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that block device, such as bus (ex: SCSI), bus address (ex: 1:0:2:0), and serial.

A bug has caused the tag attribute to no longer be accepted starting with version 2.33. It has been restored in version 2.42.

server.security_groups

body

array

One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group. Requested security groups are not applied to pre-existing ports.

server.tags

body

array

A list of tags. Tags have the following restrictions:

  • Tag is a Unicode bytestring no longer than 60 characters.

  • Tag is a non-empty string.

  • ‘/’ is not allowed to be in a tag name

  • Comma is not allowed to be in a tag name in order to simplify requests that specify lists of tags

  • All other characters are allowed to be in a tag name

  • Each server can have up to 50 tags.

New in version 2.52

server.host

body

string

The hostname of the hypervisor on which the server is to be created. The API will return 400 if no hypervisors are found with the given hostname. By default, it can be specified by administrators only.

New in version 2.74

server.hypervisor_hostname

body

string

The hostname of the hypervisor on which the server is to be created. The API will return 400 if no hypervisors are found with the given hostname. By default, it can be specified by administrators only.

New in version 2.74

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

Enables fine grained control of the block device mapping for an instance. This is typically used for booting servers from volumes. An example format would look as follows:

"block_device_mapping_v2": [{
    "boot_index": "0",
    "uuid": "ac408821-c95a-448f-9292-73986c790911",
    "source_type": "image",
    "volume_size": "25",
    "destination_type": "volume",
    "delete_on_termination": true,
    "tag": "disk1",
    "disk_bus": "scsi"}]

In microversion 2.32, tag is an optional string attribute that can be used to assign a tag to the block device. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that block device, such as bus (ex: SCSI), bus address (ex: 1:0:2:0), and serial.

A bug has caused the tag attribute to no longer be accepted starting with version 2.33. It has been restored in version 2.42.

server.security_groups

body

array

One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group. Requested security groups are not applied to pre-existing ports.

server.tags

body

array

A list of tags. Tags have the following restrictions:

  • Tag is a Unicode bytestring no longer than 60 characters.

  • Tag is a non-empty string.

  • ‘/’ is not allowed to be in a tag name

  • Comma is not allowed to be in a tag name in order to simplify requests that specify lists of tags

  • All other characters are allowed to be in a tag name

  • Each server can have up to 50 tags.

New in version 2.52

server.hostname

body

string

The hostname to configure for the instance in the metadata service.

Starting with microversion 2.94, this can be a Fully Qualified Domain Name (FQDN) of up to 255 characters in length.

Note

This information is published via the metadata service and requires application such as cloud-init to propagate it through to the instance.

New in version 2.90

server.block_device_mapping

body

array

server.block_device_mapping_v2

body

array

Enables fine grained control of the block device mapping for an instance. This is typically used for booting servers from volumes. An example format would look as follows:

"block_device_mapping_v2": [{
    "boot_index": "0",
    "uuid": "ac408821-c95a-448f-9292-73986c790911",
    "source_type": "image",
    "volume_size": "25",
    "destination_type": "volume",
    "delete_on_termination": true,
    "tag": "disk1",
    "disk_bus": "scsi"}]

In microversion 2.32, tag is an optional string attribute that can be used to assign a tag to the block device. This tag is then exposed to the guest in the metadata API and the config drive and is associated to hardware metadata for that block device, such as bus (ex: SCSI), bus address (ex: 1:0:2:0), and serial.

A bug has caused the tag attribute to no longer be accepted starting with version 2.33. It has been restored in version 2.42.

server.security_groups

body

array

One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group. Requested security groups are not applied to pre-existing ports.

server.tags

body

array

A list of tags. Tags have the following restrictions:

  • Tag is a Unicode bytestring no longer than 60 characters.

  • Tag is a non-empty string.

  • ‘/’ is not allowed to be in a tag name

  • Comma is not allowed to be in a tag name in order to simplify requests that specify lists of tags

  • All other characters are allowed to be in a tag name

  • Each server can have up to 50 tags.

New in version 2.52

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "description": "A `server` object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name_with_leading_trailing_spaces",
              "description": "Key pair name.\n\n\n\nNote\n\n\nThe `null` value was allowed in the Nova legacy v2 API,\nbut due to strict input validation, it is not allowed in\nthe Nova v2\\.1 API."
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ],
              "description": "The UUID of the image to use for your server instance.\nThis is not required in case of boot from volume.\nIn all other cases it is required and must be a valid UUID\notherwise API will return 400\\."
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1,
              "description": "The flavor reference, as an ID (including a UUID) or full URL,\nfor the flavor for your server instance."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "fixed_ip": {
                    "type": "string",
                    "oneOf": [
                      {
                        "format": "ipv4"
                      },
                      {
                        "format": "ipv6"
                      }
                    ],
                    "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
                  },
                  "port": {
                    "oneOf": [
                      {
                        "type": "string",
                        "format": "uuid"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "uuid": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              "description": "A list of `network` object. Required parameter when there are multiple\nnetworks defined for the tenant. When you do not specify the networks\nparameter, the server attaches to the only network created for the\ncurrent tenant. Optionally, you can create one or more NICs on the server.\nTo provision the server instance with a NIC for a network, specify\nthe UUID of the network in the `uuid` attribute in a `networks`\nobject. To provision the server instance with a NIC for an already\nexisting port, specify the port\\-id in the `port` attribute in a\n`networks` object.\n\n\nIf multiple networks are defined, the order in which they appear in the\nguest operating system will not necessarily reflect the order in which they\nare given in the server boot request. Guests should therefore not depend\non device order to deduce any information about their network devices.\nInstead, device role tags should be used: introduced in 2\\.32, broken in\n2\\.37, and re\\-introduced and fixed in 2\\.42, the `tag` is an optional,\nstring attribute that can be used to assign a tag to a virtual network\ninterface. This tag is then exposed to the guest in the metadata API and\nthe config drive and is associated to hardware metadata for that network\ninterface, such as bus (ex: PCI), bus address (ex: 0000:00:02\\.0\\), and MAC\naddress.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.37\\. Therefore, network interfaces could only be tagged in\nversions 2\\.32 to 2\\.36 inclusively. Version 2\\.42 has restored the `tag`\nattribute.\n\n\nStarting with microversion 2\\.37, this field is required and the special\nstring values *auto* and *none* can be specified for networks. *auto*\ntells the Compute service to use a network that is available to the\nproject, if one exists. If one does not exist, the Compute service will\nattempt to automatically allocate a network for the project (if possible).\n*none* tells the Compute service to not allocate a network for the\ninstance. The *auto* and *none* values cannot be used with any other\nnetwork values, including other network uuids, ports, fixed IPs or device\ntags. These are requested as strings for the networks value, not in a\nlist. See the associated example."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              },
              "description": "The file path and contents, text only, to inject into the server at launch. The\nmaximum size of the file path data is 255 bytes. The maximum limit is the number\nof allowed bytes in the decoded, rather than encoded, data.\n\n\n**Available until version 2\\.56**"
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name_with_leading_trailing_spaces",
              "description": "Key pair name.\n\n\n\nNote\n\n\nThe `null` value was allowed in the Nova legacy v2 API,\nbut due to strict input validation, it is not allowed in\nthe Nova v2\\.1 API."
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ],
                    "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  }
                },
                "additionalProperties": false
              },
              "description": "Enables fine grained control of the block device mapping for an instance. This\nis typically used for booting servers from volumes. An example format would look\nas follows:\n\n\n\n> ```\n> \"block_device_mapping_v2\": [{\n>     \"boot_index\": \"0\",\n>     \"uuid\": \"ac408821-c95a-448f-9292-73986c790911\",\n>     \"source_type\": \"image\",\n>     \"volume_size\": \"25\",\n>     \"destination_type\": \"volume\",\n>     \"delete_on_termination\": true,\n>     \"tag\": \"disk1\",\n>     \"disk_bus\": \"scsi\"}]\n> \n> ```\n\n\nIn microversion 2\\.32, `tag` is an optional string attribute that can\nbe used to assign a tag to the block device. This tag is then exposed to\nthe guest in the metadata API and the config drive and is associated to\nhardware metadata for that block device, such as bus (ex: SCSI), bus\naddress (ex: 1:0:2:0\\), and serial.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.33\\. It has been restored in version 2\\.42\\."
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name_with_leading_trailing_spaces",
              "description": "Key pair name.\n\n\n\nNote\n\n\nThe `null` value was allowed in the Nova legacy v2 API,\nbut due to strict input validation, it is not allowed in\nthe Nova v2\\.1 API."
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name_with_leading_trailing_spaces",
                    "description": "Key pair name.\n\n\n\nNote\n\n\nThe `null` value was allowed in the Nova legacy v2 API,\nbut due to strict input validation, it is not allowed in\nthe Nova v2\\.1 API."
                  }
                },
                "additionalProperties": false
              },
              "description": "One or more security groups. Specify the name of the security group in the\n`name` attribute. If you omit this attribute, the API creates the server\nin the `default` security group. Requested security groups are not\napplied to pre\\-existing ports."
            },
            "user_data": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "base64",
                  "maxLength": 65535
                },
                {
                  "type": "null"
                }
              ],
              "description": "Configuration information or scripts to use upon launch.\nMust be Base64 encoded. Restricted to 65535 bytes.\n\n\n\nNote\n\n\nThe `null` value allowed in Nova legacy v2 API, but due to the strict\ninput validation, it isn\u2019t allowed in Nova v2\\.1 API."
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "description": "The dictionary of data to send to the scheduler. Alternatively, you can specify\n`OS-SCH-HNT:scheduler_hints` as the key in the request body.\n\n\n\nNote\n\n\nThis is a top\\-level key in the request body, not part of the\nserver portion of the request body.\n\n\n\nThere are a few caveats with scheduler hints:\n\n\n* The request validation schema is per hint. For example, some require a\nsingle string value, and some accept a list of values.\n* Hints are only used based on the cloud scheduler configuration, which\nvaries per deployment.\n* Hints are pluggable per deployment, meaning that a cloud can have custom\nhints which may not be available in another cloud.\n\n\nFor these reasons, it is important to consult each cloud\u2019s user\ndocumentation to know what is available for scheduler hints.",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.0"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "description": "A `server` object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ],
              "description": "The UUID of the image to use for your server instance.\nThis is not required in case of boot from volume.\nIn all other cases it is required and must be a valid UUID\notherwise API will return 400\\."
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1,
              "description": "The flavor reference, as an ID (including a UUID) or full URL,\nfor the flavor for your server instance."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "fixed_ip": {
                    "type": "string",
                    "oneOf": [
                      {
                        "format": "ipv4"
                      },
                      {
                        "format": "ipv6"
                      }
                    ],
                    "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
                  },
                  "port": {
                    "oneOf": [
                      {
                        "type": "string",
                        "format": "uuid"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "uuid": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              "description": "A list of `network` object. Required parameter when there are multiple\nnetworks defined for the tenant. When you do not specify the networks\nparameter, the server attaches to the only network created for the\ncurrent tenant. Optionally, you can create one or more NICs on the server.\nTo provision the server instance with a NIC for a network, specify\nthe UUID of the network in the `uuid` attribute in a `networks`\nobject. To provision the server instance with a NIC for an already\nexisting port, specify the port\\-id in the `port` attribute in a\n`networks` object.\n\n\nIf multiple networks are defined, the order in which they appear in the\nguest operating system will not necessarily reflect the order in which they\nare given in the server boot request. Guests should therefore not depend\non device order to deduce any information about their network devices.\nInstead, device role tags should be used: introduced in 2\\.32, broken in\n2\\.37, and re\\-introduced and fixed in 2\\.42, the `tag` is an optional,\nstring attribute that can be used to assign a tag to a virtual network\ninterface. This tag is then exposed to the guest in the metadata API and\nthe config drive and is associated to hardware metadata for that network\ninterface, such as bus (ex: PCI), bus address (ex: 0000:00:02\\.0\\), and MAC\naddress.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.37\\. Therefore, network interfaces could only be tagged in\nversions 2\\.32 to 2\\.36 inclusively. Version 2\\.42 has restored the `tag`\nattribute.\n\n\nStarting with microversion 2\\.37, this field is required and the special\nstring values *auto* and *none* can be specified for networks. *auto*\ntells the Compute service to use a network that is available to the\nproject, if one exists. If one does not exist, the Compute service will\nattempt to automatically allocate a network for the project (if possible).\n*none* tells the Compute service to not allocate a network for the\ninstance. The *auto* and *none* values cannot be used with any other\nnetwork values, including other network uuids, ports, fixed IPs or device\ntags. These are requested as strings for the networks value, not in a\nlist. See the associated example."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              },
              "description": "The file path and contents, text only, to inject into the server at launch. The\nmaximum size of the file path data is 255 bytes. The maximum limit is the number\nof allowed bytes in the decoded, rather than encoded, data.\n\n\n**Available until version 2\\.56**"
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ],
                    "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  }
                },
                "additionalProperties": false
              },
              "description": "Enables fine grained control of the block device mapping for an instance. This\nis typically used for booting servers from volumes. An example format would look\nas follows:\n\n\n\n> ```\n> \"block_device_mapping_v2\": [{\n>     \"boot_index\": \"0\",\n>     \"uuid\": \"ac408821-c95a-448f-9292-73986c790911\",\n>     \"source_type\": \"image\",\n>     \"volume_size\": \"25\",\n>     \"destination_type\": \"volume\",\n>     \"delete_on_termination\": true,\n>     \"tag\": \"disk1\",\n>     \"disk_bus\": \"scsi\"}]\n> \n> ```\n\n\nIn microversion 2\\.32, `tag` is an optional string attribute that can\nbe used to assign a tag to the block device. This tag is then exposed to\nthe guest in the metadata API and the config drive and is associated to\nhardware metadata for that block device, such as bus (ex: SCSI), bus\naddress (ex: 1:0:2:0\\), and serial.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.33\\. It has been restored in version 2\\.42\\."
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name",
                    "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
                  }
                },
                "additionalProperties": false
              },
              "description": "One or more security groups. Specify the name of the security group in the\n`name` attribute. If you omit this attribute, the API creates the server\nin the `default` security group. Requested security groups are not\napplied to pre\\-existing ports."
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535,
              "description": "Configuration information or scripts to use upon launch.\nMust be Base64 encoded. Restricted to 65535 bytes.\n\n\n\nNote\n\n\nThe `null` value allowed in Nova legacy v2 API, but due to the strict\ninput validation, it isn\u2019t allowed in Nova v2\\.1 API."
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "description": "The dictionary of data to send to the scheduler. Alternatively, you can specify\n`OS-SCH-HNT:scheduler_hints` as the key in the request body.\n\n\n\nNote\n\n\nThis is a top\\-level key in the request body, not part of the\nserver portion of the request body.\n\n\n\nThere are a few caveats with scheduler hints:\n\n\n* The request validation schema is per hint. For example, some require a\nsingle string value, and some accept a list of values.\n* Hints are only used based on the cloud scheduler configuration, which\nvaries per deployment.\n* Hints are pluggable per deployment, meaning that a cloud can have custom\nhints which may not be available in another cloud.\n\n\nFor these reasons, it is important to consult each cloud\u2019s user\ndocumentation to know what is available for scheduler hints.",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.1",
        "max-ver": "2.18"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "description": "A `server` object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ],
              "description": "The UUID of the image to use for your server instance.\nThis is not required in case of boot from volume.\nIn all other cases it is required and must be a valid UUID\notherwise API will return 400\\."
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1,
              "description": "The flavor reference, as an ID (including a UUID) or full URL,\nfor the flavor for your server instance."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "fixed_ip": {
                    "type": "string",
                    "oneOf": [
                      {
                        "format": "ipv4"
                      },
                      {
                        "format": "ipv6"
                      }
                    ],
                    "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
                  },
                  "port": {
                    "oneOf": [
                      {
                        "type": "string",
                        "format": "uuid"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "uuid": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              "description": "A list of `network` object. Required parameter when there are multiple\nnetworks defined for the tenant. When you do not specify the networks\nparameter, the server attaches to the only network created for the\ncurrent tenant. Optionally, you can create one or more NICs on the server.\nTo provision the server instance with a NIC for a network, specify\nthe UUID of the network in the `uuid` attribute in a `networks`\nobject. To provision the server instance with a NIC for an already\nexisting port, specify the port\\-id in the `port` attribute in a\n`networks` object.\n\n\nIf multiple networks are defined, the order in which they appear in the\nguest operating system will not necessarily reflect the order in which they\nare given in the server boot request. Guests should therefore not depend\non device order to deduce any information about their network devices.\nInstead, device role tags should be used: introduced in 2\\.32, broken in\n2\\.37, and re\\-introduced and fixed in 2\\.42, the `tag` is an optional,\nstring attribute that can be used to assign a tag to a virtual network\ninterface. This tag is then exposed to the guest in the metadata API and\nthe config drive and is associated to hardware metadata for that network\ninterface, such as bus (ex: PCI), bus address (ex: 0000:00:02\\.0\\), and MAC\naddress.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.37\\. Therefore, network interfaces could only be tagged in\nversions 2\\.32 to 2\\.36 inclusively. Version 2\\.42 has restored the `tag`\nattribute.\n\n\nStarting with microversion 2\\.37, this field is required and the special\nstring values *auto* and *none* can be specified for networks. *auto*\ntells the Compute service to use a network that is available to the\nproject, if one exists. If one does not exist, the Compute service will\nattempt to automatically allocate a network for the project (if possible).\n*none* tells the Compute service to not allocate a network for the\ninstance. The *auto* and *none* values cannot be used with any other\nnetwork values, including other network uuids, ports, fixed IPs or device\ntags. These are requested as strings for the networks value, not in a\nlist. See the associated example."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              },
              "description": "The file path and contents, text only, to inject into the server at launch. The\nmaximum size of the file path data is 255 bytes. The maximum limit is the number\nof allowed bytes in the decoded, rather than encoded, data.\n\n\n**Available until version 2\\.56**"
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ],
                    "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  }
                },
                "additionalProperties": false
              },
              "description": "Enables fine grained control of the block device mapping for an instance. This\nis typically used for booting servers from volumes. An example format would look\nas follows:\n\n\n\n> ```\n> \"block_device_mapping_v2\": [{\n>     \"boot_index\": \"0\",\n>     \"uuid\": \"ac408821-c95a-448f-9292-73986c790911\",\n>     \"source_type\": \"image\",\n>     \"volume_size\": \"25\",\n>     \"destination_type\": \"volume\",\n>     \"delete_on_termination\": true,\n>     \"tag\": \"disk1\",\n>     \"disk_bus\": \"scsi\"}]\n> \n> ```\n\n\nIn microversion 2\\.32, `tag` is an optional string attribute that can\nbe used to assign a tag to the block device. This tag is then exposed to\nthe guest in the metadata API and the config drive and is associated to\nhardware metadata for that block device, such as bus (ex: SCSI), bus\naddress (ex: 1:0:2:0\\), and serial.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.33\\. It has been restored in version 2\\.42\\."
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name",
                    "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
                  }
                },
                "additionalProperties": false
              },
              "description": "One or more security groups. Specify the name of the security group in the\n`name` attribute. If you omit this attribute, the API creates the server\nin the `default` security group. Requested security groups are not\napplied to pre\\-existing ports."
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535,
              "description": "Configuration information or scripts to use upon launch.\nMust be Base64 encoded. Restricted to 65535 bytes.\n\n\n\nNote\n\n\nThe `null` value allowed in Nova legacy v2 API, but due to the strict\ninput validation, it isn\u2019t allowed in Nova v2\\.1 API."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "description": "The dictionary of data to send to the scheduler. Alternatively, you can specify\n`OS-SCH-HNT:scheduler_hints` as the key in the request body.\n\n\n\nNote\n\n\nThis is a top\\-level key in the request body, not part of the\nserver portion of the request body.\n\n\n\nThere are a few caveats with scheduler hints:\n\n\n* The request validation schema is per hint. For example, some require a\nsingle string value, and some accept a list of values.\n* Hints are only used based on the cloud scheduler configuration, which\nvaries per deployment.\n* Hints are pluggable per deployment, meaning that a cloud can have custom\nhints which may not be available in another cloud.\n\n\nFor these reasons, it is important to consult each cloud\u2019s user\ndocumentation to know what is available for scheduler hints.",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.19",
        "max-ver": "2.31"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "description": "A `server` object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ],
              "description": "The UUID of the image to use for your server instance.\nThis is not required in case of boot from volume.\nIn all other cases it is required and must be a valid UUID\notherwise API will return 400\\."
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1,
              "description": "The flavor reference, as an ID (including a UUID) or full URL,\nfor the flavor for your server instance."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "fixed_ip": {
                    "type": "string",
                    "oneOf": [
                      {
                        "format": "ipv4"
                      },
                      {
                        "format": "ipv6"
                      }
                    ],
                    "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
                  },
                  "port": {
                    "oneOf": [
                      {
                        "type": "string",
                        "format": "uuid"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "uuid": {
                    "type": "string"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  }
                },
                "additionalProperties": false
              },
              "description": "A list of `network` object. Required parameter when there are multiple\nnetworks defined for the tenant. When you do not specify the networks\nparameter, the server attaches to the only network created for the\ncurrent tenant. Optionally, you can create one or more NICs on the server.\nTo provision the server instance with a NIC for a network, specify\nthe UUID of the network in the `uuid` attribute in a `networks`\nobject. To provision the server instance with a NIC for an already\nexisting port, specify the port\\-id in the `port` attribute in a\n`networks` object.\n\n\nIf multiple networks are defined, the order in which they appear in the\nguest operating system will not necessarily reflect the order in which they\nare given in the server boot request. Guests should therefore not depend\non device order to deduce any information about their network devices.\nInstead, device role tags should be used: introduced in 2\\.32, broken in\n2\\.37, and re\\-introduced and fixed in 2\\.42, the `tag` is an optional,\nstring attribute that can be used to assign a tag to a virtual network\ninterface. This tag is then exposed to the guest in the metadata API and\nthe config drive and is associated to hardware metadata for that network\ninterface, such as bus (ex: PCI), bus address (ex: 0000:00:02\\.0\\), and MAC\naddress.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.37\\. Therefore, network interfaces could only be tagged in\nversions 2\\.32 to 2\\.36 inclusively. Version 2\\.42 has restored the `tag`\nattribute.\n\n\nStarting with microversion 2\\.37, this field is required and the special\nstring values *auto* and *none* can be specified for networks. *auto*\ntells the Compute service to use a network that is available to the\nproject, if one exists. If one does not exist, the Compute service will\nattempt to automatically allocate a network for the project (if possible).\n*none* tells the Compute service to not allocate a network for the\ninstance. The *auto* and *none* values cannot be used with any other\nnetwork values, including other network uuids, ports, fixed IPs or device\ntags. These are requested as strings for the networks value, not in a\nlist. See the associated example."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              },
              "description": "The file path and contents, text only, to inject into the server at launch. The\nmaximum size of the file path data is 255 bytes. The maximum limit is the number\nof allowed bytes in the decoded, rather than encoded, data.\n\n\n**Available until version 2\\.56**"
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ],
                    "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  }
                },
                "additionalProperties": false
              },
              "description": "Enables fine grained control of the block device mapping for an instance. This\nis typically used for booting servers from volumes. An example format would look\nas follows:\n\n\n\n> ```\n> \"block_device_mapping_v2\": [{\n>     \"boot_index\": \"0\",\n>     \"uuid\": \"ac408821-c95a-448f-9292-73986c790911\",\n>     \"source_type\": \"image\",\n>     \"volume_size\": \"25\",\n>     \"destination_type\": \"volume\",\n>     \"delete_on_termination\": true,\n>     \"tag\": \"disk1\",\n>     \"disk_bus\": \"scsi\"}]\n> \n> ```\n\n\nIn microversion 2\\.32, `tag` is an optional string attribute that can\nbe used to assign a tag to the block device. This tag is then exposed to\nthe guest in the metadata API and the config drive and is associated to\nhardware metadata for that block device, such as bus (ex: SCSI), bus\naddress (ex: 1:0:2:0\\), and serial.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.33\\. It has been restored in version 2\\.42\\."
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name",
                    "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
                  }
                },
                "additionalProperties": false
              },
              "description": "One or more security groups. Specify the name of the security group in the\n`name` attribute. If you omit this attribute, the API creates the server\nin the `default` security group. Requested security groups are not\napplied to pre\\-existing ports."
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535,
              "description": "Configuration information or scripts to use upon launch.\nMust be Base64 encoded. Restricted to 65535 bytes.\n\n\n\nNote\n\n\nThe `null` value allowed in Nova legacy v2 API, but due to the strict\ninput validation, it isn\u2019t allowed in Nova v2\\.1 API."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "description": "The dictionary of data to send to the scheduler. Alternatively, you can specify\n`OS-SCH-HNT:scheduler_hints` as the key in the request body.\n\n\n\nNote\n\n\nThis is a top\\-level key in the request body, not part of the\nserver portion of the request body.\n\n\n\nThere are a few caveats with scheduler hints:\n\n\n* The request validation schema is per hint. For example, some require a\nsingle string value, and some accept a list of values.\n* Hints are only used based on the cloud scheduler configuration, which\nvaries per deployment.\n* Hints are pluggable per deployment, meaning that a cloud can have custom\nhints which may not be available in another cloud.\n\n\nFor these reasons, it is important to consult each cloud\u2019s user\ndocumentation to know what is available for scheduler hints.",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.32",
        "max-ver": "2.32"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "description": "A `server` object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ],
              "description": "The UUID of the image to use for your server instance.\nThis is not required in case of boot from volume.\nIn all other cases it is required and must be a valid UUID\notherwise API will return 400\\."
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1,
              "description": "The flavor reference, as an ID (including a UUID) or full URL,\nfor the flavor for your server instance."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "fixed_ip": {
                    "type": "string",
                    "oneOf": [
                      {
                        "format": "ipv4"
                      },
                      {
                        "format": "ipv6"
                      }
                    ],
                    "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
                  },
                  "port": {
                    "oneOf": [
                      {
                        "type": "string",
                        "format": "uuid"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "uuid": {
                    "type": "string"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  }
                },
                "additionalProperties": false
              },
              "description": "A list of `network` object. Required parameter when there are multiple\nnetworks defined for the tenant. When you do not specify the networks\nparameter, the server attaches to the only network created for the\ncurrent tenant. Optionally, you can create one or more NICs on the server.\nTo provision the server instance with a NIC for a network, specify\nthe UUID of the network in the `uuid` attribute in a `networks`\nobject. To provision the server instance with a NIC for an already\nexisting port, specify the port\\-id in the `port` attribute in a\n`networks` object.\n\n\nIf multiple networks are defined, the order in which they appear in the\nguest operating system will not necessarily reflect the order in which they\nare given in the server boot request. Guests should therefore not depend\non device order to deduce any information about their network devices.\nInstead, device role tags should be used: introduced in 2\\.32, broken in\n2\\.37, and re\\-introduced and fixed in 2\\.42, the `tag` is an optional,\nstring attribute that can be used to assign a tag to a virtual network\ninterface. This tag is then exposed to the guest in the metadata API and\nthe config drive and is associated to hardware metadata for that network\ninterface, such as bus (ex: PCI), bus address (ex: 0000:00:02\\.0\\), and MAC\naddress.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.37\\. Therefore, network interfaces could only be tagged in\nversions 2\\.32 to 2\\.36 inclusively. Version 2\\.42 has restored the `tag`\nattribute.\n\n\nStarting with microversion 2\\.37, this field is required and the special\nstring values *auto* and *none* can be specified for networks. *auto*\ntells the Compute service to use a network that is available to the\nproject, if one exists. If one does not exist, the Compute service will\nattempt to automatically allocate a network for the project (if possible).\n*none* tells the Compute service to not allocate a network for the\ninstance. The *auto* and *none* values cannot be used with any other\nnetwork values, including other network uuids, ports, fixed IPs or device\ntags. These are requested as strings for the networks value, not in a\nlist. See the associated example."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              },
              "description": "The file path and contents, text only, to inject into the server at launch. The\nmaximum size of the file path data is 255 bytes. The maximum limit is the number\nof allowed bytes in the decoded, rather than encoded, data.\n\n\n**Available until version 2\\.56**"
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ],
                    "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  }
                },
                "additionalProperties": false
              },
              "description": "Enables fine grained control of the block device mapping for an instance. This\nis typically used for booting servers from volumes. An example format would look\nas follows:\n\n\n\n> ```\n> \"block_device_mapping_v2\": [{\n>     \"boot_index\": \"0\",\n>     \"uuid\": \"ac408821-c95a-448f-9292-73986c790911\",\n>     \"source_type\": \"image\",\n>     \"volume_size\": \"25\",\n>     \"destination_type\": \"volume\",\n>     \"delete_on_termination\": true,\n>     \"tag\": \"disk1\",\n>     \"disk_bus\": \"scsi\"}]\n> \n> ```\n\n\nIn microversion 2\\.32, `tag` is an optional string attribute that can\nbe used to assign a tag to the block device. This tag is then exposed to\nthe guest in the metadata API and the config drive and is associated to\nhardware metadata for that block device, such as bus (ex: SCSI), bus\naddress (ex: 1:0:2:0\\), and serial.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.33\\. It has been restored in version 2\\.42\\."
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name",
                    "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
                  }
                },
                "additionalProperties": false
              },
              "description": "One or more security groups. Specify the name of the security group in the\n`name` attribute. If you omit this attribute, the API creates the server\nin the `default` security group. Requested security groups are not\napplied to pre\\-existing ports."
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535,
              "description": "Configuration information or scripts to use upon launch.\nMust be Base64 encoded. Restricted to 65535 bytes.\n\n\n\nNote\n\n\nThe `null` value allowed in Nova legacy v2 API, but due to the strict\ninput validation, it isn\u2019t allowed in Nova v2\\.1 API."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "description": "The dictionary of data to send to the scheduler. Alternatively, you can specify\n`OS-SCH-HNT:scheduler_hints` as the key in the request body.\n\n\n\nNote\n\n\nThis is a top\\-level key in the request body, not part of the\nserver portion of the request body.\n\n\n\nThere are a few caveats with scheduler hints:\n\n\n* The request validation schema is per hint. For example, some require a\nsingle string value, and some accept a list of values.\n* Hints are only used based on the cloud scheduler configuration, which\nvaries per deployment.\n* Hints are pluggable per deployment, meaning that a cloud can have custom\nhints which may not be available in another cloud.\n\n\nFor these reasons, it is important to consult each cloud\u2019s user\ndocumentation to know what is available for scheduler hints.",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.33",
        "max-ver": "2.36"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "description": "A `server` object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ],
              "description": "The UUID of the image to use for your server instance.\nThis is not required in case of boot from volume.\nIn all other cases it is required and must be a valid UUID\notherwise API will return 400\\."
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1,
              "description": "The flavor reference, as an ID (including a UUID) or full URL,\nfor the flavor for your server instance."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fixed_ip": {
                        "type": "string",
                        "oneOf": [
                          {
                            "format": "ipv4"
                          },
                          {
                            "format": "ipv6"
                          }
                        ]
                      },
                      "port": {
                        "oneOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "uuid": {
                        "type": "string",
                        "format": "uuid"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "type": "string",
                  "enum": [
                    "none",
                    "auto"
                  ]
                }
              ],
              "description": "A list of `network` object. Required parameter when there are multiple\nnetworks defined for the tenant. When you do not specify the networks\nparameter, the server attaches to the only network created for the\ncurrent tenant. Optionally, you can create one or more NICs on the server.\nTo provision the server instance with a NIC for a network, specify\nthe UUID of the network in the `uuid` attribute in a `networks`\nobject. To provision the server instance with a NIC for an already\nexisting port, specify the port\\-id in the `port` attribute in a\n`networks` object.\n\n\nIf multiple networks are defined, the order in which they appear in the\nguest operating system will not necessarily reflect the order in which they\nare given in the server boot request. Guests should therefore not depend\non device order to deduce any information about their network devices.\nInstead, device role tags should be used: introduced in 2\\.32, broken in\n2\\.37, and re\\-introduced and fixed in 2\\.42, the `tag` is an optional,\nstring attribute that can be used to assign a tag to a virtual network\ninterface. This tag is then exposed to the guest in the metadata API and\nthe config drive and is associated to hardware metadata for that network\ninterface, such as bus (ex: PCI), bus address (ex: 0000:00:02\\.0\\), and MAC\naddress.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.37\\. Therefore, network interfaces could only be tagged in\nversions 2\\.32 to 2\\.36 inclusively. Version 2\\.42 has restored the `tag`\nattribute.\n\n\nStarting with microversion 2\\.37, this field is required and the special\nstring values *auto* and *none* can be specified for networks. *auto*\ntells the Compute service to use a network that is available to the\nproject, if one exists. If one does not exist, the Compute service will\nattempt to automatically allocate a network for the project (if possible).\n*none* tells the Compute service to not allocate a network for the\ninstance. The *auto* and *none* values cannot be used with any other\nnetwork values, including other network uuids, ports, fixed IPs or device\ntags. These are requested as strings for the networks value, not in a\nlist. See the associated example."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              },
              "description": "The file path and contents, text only, to inject into the server at launch. The\nmaximum size of the file path data is 255 bytes. The maximum limit is the number\nof allowed bytes in the decoded, rather than encoded, data.\n\n\n**Available until version 2\\.56**"
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ],
                    "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  }
                },
                "additionalProperties": false
              },
              "description": "Enables fine grained control of the block device mapping for an instance. This\nis typically used for booting servers from volumes. An example format would look\nas follows:\n\n\n\n> ```\n> \"block_device_mapping_v2\": [{\n>     \"boot_index\": \"0\",\n>     \"uuid\": \"ac408821-c95a-448f-9292-73986c790911\",\n>     \"source_type\": \"image\",\n>     \"volume_size\": \"25\",\n>     \"destination_type\": \"volume\",\n>     \"delete_on_termination\": true,\n>     \"tag\": \"disk1\",\n>     \"disk_bus\": \"scsi\"}]\n> \n> ```\n\n\nIn microversion 2\\.32, `tag` is an optional string attribute that can\nbe used to assign a tag to the block device. This tag is then exposed to\nthe guest in the metadata API and the config drive and is associated to\nhardware metadata for that block device, such as bus (ex: SCSI), bus\naddress (ex: 1:0:2:0\\), and serial.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.33\\. It has been restored in version 2\\.42\\."
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name",
                    "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
                  }
                },
                "additionalProperties": false
              },
              "description": "One or more security groups. Specify the name of the security group in the\n`name` attribute. If you omit this attribute, the API creates the server\nin the `default` security group. Requested security groups are not\napplied to pre\\-existing ports."
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535,
              "description": "Configuration information or scripts to use upon launch.\nMust be Base64 encoded. Restricted to 65535 bytes.\n\n\n\nNote\n\n\nThe `null` value allowed in Nova legacy v2 API, but due to the strict\ninput validation, it isn\u2019t allowed in Nova v2\\.1 API."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef",
            "networks"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "description": "The dictionary of data to send to the scheduler. Alternatively, you can specify\n`OS-SCH-HNT:scheduler_hints` as the key in the request body.\n\n\n\nNote\n\n\nThis is a top\\-level key in the request body, not part of the\nserver portion of the request body.\n\n\n\nThere are a few caveats with scheduler hints:\n\n\n* The request validation schema is per hint. For example, some require a\nsingle string value, and some accept a list of values.\n* Hints are only used based on the cloud scheduler configuration, which\nvaries per deployment.\n* Hints are pluggable per deployment, meaning that a cloud can have custom\nhints which may not be available in another cloud.\n\n\nFor these reasons, it is important to consult each cloud\u2019s user\ndocumentation to know what is available for scheduler hints.",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.37",
        "max-ver": "2.41"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "description": "A `server` object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ],
              "description": "The UUID of the image to use for your server instance.\nThis is not required in case of boot from volume.\nIn all other cases it is required and must be a valid UUID\notherwise API will return 400\\."
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1,
              "description": "The flavor reference, as an ID (including a UUID) or full URL,\nfor the flavor for your server instance."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fixed_ip": {
                        "type": "string",
                        "oneOf": [
                          {
                            "format": "ipv4"
                          },
                          {
                            "format": "ipv6"
                          }
                        ]
                      },
                      "port": {
                        "oneOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "uuid": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "tag": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60,
                        "pattern": "^[^,/]*$"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "type": "string",
                  "enum": [
                    "none",
                    "auto"
                  ]
                }
              ],
              "description": "A list of `network` object. Required parameter when there are multiple\nnetworks defined for the tenant. When you do not specify the networks\nparameter, the server attaches to the only network created for the\ncurrent tenant. Optionally, you can create one or more NICs on the server.\nTo provision the server instance with a NIC for a network, specify\nthe UUID of the network in the `uuid` attribute in a `networks`\nobject. To provision the server instance with a NIC for an already\nexisting port, specify the port\\-id in the `port` attribute in a\n`networks` object.\n\n\nIf multiple networks are defined, the order in which they appear in the\nguest operating system will not necessarily reflect the order in which they\nare given in the server boot request. Guests should therefore not depend\non device order to deduce any information about their network devices.\nInstead, device role tags should be used: introduced in 2\\.32, broken in\n2\\.37, and re\\-introduced and fixed in 2\\.42, the `tag` is an optional,\nstring attribute that can be used to assign a tag to a virtual network\ninterface. This tag is then exposed to the guest in the metadata API and\nthe config drive and is associated to hardware metadata for that network\ninterface, such as bus (ex: PCI), bus address (ex: 0000:00:02\\.0\\), and MAC\naddress.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.37\\. Therefore, network interfaces could only be tagged in\nversions 2\\.32 to 2\\.36 inclusively. Version 2\\.42 has restored the `tag`\nattribute.\n\n\nStarting with microversion 2\\.37, this field is required and the special\nstring values *auto* and *none* can be specified for networks. *auto*\ntells the Compute service to use a network that is available to the\nproject, if one exists. If one does not exist, the Compute service will\nattempt to automatically allocate a network for the project (if possible).\n*none* tells the Compute service to not allocate a network for the\ninstance. The *auto* and *none* values cannot be used with any other\nnetwork values, including other network uuids, ports, fixed IPs or device\ntags. These are requested as strings for the networks value, not in a\nlist. See the associated example."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              },
              "description": "The file path and contents, text only, to inject into the server at launch. The\nmaximum size of the file path data is 255 bytes. The maximum limit is the number\nof allowed bytes in the decoded, rather than encoded, data.\n\n\n**Available until version 2\\.56**"
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ],
                    "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  }
                },
                "additionalProperties": false
              },
              "description": "Enables fine grained control of the block device mapping for an instance. This\nis typically used for booting servers from volumes. An example format would look\nas follows:\n\n\n\n> ```\n> \"block_device_mapping_v2\": [{\n>     \"boot_index\": \"0\",\n>     \"uuid\": \"ac408821-c95a-448f-9292-73986c790911\",\n>     \"source_type\": \"image\",\n>     \"volume_size\": \"25\",\n>     \"destination_type\": \"volume\",\n>     \"delete_on_termination\": true,\n>     \"tag\": \"disk1\",\n>     \"disk_bus\": \"scsi\"}]\n> \n> ```\n\n\nIn microversion 2\\.32, `tag` is an optional string attribute that can\nbe used to assign a tag to the block device. This tag is then exposed to\nthe guest in the metadata API and the config drive and is associated to\nhardware metadata for that block device, such as bus (ex: SCSI), bus\naddress (ex: 1:0:2:0\\), and serial.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.33\\. It has been restored in version 2\\.42\\."
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name",
                    "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
                  }
                },
                "additionalProperties": false
              },
              "description": "One or more security groups. Specify the name of the security group in the\n`name` attribute. If you omit this attribute, the API creates the server\nin the `default` security group. Requested security groups are not\napplied to pre\\-existing ports."
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535,
              "description": "Configuration information or scripts to use upon launch.\nMust be Base64 encoded. Restricted to 65535 bytes.\n\n\n\nNote\n\n\nThe `null` value allowed in Nova legacy v2 API, but due to the strict\ninput validation, it isn\u2019t allowed in Nova v2\\.1 API."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef",
            "networks"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "description": "The dictionary of data to send to the scheduler. Alternatively, you can specify\n`OS-SCH-HNT:scheduler_hints` as the key in the request body.\n\n\n\nNote\n\n\nThis is a top\\-level key in the request body, not part of the\nserver portion of the request body.\n\n\n\nThere are a few caveats with scheduler hints:\n\n\n* The request validation schema is per hint. For example, some require a\nsingle string value, and some accept a list of values.\n* Hints are only used based on the cloud scheduler configuration, which\nvaries per deployment.\n* Hints are pluggable per deployment, meaning that a cloud can have custom\nhints which may not be available in another cloud.\n\n\nFor these reasons, it is important to consult each cloud\u2019s user\ndocumentation to know what is available for scheduler hints.",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.42",
        "max-ver": "2.51"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "description": "A `server` object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ],
              "description": "The UUID of the image to use for your server instance.\nThis is not required in case of boot from volume.\nIn all other cases it is required and must be a valid UUID\notherwise API will return 400\\."
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1,
              "description": "The flavor reference, as an ID (including a UUID) or full URL,\nfor the flavor for your server instance."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fixed_ip": {
                        "type": "string",
                        "oneOf": [
                          {
                            "format": "ipv4"
                          },
                          {
                            "format": "ipv6"
                          }
                        ]
                      },
                      "port": {
                        "oneOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "uuid": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "tag": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60,
                        "pattern": "^[^,/]*$"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "type": "string",
                  "enum": [
                    "none",
                    "auto"
                  ]
                }
              ],
              "description": "A list of `network` object. Required parameter when there are multiple\nnetworks defined for the tenant. When you do not specify the networks\nparameter, the server attaches to the only network created for the\ncurrent tenant. Optionally, you can create one or more NICs on the server.\nTo provision the server instance with a NIC for a network, specify\nthe UUID of the network in the `uuid` attribute in a `networks`\nobject. To provision the server instance with a NIC for an already\nexisting port, specify the port\\-id in the `port` attribute in a\n`networks` object.\n\n\nIf multiple networks are defined, the order in which they appear in the\nguest operating system will not necessarily reflect the order in which they\nare given in the server boot request. Guests should therefore not depend\non device order to deduce any information about their network devices.\nInstead, device role tags should be used: introduced in 2\\.32, broken in\n2\\.37, and re\\-introduced and fixed in 2\\.42, the `tag` is an optional,\nstring attribute that can be used to assign a tag to a virtual network\ninterface. This tag is then exposed to the guest in the metadata API and\nthe config drive and is associated to hardware metadata for that network\ninterface, such as bus (ex: PCI), bus address (ex: 0000:00:02\\.0\\), and MAC\naddress.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.37\\. Therefore, network interfaces could only be tagged in\nversions 2\\.32 to 2\\.36 inclusively. Version 2\\.42 has restored the `tag`\nattribute.\n\n\nStarting with microversion 2\\.37, this field is required and the special\nstring values *auto* and *none* can be specified for networks. *auto*\ntells the Compute service to use a network that is available to the\nproject, if one exists. If one does not exist, the Compute service will\nattempt to automatically allocate a network for the project (if possible).\n*none* tells the Compute service to not allocate a network for the\ninstance. The *auto* and *none* values cannot be used with any other\nnetwork values, including other network uuids, ports, fixed IPs or device\ntags. These are requested as strings for the networks value, not in a\nlist. See the associated example."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              },
              "description": "The file path and contents, text only, to inject into the server at launch. The\nmaximum size of the file path data is 255 bytes. The maximum limit is the number\nof allowed bytes in the decoded, rather than encoded, data.\n\n\n**Available until version 2\\.56**"
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ],
                    "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  }
                },
                "additionalProperties": false
              },
              "description": "Enables fine grained control of the block device mapping for an instance. This\nis typically used for booting servers from volumes. An example format would look\nas follows:\n\n\n\n> ```\n> \"block_device_mapping_v2\": [{\n>     \"boot_index\": \"0\",\n>     \"uuid\": \"ac408821-c95a-448f-9292-73986c790911\",\n>     \"source_type\": \"image\",\n>     \"volume_size\": \"25\",\n>     \"destination_type\": \"volume\",\n>     \"delete_on_termination\": true,\n>     \"tag\": \"disk1\",\n>     \"disk_bus\": \"scsi\"}]\n> \n> ```\n\n\nIn microversion 2\\.32, `tag` is an optional string attribute that can\nbe used to assign a tag to the block device. This tag is then exposed to\nthe guest in the metadata API and the config drive and is associated to\nhardware metadata for that block device, such as bus (ex: SCSI), bus\naddress (ex: 1:0:2:0\\), and serial.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.33\\. It has been restored in version 2\\.42\\."
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name",
                    "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
                  }
                },
                "additionalProperties": false
              },
              "description": "One or more security groups. Specify the name of the security group in the\n`name` attribute. If you omit this attribute, the API creates the server\nin the `default` security group. Requested security groups are not\napplied to pre\\-existing ports."
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535,
              "description": "Configuration information or scripts to use upon launch.\nMust be Base64 encoded. Restricted to 65535 bytes.\n\n\n\nNote\n\n\nThe `null` value allowed in Nova legacy v2 API, but due to the strict\ninput validation, it isn\u2019t allowed in Nova v2\\.1 API."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 60,
                "pattern": "^[^,/]*$"
              },
              "maxItems": 50,
              "description": "A list of tags. Tags have the following restrictions:\n\n\n* Tag is a Unicode bytestring no longer than 60 characters.\n* Tag is a non\\-empty string.\n* \u2018/\u2019 is not allowed to be in a tag name\n* Comma is not allowed to be in a tag name in order to simplify\nrequests that specify lists of tags\n* All other characters are allowed to be in a tag name\n* Each server can have up to 50 tags.\n\n\n**New in version 2\\.52**"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef",
            "networks"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "description": "The dictionary of data to send to the scheduler. Alternatively, you can specify\n`OS-SCH-HNT:scheduler_hints` as the key in the request body.\n\n\n\nNote\n\n\nThis is a top\\-level key in the request body, not part of the\nserver portion of the request body.\n\n\n\nThere are a few caveats with scheduler hints:\n\n\n* The request validation schema is per hint. For example, some require a\nsingle string value, and some accept a list of values.\n* Hints are only used based on the cloud scheduler configuration, which\nvaries per deployment.\n* Hints are pluggable per deployment, meaning that a cloud can have custom\nhints which may not be available in another cloud.\n\n\nFor these reasons, it is important to consult each cloud\u2019s user\ndocumentation to know what is available for scheduler hints.",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.52",
        "max-ver": "2.56"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "description": "A `server` object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ],
              "description": "The UUID of the image to use for your server instance.\nThis is not required in case of boot from volume.\nIn all other cases it is required and must be a valid UUID\notherwise API will return 400\\."
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1,
              "description": "The flavor reference, as an ID (including a UUID) or full URL,\nfor the flavor for your server instance."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fixed_ip": {
                        "type": "string",
                        "oneOf": [
                          {
                            "format": "ipv4"
                          },
                          {
                            "format": "ipv6"
                          }
                        ]
                      },
                      "port": {
                        "oneOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "uuid": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "tag": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60,
                        "pattern": "^[^,/]*$"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "type": "string",
                  "enum": [
                    "none",
                    "auto"
                  ]
                }
              ],
              "description": "A list of `network` object. Required parameter when there are multiple\nnetworks defined for the tenant. When you do not specify the networks\nparameter, the server attaches to the only network created for the\ncurrent tenant. Optionally, you can create one or more NICs on the server.\nTo provision the server instance with a NIC for a network, specify\nthe UUID of the network in the `uuid` attribute in a `networks`\nobject. To provision the server instance with a NIC for an already\nexisting port, specify the port\\-id in the `port` attribute in a\n`networks` object.\n\n\nIf multiple networks are defined, the order in which they appear in the\nguest operating system will not necessarily reflect the order in which they\nare given in the server boot request. Guests should therefore not depend\non device order to deduce any information about their network devices.\nInstead, device role tags should be used: introduced in 2\\.32, broken in\n2\\.37, and re\\-introduced and fixed in 2\\.42, the `tag` is an optional,\nstring attribute that can be used to assign a tag to a virtual network\ninterface. This tag is then exposed to the guest in the metadata API and\nthe config drive and is associated to hardware metadata for that network\ninterface, such as bus (ex: PCI), bus address (ex: 0000:00:02\\.0\\), and MAC\naddress.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.37\\. Therefore, network interfaces could only be tagged in\nversions 2\\.32 to 2\\.36 inclusively. Version 2\\.42 has restored the `tag`\nattribute.\n\n\nStarting with microversion 2\\.37, this field is required and the special\nstring values *auto* and *none* can be specified for networks. *auto*\ntells the Compute service to use a network that is available to the\nproject, if one exists. If one does not exist, the Compute service will\nattempt to automatically allocate a network for the project (if possible).\n*none* tells the Compute service to not allocate a network for the\ninstance. The *auto* and *none* values cannot be used with any other\nnetwork values, including other network uuids, ports, fixed IPs or device\ntags. These are requested as strings for the networks value, not in a\nlist. See the associated example."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ],
                    "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  }
                },
                "additionalProperties": false
              },
              "description": "Enables fine grained control of the block device mapping for an instance. This\nis typically used for booting servers from volumes. An example format would look\nas follows:\n\n\n\n> ```\n> \"block_device_mapping_v2\": [{\n>     \"boot_index\": \"0\",\n>     \"uuid\": \"ac408821-c95a-448f-9292-73986c790911\",\n>     \"source_type\": \"image\",\n>     \"volume_size\": \"25\",\n>     \"destination_type\": \"volume\",\n>     \"delete_on_termination\": true,\n>     \"tag\": \"disk1\",\n>     \"disk_bus\": \"scsi\"}]\n> \n> ```\n\n\nIn microversion 2\\.32, `tag` is an optional string attribute that can\nbe used to assign a tag to the block device. This tag is then exposed to\nthe guest in the metadata API and the config drive and is associated to\nhardware metadata for that block device, such as bus (ex: SCSI), bus\naddress (ex: 1:0:2:0\\), and serial.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.33\\. It has been restored in version 2\\.42\\."
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name",
                    "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
                  }
                },
                "additionalProperties": false
              },
              "description": "One or more security groups. Specify the name of the security group in the\n`name` attribute. If you omit this attribute, the API creates the server\nin the `default` security group. Requested security groups are not\napplied to pre\\-existing ports."
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535,
              "description": "Configuration information or scripts to use upon launch.\nMust be Base64 encoded. Restricted to 65535 bytes.\n\n\n\nNote\n\n\nThe `null` value allowed in Nova legacy v2 API, but due to the strict\ninput validation, it isn\u2019t allowed in Nova v2\\.1 API."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 60,
                "pattern": "^[^,/]*$"
              },
              "maxItems": 50,
              "description": "A list of tags. Tags have the following restrictions:\n\n\n* Tag is a Unicode bytestring no longer than 60 characters.\n* Tag is a non\\-empty string.\n* \u2018/\u2019 is not allowed to be in a tag name\n* Comma is not allowed to be in a tag name in order to simplify\nrequests that specify lists of tags\n* All other characters are allowed to be in a tag name\n* Each server can have up to 50 tags.\n\n\n**New in version 2\\.52**"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef",
            "networks"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "description": "The dictionary of data to send to the scheduler. Alternatively, you can specify\n`OS-SCH-HNT:scheduler_hints` as the key in the request body.\n\n\n\nNote\n\n\nThis is a top\\-level key in the request body, not part of the\nserver portion of the request body.\n\n\n\nThere are a few caveats with scheduler hints:\n\n\n* The request validation schema is per hint. For example, some require a\nsingle string value, and some accept a list of values.\n* Hints are only used based on the cloud scheduler configuration, which\nvaries per deployment.\n* Hints are pluggable per deployment, meaning that a cloud can have custom\nhints which may not be available in another cloud.\n\n\nFor these reasons, it is important to consult each cloud\u2019s user\ndocumentation to know what is available for scheduler hints.",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.57",
        "max-ver": "2.62"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "description": "A `server` object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ],
              "description": "The UUID of the image to use for your server instance.\nThis is not required in case of boot from volume.\nIn all other cases it is required and must be a valid UUID\notherwise API will return 400\\."
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1,
              "description": "The flavor reference, as an ID (including a UUID) or full URL,\nfor the flavor for your server instance."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fixed_ip": {
                        "type": "string",
                        "oneOf": [
                          {
                            "format": "ipv4"
                          },
                          {
                            "format": "ipv6"
                          }
                        ]
                      },
                      "port": {
                        "oneOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "uuid": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "tag": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60,
                        "pattern": "^[^,/]*$"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "type": "string",
                  "enum": [
                    "none",
                    "auto"
                  ]
                }
              ],
              "description": "A list of `network` object. Required parameter when there are multiple\nnetworks defined for the tenant. When you do not specify the networks\nparameter, the server attaches to the only network created for the\ncurrent tenant. Optionally, you can create one or more NICs on the server.\nTo provision the server instance with a NIC for a network, specify\nthe UUID of the network in the `uuid` attribute in a `networks`\nobject. To provision the server instance with a NIC for an already\nexisting port, specify the port\\-id in the `port` attribute in a\n`networks` object.\n\n\nIf multiple networks are defined, the order in which they appear in the\nguest operating system will not necessarily reflect the order in which they\nare given in the server boot request. Guests should therefore not depend\non device order to deduce any information about their network devices.\nInstead, device role tags should be used: introduced in 2\\.32, broken in\n2\\.37, and re\\-introduced and fixed in 2\\.42, the `tag` is an optional,\nstring attribute that can be used to assign a tag to a virtual network\ninterface. This tag is then exposed to the guest in the metadata API and\nthe config drive and is associated to hardware metadata for that network\ninterface, such as bus (ex: PCI), bus address (ex: 0000:00:02\\.0\\), and MAC\naddress.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.37\\. Therefore, network interfaces could only be tagged in\nversions 2\\.32 to 2\\.36 inclusively. Version 2\\.42 has restored the `tag`\nattribute.\n\n\nStarting with microversion 2\\.37, this field is required and the special\nstring values *auto* and *none* can be specified for networks. *auto*\ntells the Compute service to use a network that is available to the\nproject, if one exists. If one does not exist, the Compute service will\nattempt to automatically allocate a network for the project (if possible).\n*none* tells the Compute service to not allocate a network for the\ninstance. The *auto* and *none* values cannot be used with any other\nnetwork values, including other network uuids, ports, fixed IPs or device\ntags. These are requested as strings for the networks value, not in a\nlist. See the associated example."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ],
                    "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  }
                },
                "additionalProperties": false
              },
              "description": "Enables fine grained control of the block device mapping for an instance. This\nis typically used for booting servers from volumes. An example format would look\nas follows:\n\n\n\n> ```\n> \"block_device_mapping_v2\": [{\n>     \"boot_index\": \"0\",\n>     \"uuid\": \"ac408821-c95a-448f-9292-73986c790911\",\n>     \"source_type\": \"image\",\n>     \"volume_size\": \"25\",\n>     \"destination_type\": \"volume\",\n>     \"delete_on_termination\": true,\n>     \"tag\": \"disk1\",\n>     \"disk_bus\": \"scsi\"}]\n> \n> ```\n\n\nIn microversion 2\\.32, `tag` is an optional string attribute that can\nbe used to assign a tag to the block device. This tag is then exposed to\nthe guest in the metadata API and the config drive and is associated to\nhardware metadata for that block device, such as bus (ex: SCSI), bus\naddress (ex: 1:0:2:0\\), and serial.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.33\\. It has been restored in version 2\\.42\\."
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name",
                    "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
                  }
                },
                "additionalProperties": false
              },
              "description": "One or more security groups. Specify the name of the security group in the\n`name` attribute. If you omit this attribute, the API creates the server\nin the `default` security group. Requested security groups are not\napplied to pre\\-existing ports."
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535,
              "description": "Configuration information or scripts to use upon launch.\nMust be Base64 encoded. Restricted to 65535 bytes.\n\n\n\nNote\n\n\nThe `null` value allowed in Nova legacy v2 API, but due to the strict\ninput validation, it isn\u2019t allowed in Nova v2\\.1 API."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 60,
                "pattern": "^[^,/]*$"
              },
              "maxItems": 50,
              "description": "A list of tags. Tags have the following restrictions:\n\n\n* Tag is a Unicode bytestring no longer than 60 characters.\n* Tag is a non\\-empty string.\n* \u2018/\u2019 is not allowed to be in a tag name\n* Comma is not allowed to be in a tag name in order to simplify\nrequests that specify lists of tags\n* All other characters are allowed to be in a tag name\n* Each server can have up to 50 tags.\n\n\n**New in version 2\\.52**"
            },
            "trusted_image_certificates": {
              "type": [
                "array",
                "null"
              ],
              "minItems": 1,
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "minLength": 1
              },
              "description": "A list of trusted certificate IDs, which are used during image\nsignature verification to verify the signing certificate. The list is\nrestricted to a maximum of 50 IDs. This parameter is optional in server\ncreate requests if allowed by policy, and is not supported for\nvolume\\-backed instances.\n\n\n**New in version 2\\.63**"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef",
            "networks"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "description": "The dictionary of data to send to the scheduler. Alternatively, you can specify\n`OS-SCH-HNT:scheduler_hints` as the key in the request body.\n\n\n\nNote\n\n\nThis is a top\\-level key in the request body, not part of the\nserver portion of the request body.\n\n\n\nThere are a few caveats with scheduler hints:\n\n\n* The request validation schema is per hint. For example, some require a\nsingle string value, and some accept a list of values.\n* Hints are only used based on the cloud scheduler configuration, which\nvaries per deployment.\n* Hints are pluggable per deployment, meaning that a cloud can have custom\nhints which may not be available in another cloud.\n\n\nFor these reasons, it is important to consult each cloud\u2019s user\ndocumentation to know what is available for scheduler hints.",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.63",
        "max-ver": "2.66"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "description": "A `server` object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ],
              "description": "The UUID of the image to use for your server instance.\nThis is not required in case of boot from volume.\nIn all other cases it is required and must be a valid UUID\notherwise API will return 400\\."
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1,
              "description": "The flavor reference, as an ID (including a UUID) or full URL,\nfor the flavor for your server instance."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fixed_ip": {
                        "type": "string",
                        "oneOf": [
                          {
                            "format": "ipv4"
                          },
                          {
                            "format": "ipv6"
                          }
                        ]
                      },
                      "port": {
                        "oneOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "uuid": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "tag": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60,
                        "pattern": "^[^,/]*$"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "type": "string",
                  "enum": [
                    "none",
                    "auto"
                  ]
                }
              ],
              "description": "A list of `network` object. Required parameter when there are multiple\nnetworks defined for the tenant. When you do not specify the networks\nparameter, the server attaches to the only network created for the\ncurrent tenant. Optionally, you can create one or more NICs on the server.\nTo provision the server instance with a NIC for a network, specify\nthe UUID of the network in the `uuid` attribute in a `networks`\nobject. To provision the server instance with a NIC for an already\nexisting port, specify the port\\-id in the `port` attribute in a\n`networks` object.\n\n\nIf multiple networks are defined, the order in which they appear in the\nguest operating system will not necessarily reflect the order in which they\nare given in the server boot request. Guests should therefore not depend\non device order to deduce any information about their network devices.\nInstead, device role tags should be used: introduced in 2\\.32, broken in\n2\\.37, and re\\-introduced and fixed in 2\\.42, the `tag` is an optional,\nstring attribute that can be used to assign a tag to a virtual network\ninterface. This tag is then exposed to the guest in the metadata API and\nthe config drive and is associated to hardware metadata for that network\ninterface, such as bus (ex: PCI), bus address (ex: 0000:00:02\\.0\\), and MAC\naddress.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.37\\. Therefore, network interfaces could only be tagged in\nversions 2\\.32 to 2\\.36 inclusively. Version 2\\.42 has restored the `tag`\nattribute.\n\n\nStarting with microversion 2\\.37, this field is required and the special\nstring values *auto* and *none* can be specified for networks. *auto*\ntells the Compute service to use a network that is available to the\nproject, if one exists. If one does not exist, the Compute service will\nattempt to automatically allocate a network for the project (if possible).\n*none* tells the Compute service to not allocate a network for the\ninstance. The *auto* and *none* values cannot be used with any other\nnetwork values, including other network uuids, ports, fixed IPs or device\ntags. These are requested as strings for the networks value, not in a\nlist. See the associated example."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ],
                    "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  },
                  "volume_type": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "minLength": 0,
                    "maxLength": 255
                  }
                },
                "additionalProperties": false
              },
              "description": "Enables fine grained control of the block device mapping for an instance. This\nis typically used for booting servers from volumes. An example format would look\nas follows:\n\n\n\n> ```\n> \"block_device_mapping_v2\": [{\n>     \"boot_index\": \"0\",\n>     \"uuid\": \"ac408821-c95a-448f-9292-73986c790911\",\n>     \"source_type\": \"image\",\n>     \"volume_size\": \"25\",\n>     \"destination_type\": \"volume\",\n>     \"delete_on_termination\": true,\n>     \"tag\": \"disk1\",\n>     \"disk_bus\": \"scsi\"}]\n> \n> ```\n\n\nIn microversion 2\\.32, `tag` is an optional string attribute that can\nbe used to assign a tag to the block device. This tag is then exposed to\nthe guest in the metadata API and the config drive and is associated to\nhardware metadata for that block device, such as bus (ex: SCSI), bus\naddress (ex: 1:0:2:0\\), and serial.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.33\\. It has been restored in version 2\\.42\\."
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name",
                    "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
                  }
                },
                "additionalProperties": false
              },
              "description": "One or more security groups. Specify the name of the security group in the\n`name` attribute. If you omit this attribute, the API creates the server\nin the `default` security group. Requested security groups are not\napplied to pre\\-existing ports."
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535,
              "description": "Configuration information or scripts to use upon launch.\nMust be Base64 encoded. Restricted to 65535 bytes.\n\n\n\nNote\n\n\nThe `null` value allowed in Nova legacy v2 API, but due to the strict\ninput validation, it isn\u2019t allowed in Nova v2\\.1 API."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 60,
                "pattern": "^[^,/]*$"
              },
              "maxItems": 50,
              "description": "A list of tags. Tags have the following restrictions:\n\n\n* Tag is a Unicode bytestring no longer than 60 characters.\n* Tag is a non\\-empty string.\n* \u2018/\u2019 is not allowed to be in a tag name\n* Comma is not allowed to be in a tag name in order to simplify\nrequests that specify lists of tags\n* All other characters are allowed to be in a tag name\n* Each server can have up to 50 tags.\n\n\n**New in version 2\\.52**"
            },
            "trusted_image_certificates": {
              "type": [
                "array",
                "null"
              ],
              "minItems": 1,
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "minLength": 1
              },
              "description": "A list of trusted certificate IDs, which are used during image\nsignature verification to verify the signing certificate. The list is\nrestricted to a maximum of 50 IDs. This parameter is optional in server\ncreate requests if allowed by policy, and is not supported for\nvolume\\-backed instances.\n\n\n**New in version 2\\.63**"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef",
            "networks"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "description": "The dictionary of data to send to the scheduler. Alternatively, you can specify\n`OS-SCH-HNT:scheduler_hints` as the key in the request body.\n\n\n\nNote\n\n\nThis is a top\\-level key in the request body, not part of the\nserver portion of the request body.\n\n\n\nThere are a few caveats with scheduler hints:\n\n\n* The request validation schema is per hint. For example, some require a\nsingle string value, and some accept a list of values.\n* Hints are only used based on the cloud scheduler configuration, which\nvaries per deployment.\n* Hints are pluggable per deployment, meaning that a cloud can have custom\nhints which may not be available in another cloud.\n\n\nFor these reasons, it is important to consult each cloud\u2019s user\ndocumentation to know what is available for scheduler hints.",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.67",
        "max-ver": "2.73"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "description": "A `server` object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ],
              "description": "The UUID of the image to use for your server instance.\nThis is not required in case of boot from volume.\nIn all other cases it is required and must be a valid UUID\notherwise API will return 400\\."
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1,
              "description": "The flavor reference, as an ID (including a UUID) or full URL,\nfor the flavor for your server instance."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fixed_ip": {
                        "type": "string",
                        "oneOf": [
                          {
                            "format": "ipv4"
                          },
                          {
                            "format": "ipv6"
                          }
                        ]
                      },
                      "port": {
                        "oneOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "uuid": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "tag": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60,
                        "pattern": "^[^,/]*$"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "type": "string",
                  "enum": [
                    "none",
                    "auto"
                  ]
                }
              ],
              "description": "A list of `network` object. Required parameter when there are multiple\nnetworks defined for the tenant. When you do not specify the networks\nparameter, the server attaches to the only network created for the\ncurrent tenant. Optionally, you can create one or more NICs on the server.\nTo provision the server instance with a NIC for a network, specify\nthe UUID of the network in the `uuid` attribute in a `networks`\nobject. To provision the server instance with a NIC for an already\nexisting port, specify the port\\-id in the `port` attribute in a\n`networks` object.\n\n\nIf multiple networks are defined, the order in which they appear in the\nguest operating system will not necessarily reflect the order in which they\nare given in the server boot request. Guests should therefore not depend\non device order to deduce any information about their network devices.\nInstead, device role tags should be used: introduced in 2\\.32, broken in\n2\\.37, and re\\-introduced and fixed in 2\\.42, the `tag` is an optional,\nstring attribute that can be used to assign a tag to a virtual network\ninterface. This tag is then exposed to the guest in the metadata API and\nthe config drive and is associated to hardware metadata for that network\ninterface, such as bus (ex: PCI), bus address (ex: 0000:00:02\\.0\\), and MAC\naddress.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.37\\. Therefore, network interfaces could only be tagged in\nversions 2\\.32 to 2\\.36 inclusively. Version 2\\.42 has restored the `tag`\nattribute.\n\n\nStarting with microversion 2\\.37, this field is required and the special\nstring values *auto* and *none* can be specified for networks. *auto*\ntells the Compute service to use a network that is available to the\nproject, if one exists. If one does not exist, the Compute service will\nattempt to automatically allocate a network for the project (if possible).\n*none* tells the Compute service to not allocate a network for the\ninstance. The *auto* and *none* values cannot be used with any other\nnetwork values, including other network uuids, ports, fixed IPs or device\ntags. These are requested as strings for the networks value, not in a\nlist. See the associated example."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ],
                    "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  },
                  "volume_type": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "minLength": 0,
                    "maxLength": 255
                  }
                },
                "additionalProperties": false
              },
              "description": "Enables fine grained control of the block device mapping for an instance. This\nis typically used for booting servers from volumes. An example format would look\nas follows:\n\n\n\n> ```\n> \"block_device_mapping_v2\": [{\n>     \"boot_index\": \"0\",\n>     \"uuid\": \"ac408821-c95a-448f-9292-73986c790911\",\n>     \"source_type\": \"image\",\n>     \"volume_size\": \"25\",\n>     \"destination_type\": \"volume\",\n>     \"delete_on_termination\": true,\n>     \"tag\": \"disk1\",\n>     \"disk_bus\": \"scsi\"}]\n> \n> ```\n\n\nIn microversion 2\\.32, `tag` is an optional string attribute that can\nbe used to assign a tag to the block device. This tag is then exposed to\nthe guest in the metadata API and the config drive and is associated to\nhardware metadata for that block device, such as bus (ex: SCSI), bus\naddress (ex: 1:0:2:0\\), and serial.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.33\\. It has been restored in version 2\\.42\\."
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name",
                    "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
                  }
                },
                "additionalProperties": false
              },
              "description": "One or more security groups. Specify the name of the security group in the\n`name` attribute. If you omit this attribute, the API creates the server\nin the `default` security group. Requested security groups are not\napplied to pre\\-existing ports."
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535,
              "description": "Configuration information or scripts to use upon launch.\nMust be Base64 encoded. Restricted to 65535 bytes.\n\n\n\nNote\n\n\nThe `null` value allowed in Nova legacy v2 API, but due to the strict\ninput validation, it isn\u2019t allowed in Nova v2\\.1 API."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 60,
                "pattern": "^[^,/]*$"
              },
              "maxItems": 50,
              "description": "A list of tags. Tags have the following restrictions:\n\n\n* Tag is a Unicode bytestring no longer than 60 characters.\n* Tag is a non\\-empty string.\n* \u2018/\u2019 is not allowed to be in a tag name\n* Comma is not allowed to be in a tag name in order to simplify\nrequests that specify lists of tags\n* All other characters are allowed to be in a tag name\n* Each server can have up to 50 tags.\n\n\n**New in version 2\\.52**"
            },
            "trusted_image_certificates": {
              "type": [
                "array",
                "null"
              ],
              "minItems": 1,
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "minLength": 1
              },
              "description": "A list of trusted certificate IDs, which are used during image\nsignature verification to verify the signing certificate. The list is\nrestricted to a maximum of 50 IDs. This parameter is optional in server\ncreate requests if allowed by policy, and is not supported for\nvolume\\-backed instances.\n\n\n**New in version 2\\.63**"
            },
            "host": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$",
              "description": "The hostname of the hypervisor on which the server is to be created.\nThe API will return 400 if no hypervisors are found with the given\nhostname. By default, it can be specified by administrators only.\n\n\n**New in version 2\\.74**"
            },
            "hypervisor_hostname": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$",
              "description": "The hostname of the hypervisor on which the server is to be created.\nThe API will return 400 if no hypervisors are found with the given\nhostname. By default, it can be specified by administrators only.\n\n\n**New in version 2\\.74**"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef",
            "networks"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "description": "The dictionary of data to send to the scheduler. Alternatively, you can specify\n`OS-SCH-HNT:scheduler_hints` as the key in the request body.\n\n\n\nNote\n\n\nThis is a top\\-level key in the request body, not part of the\nserver portion of the request body.\n\n\n\nThere are a few caveats with scheduler hints:\n\n\n* The request validation schema is per hint. For example, some require a\nsingle string value, and some accept a list of values.\n* Hints are only used based on the cloud scheduler configuration, which\nvaries per deployment.\n* Hints are pluggable per deployment, meaning that a cloud can have custom\nhints which may not be available in another cloud.\n\n\nFor these reasons, it is important to consult each cloud\u2019s user\ndocumentation to know what is available for scheduler hints.",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.74",
        "max-ver": "2.89"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "description": "A `server` object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ],
              "description": "The UUID of the image to use for your server instance.\nThis is not required in case of boot from volume.\nIn all other cases it is required and must be a valid UUID\notherwise API will return 400\\."
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1,
              "description": "The flavor reference, as an ID (including a UUID) or full URL,\nfor the flavor for your server instance."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fixed_ip": {
                        "type": "string",
                        "oneOf": [
                          {
                            "format": "ipv4"
                          },
                          {
                            "format": "ipv6"
                          }
                        ]
                      },
                      "port": {
                        "oneOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "uuid": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "tag": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60,
                        "pattern": "^[^,/]*$"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "type": "string",
                  "enum": [
                    "none",
                    "auto"
                  ]
                }
              ],
              "description": "A list of `network` object. Required parameter when there are multiple\nnetworks defined for the tenant. When you do not specify the networks\nparameter, the server attaches to the only network created for the\ncurrent tenant. Optionally, you can create one or more NICs on the server.\nTo provision the server instance with a NIC for a network, specify\nthe UUID of the network in the `uuid` attribute in a `networks`\nobject. To provision the server instance with a NIC for an already\nexisting port, specify the port\\-id in the `port` attribute in a\n`networks` object.\n\n\nIf multiple networks are defined, the order in which they appear in the\nguest operating system will not necessarily reflect the order in which they\nare given in the server boot request. Guests should therefore not depend\non device order to deduce any information about their network devices.\nInstead, device role tags should be used: introduced in 2\\.32, broken in\n2\\.37, and re\\-introduced and fixed in 2\\.42, the `tag` is an optional,\nstring attribute that can be used to assign a tag to a virtual network\ninterface. This tag is then exposed to the guest in the metadata API and\nthe config drive and is associated to hardware metadata for that network\ninterface, such as bus (ex: PCI), bus address (ex: 0000:00:02\\.0\\), and MAC\naddress.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.37\\. Therefore, network interfaces could only be tagged in\nversions 2\\.32 to 2\\.36 inclusively. Version 2\\.42 has restored the `tag`\nattribute.\n\n\nStarting with microversion 2\\.37, this field is required and the special\nstring values *auto* and *none* can be specified for networks. *auto*\ntells the Compute service to use a network that is available to the\nproject, if one exists. If one does not exist, the Compute service will\nattempt to automatically allocate a network for the project (if possible).\n*none* tells the Compute service to not allocate a network for the\ninstance. The *auto* and *none* values cannot be used with any other\nnetwork values, including other network uuids, ports, fixed IPs or device\ntags. These are requested as strings for the networks value, not in a\nlist. See the associated example."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ],
                    "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  },
                  "volume_type": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "minLength": 0,
                    "maxLength": 255
                  }
                },
                "additionalProperties": false
              },
              "description": "Enables fine grained control of the block device mapping for an instance. This\nis typically used for booting servers from volumes. An example format would look\nas follows:\n\n\n\n> ```\n> \"block_device_mapping_v2\": [{\n>     \"boot_index\": \"0\",\n>     \"uuid\": \"ac408821-c95a-448f-9292-73986c790911\",\n>     \"source_type\": \"image\",\n>     \"volume_size\": \"25\",\n>     \"destination_type\": \"volume\",\n>     \"delete_on_termination\": true,\n>     \"tag\": \"disk1\",\n>     \"disk_bus\": \"scsi\"}]\n> \n> ```\n\n\nIn microversion 2\\.32, `tag` is an optional string attribute that can\nbe used to assign a tag to the block device. This tag is then exposed to\nthe guest in the metadata API and the config drive and is associated to\nhardware metadata for that block device, such as bus (ex: SCSI), bus\naddress (ex: 1:0:2:0\\), and serial.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.33\\. It has been restored in version 2\\.42\\."
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name",
                    "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
                  }
                },
                "additionalProperties": false
              },
              "description": "One or more security groups. Specify the name of the security group in the\n`name` attribute. If you omit this attribute, the API creates the server\nin the `default` security group. Requested security groups are not\napplied to pre\\-existing ports."
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535,
              "description": "Configuration information or scripts to use upon launch.\nMust be Base64 encoded. Restricted to 65535 bytes.\n\n\n\nNote\n\n\nThe `null` value allowed in Nova legacy v2 API, but due to the strict\ninput validation, it isn\u2019t allowed in Nova v2\\.1 API."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 60,
                "pattern": "^[^,/]*$"
              },
              "maxItems": 50,
              "description": "A list of tags. Tags have the following restrictions:\n\n\n* Tag is a Unicode bytestring no longer than 60 characters.\n* Tag is a non\\-empty string.\n* \u2018/\u2019 is not allowed to be in a tag name\n* Comma is not allowed to be in a tag name in order to simplify\nrequests that specify lists of tags\n* All other characters are allowed to be in a tag name\n* Each server can have up to 50 tags.\n\n\n**New in version 2\\.52**"
            },
            "trusted_image_certificates": {
              "type": [
                "array",
                "null"
              ],
              "minItems": 1,
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "minLength": 1
              },
              "description": "A list of trusted certificate IDs, which are used during image\nsignature verification to verify the signing certificate. The list is\nrestricted to a maximum of 50 IDs. This parameter is optional in server\ncreate requests if allowed by policy, and is not supported for\nvolume\\-backed instances.\n\n\n**New in version 2\\.63**"
            },
            "host": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$",
              "description": "The hostname of the hypervisor on which the server is to be created.\nThe API will return 400 if no hypervisors are found with the given\nhostname. By default, it can be specified by administrators only.\n\n\n**New in version 2\\.74**"
            },
            "hypervisor_hostname": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$",
              "description": "The hostname of the hypervisor on which the server is to be created.\nThe API will return 400 if no hypervisors are found with the given\nhostname. By default, it can be specified by administrators only.\n\n\n**New in version 2\\.74**"
            },
            "hostname": {
              "type": "string",
              "minLength": 2,
              "maxLength": 63,
              "pattern": "^[a-zA-Z0-9]+[a-zA-Z0-9-]*[a-zA-Z0-9]+$",
              "description": "The hostname to configure for the instance in the metadata service.\n\n\nStarting with microversion 2\\.94, this can be a Fully Qualified Domain Name\n(FQDN) of up to 255 characters in length.\n\n\n\nNote\n\n\nThis information is published via the metadata service and requires\napplication such as `cloud-init` to propagate it through to the\ninstance.\n\n\n\n**New in version 2\\.90**"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef",
            "networks"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "description": "The dictionary of data to send to the scheduler. Alternatively, you can specify\n`OS-SCH-HNT:scheduler_hints` as the key in the request body.\n\n\n\nNote\n\n\nThis is a top\\-level key in the request body, not part of the\nserver portion of the request body.\n\n\n\nThere are a few caveats with scheduler hints:\n\n\n* The request validation schema is per hint. For example, some require a\nsingle string value, and some accept a list of values.\n* Hints are only used based on the cloud scheduler configuration, which\nvaries per deployment.\n* Hints are pluggable per deployment, meaning that a cloud can have custom\nhints which may not be available in another cloud.\n\n\nFor these reasons, it is important to consult each cloud\u2019s user\ndocumentation to know what is available for scheduler hints.",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.90",
        "max-ver": "2.93"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "description": "A `server` object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "imageRef": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "string",
                  "maxLength": 0
                }
              ],
              "description": "The UUID of the image to use for your server instance.\nThis is not required in case of boot from volume.\nIn all other cases it is required and must be a valid UUID\notherwise API will return 400\\."
            },
            "flavorRef": {
              "type": [
                "string",
                "integer"
              ],
              "minLength": 1,
              "description": "The flavor reference, as an ID (including a UUID) or full URL,\nfor the flavor for your server instance."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "networks": {
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fixed_ip": {
                        "type": "string",
                        "oneOf": [
                          {
                            "format": "ipv4"
                          },
                          {
                            "format": "ipv6"
                          }
                        ]
                      },
                      "port": {
                        "oneOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "uuid": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "tag": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60,
                        "pattern": "^[^,/]*$"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                {
                  "type": "string",
                  "enum": [
                    "none",
                    "auto"
                  ]
                }
              ],
              "description": "A list of `network` object. Required parameter when there are multiple\nnetworks defined for the tenant. When you do not specify the networks\nparameter, the server attaches to the only network created for the\ncurrent tenant. Optionally, you can create one or more NICs on the server.\nTo provision the server instance with a NIC for a network, specify\nthe UUID of the network in the `uuid` attribute in a `networks`\nobject. To provision the server instance with a NIC for an already\nexisting port, specify the port\\-id in the `port` attribute in a\n`networks` object.\n\n\nIf multiple networks are defined, the order in which they appear in the\nguest operating system will not necessarily reflect the order in which they\nare given in the server boot request. Guests should therefore not depend\non device order to deduce any information about their network devices.\nInstead, device role tags should be used: introduced in 2\\.32, broken in\n2\\.37, and re\\-introduced and fixed in 2\\.42, the `tag` is an optional,\nstring attribute that can be used to assign a tag to a virtual network\ninterface. This tag is then exposed to the guest in the metadata API and\nthe config drive and is associated to hardware metadata for that network\ninterface, such as bus (ex: PCI), bus address (ex: 0000:00:02\\.0\\), and MAC\naddress.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.37\\. Therefore, network interfaces could only be tagged in\nversions 2\\.32 to 2\\.36 inclusively. Version 2\\.42 has restored the `tag`\nattribute.\n\n\nStarting with microversion 2\\.37, this field is required and the special\nstring values *auto* and *none* can be specified for networks. *auto*\ntells the Compute service to use a network that is available to the\nproject, if one exists. If one does not exist, the Compute service will\nattempt to automatically allocate a network for the project (if possible).\n*none* tells the Compute service to not allocate a network for the\ninstance. The *auto* and *none* values cannot be used with any other\nnetwork values, including other network uuids, ports, fixed IPs or device\ntags. These are requested as strings for the networks value, not in a\nlist. See the associated example."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "block_device_mapping": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ],
                    "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  }
                },
                "additionalProperties": false
              }
            },
            "block_device_mapping_v2": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "virtual_name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "volume_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "snapshot_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "volume_size": {
                    "type": [
                      "integer",
                      "string"
                    ],
                    "pattern": "^[0-9]+$",
                    "minimum": 1,
                    "maximum": 2147483647
                  },
                  "device_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-r/]*$"
                  },
                  "delete_on_termination": {
                    "type": [
                      "boolean",
                      "string"
                    ],
                    "enum": [
                      true,
                      "True",
                      "TRUE",
                      "true",
                      "1",
                      "ON",
                      "On",
                      "on",
                      "YES",
                      "Yes",
                      "yes",
                      false,
                      "False",
                      "FALSE",
                      "false",
                      "0",
                      "OFF",
                      "Off",
                      "off",
                      "NO",
                      "No",
                      "no"
                    ]
                  },
                  "no_device": {},
                  "connection_info": {
                    "type": "string",
                    "maxLength": 16777215
                  },
                  "source_type": {
                    "type": "string",
                    "enum": [
                      "volume",
                      "image",
                      "snapshot",
                      "blank"
                    ]
                  },
                  "uuid": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "pattern": "^[a-zA-Z0-9._-]*$"
                  },
                  "image_id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "destination_type": {
                    "type": "string",
                    "enum": [
                      "local",
                      "volume"
                    ]
                  },
                  "guest_format": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "device_type": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "disk_bus": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "boot_index": {
                    "type": [
                      "integer",
                      "string",
                      "null"
                    ],
                    "pattern": "^-?[0-9]+$"
                  },
                  "tag": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^,/]*$"
                  },
                  "volume_type": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "minLength": 0,
                    "maxLength": 255
                  }
                },
                "additionalProperties": false
              },
              "description": "Enables fine grained control of the block device mapping for an instance. This\nis typically used for booting servers from volumes. An example format would look\nas follows:\n\n\n\n> ```\n> \"block_device_mapping_v2\": [{\n>     \"boot_index\": \"0\",\n>     \"uuid\": \"ac408821-c95a-448f-9292-73986c790911\",\n>     \"source_type\": \"image\",\n>     \"volume_size\": \"25\",\n>     \"destination_type\": \"volume\",\n>     \"delete_on_termination\": true,\n>     \"tag\": \"disk1\",\n>     \"disk_bus\": \"scsi\"}]\n> \n> ```\n\n\nIn microversion 2\\.32, `tag` is an optional string attribute that can\nbe used to assign a tag to the block device. This tag is then exposed to\nthe guest in the metadata API and the config drive and is associated to\nhardware metadata for that block device, such as bus (ex: SCSI), bus\naddress (ex: 1:0:2:0\\), and serial.\n\n\nA bug has caused the `tag` attribute to no longer be accepted starting\nwith version 2\\.33\\. It has been restored in version 2\\.42\\."
            },
            "config_drive": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "key_name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "min_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "max_count": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 1,
              "minLength": 1
            },
            "return_reservation_id": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether a config drive enables metadata injection. The config_drive\nsetting provides information about a drive that the instance can mount at boot\ntime. The instance reads files from the drive to get information that is normally\navailable through the metadata service. This metadata is different from the user\ndata. Not all cloud providers enable the `config_drive`. Read more in the\n[OpenStack End User Guide](https://docs.openstack.org/nova/latest/user/config-drive.html)."
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 255,
                    "format": "name",
                    "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
                  }
                },
                "additionalProperties": false
              },
              "description": "One or more security groups. Specify the name of the security group in the\n`name` attribute. If you omit this attribute, the API creates the server\nin the `default` security group. Requested security groups are not\napplied to pre\\-existing ports."
            },
            "user_data": {
              "type": "string",
              "format": "base64",
              "maxLength": 65535,
              "description": "Configuration information or scripts to use upon launch.\nMust be Base64 encoded. Restricted to 65535 bytes.\n\n\n\nNote\n\n\nThe `null` value allowed in Nova legacy v2 API, but due to the strict\ninput validation, it isn\u2019t allowed in Nova v2\\.1 API."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 60,
                "pattern": "^[^,/]*$"
              },
              "maxItems": 50,
              "description": "A list of tags. Tags have the following restrictions:\n\n\n* Tag is a Unicode bytestring no longer than 60 characters.\n* Tag is a non\\-empty string.\n* \u2018/\u2019 is not allowed to be in a tag name\n* Comma is not allowed to be in a tag name in order to simplify\nrequests that specify lists of tags\n* All other characters are allowed to be in a tag name\n* Each server can have up to 50 tags.\n\n\n**New in version 2\\.52**"
            },
            "trusted_image_certificates": {
              "type": [
                "array",
                "null"
              ],
              "minItems": 1,
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "minLength": 1
              },
              "description": "A list of trusted certificate IDs, which are used during image\nsignature verification to verify the signing certificate. The list is\nrestricted to a maximum of 50 IDs. This parameter is optional in server\ncreate requests if allowed by policy, and is not supported for\nvolume\\-backed instances.\n\n\n**New in version 2\\.63**"
            },
            "host": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$",
              "description": "The hostname of the hypervisor on which the server is to be created.\nThe API will return 400 if no hypervisors are found with the given\nhostname. By default, it can be specified by administrators only.\n\n\n**New in version 2\\.74**"
            },
            "hypervisor_hostname": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$",
              "description": "The hostname of the hypervisor on which the server is to be created.\nThe API will return 400 if no hypervisors are found with the given\nhostname. By default, it can be specified by administrators only.\n\n\n**New in version 2\\.74**"
            },
            "hostname": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$",
              "description": "The hostname to configure for the instance in the metadata service.\n\n\nStarting with microversion 2\\.94, this can be a Fully Qualified Domain Name\n(FQDN) of up to 255 characters in length.\n\n\n\nNote\n\n\nThis information is published via the metadata service and requires\napplication such as `cloud-init` to propagate it through to the\ninstance.\n\n\n\n**New in version 2\\.90**"
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "flavorRef",
            "networks"
          ]
        },
        "os:scheduler_hints": {
          "type": "object",
          "description": "The dictionary of data to send to the scheduler. Alternatively, you can specify\n`OS-SCH-HNT:scheduler_hints` as the key in the request body.\n\n\n\nNote\n\n\nThis is a top\\-level key in the request body, not part of the\nserver portion of the request body.\n\n\n\nThere are a few caveats with scheduler hints:\n\n\n* The request validation schema is per hint. For example, some require a\nsingle string value, and some accept a list of values.\n* Hints are only used based on the cloud scheduler configuration, which\nvaries per deployment.\n* Hints are pluggable per deployment, meaning that a cloud can have custom\nhints which may not be available in another cloud.\n\n\nFor these reasons, it is important to consult each cloud\u2019s user\ndocumentation to know what is available for scheduler hints.",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        },
        "OS-SCH-HNT:scheduler_hints": {
          "type": "object",
          "properties": {
            "group": {
              "type": "string",
              "format": "uuid",
              "description": "The server group UUID. Schedule the server according to a policy of\nthe server group (`anti-affinity`, `affinity`, `soft-anti-affinity`\nor `soft-affinity`).\nIt is available when `ServerGroupAffinityFilter`,\n`ServerGroupAntiAffinityFilter`, `ServerGroupSoftAntiAffinityWeigher`,\n`ServerGroupSoftAffinityWeigher` are available on cloud side."
            },
            "different_host": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "uuid"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              ],
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on a different host from a set of servers.\nIt is available when `DifferentHostFilter` is available on cloud side."
            },
            "same_host": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string",
                "format": "uuid"
              },
              "description": "A list of server UUIDs or a server UUID.\nSchedule the server on the same host as another server in a set of\nservers.\nIt is available when `SameHostFilter` is available on cloud side."
            },
            "query": {
              "type": [
                "string",
                "object"
              ],
              "description": "Schedule the server by using a custom filter in JSON format.\nFor example:\n\n\n\n```\n\"query\": \"[\\\">=\\\",\\\"$free_ram_mb\\\",1024]\"\n\n```\n\n\nIt is available when `JsonFilter` is available on cloud side."
            },
            "target_cell": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "A target cell name. Schedule the server in a host in the cell specified.\nIt is available when `TargetCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "different_cell": {
              "type": [
                "string",
                "array"
              ],
              "items": {
                "type": "string"
              },
              "description": "A list of cell routes or a cell route (string).\nSchedule the server in a cell that is not specified.\nIt is available when `DifferentCellFilter` is available on cloud side\nthat is cell v1 environment."
            },
            "build_near_host_ip": {
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ],
              "description": "Schedule the server on a host in the network specified with this parameter\nand a cidr (`os:scheduler_hints.cidr`).\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            },
            "cidr": {
              "type": "string",
              "pattern": "^/[0-9a-f.:]+$",
              "description": "Schedule the server on a host in the network specified with an IP address\n(`os:scheduler_hints:build_near_host_ip`) and this parameter.\nIf `os:scheduler_hints:build_near_host_ip` is specified and\nthis parameter is omitted, `/24` is used.\nIt is available when `SimpleCIDRAffinityFilter` is available\non cloud side."
            }
          },
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.94"
      },
      "required": [
        "server"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion"
  }
}

Responses

202

Ok

{
  "oneOf": [
    {
      "type": "object",
      "description": "Created server object",
      "properties": {
        "server": {
          "type": "object",
          "properties": {
            "OS-DCF:diskConfig": {
              "type": "string",
              "description": "Disk configuration. The value is either:\n\n\n* `AUTO`. The API builds the server with a single partition the size of\nthe target flavor disk. The API automatically adjusts the file system to\nfit the entire partition.\n* `MANUAL`. The API builds the server by using the partition scheme and\nfile system that is in the source image. If the target flavor disk is\nlarger, The API does not partition the remaining disk space.",
              "enum": [
                "AUTO",
                "MANUAL"
              ]
            },
            "adminPass": {
              "type": "string",
              "format": "password",
              "description": "The administrative password for the server. If you set `enable_instance_password` configuration\noption to `False`, the API wouldn\u2019t return the `adminPass` field in response."
            },
            "id": {
              "type": "string",
              "format": "uuid",
              "description": "The UUID of the server.",
              "readOnly": true
            },
            "security_groups": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The security group name"
                  }
                }
              },
              "description": "One or more security groups objects."
            },
            "links": {
              "type": "array",
              "description": "Links pertaining to usage. See [API Guide / Links and\nReferences](https://docs.openstack.org/api-guide/compute/links_and_references.html)\nfor more info.\n\n\n**New in version 2\\.40**",
              "items": {
                "type": "object",
                "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
                "properties": {
                  "href": {
                    "type": "string",
                    "format": "uri"
                  },
                  "rel": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "description": "A `server` object."
        }
      }
    },
    {
      "type": "object",
      "properties": {
        "reservation_id": {
          "type": "string",
          "description": "The reservation id for the server. This is an id that can be useful in tracking groups of servers created with multiple create, that will all have the same reservation_id."
        }
      }
    }
  ]
}
400

Error

403

Error

409

Error

List Servers Detailed

For each server, shows server details including config drive, extended status, and server usage information.

The extended status information appears in the OS-EXT-STS:vm_state, OS-EXT-STS:power_state, and OS-EXT-STS:task_state attributes.

The server usage information appears in the OS-SRV-USG:launched_at and OS-SRV-USG:terminated_at attributes.

HostId is unique per account and is not globally unique.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "servers": {
      "type": "array",
      "items": {
        "type": "object",
        "description": "Server object",
        "properties": {
          "accessIPv4": {
            "description": "IPv4 address that should be used to access this server. May be\nautomatically set by the provider.",
            "type": "string",
            "format": "ipv4"
          },
          "accessIPv6": {
            "description": "IPv6 address that should be used to access this server. May be\nautomatically set by the provider.",
            "type": "string",
            "format": "ipv6"
          },
          "addresses": {
            "type": "object",
            "description": "The addresses for the server. Servers with status `BUILD` hide their\naddresses information.\nThis view is not updated immediately.\nPlease consult with OpenStack Networking API for up\\-to\\-date information.",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "addr": {
                    "description": "The IP address.",
                    "type": "string",
                    "oneOf": [
                      {
                        "format": "ipv4"
                      },
                      {
                        "format": "ipv6"
                      }
                    ]
                  },
                  "version": {
                    "type": "integer",
                    "enum": [
                      4,
                      6
                    ],
                    "description": "The IP version of the address associated with server."
                  }
                }
              }
            }
          },
          "os-extended-volumes:volumes_attached": {
            "type": "array",
            "items": {
              "type": "object"
            },
            "description": "The attached volumes, if any."
          },
          "OS-EXT-AZ:availability_zone": {
            "type": "string",
            "description": "The availability zone name."
          },
          "OS-EXT-SRV-ATTR:host": {
            "type": "string",
            "description": "The name of the compute host on which this instance is running.\nAppears in the response for administrative users only."
          },
          "config_drive": {
            "type": "string",
            "description": "Indicates whether or not a config drive was used for this server.\nThe value is `True` or an empty string. An empty string stands for\n`False`."
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time when the resource was created. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`.",
            "readOnly": true
          },
          "description": {
            "type": "string",
            "description": "The description of the server.\nBefore microversion 2\\.19 this was set to the server name.\n\n\n**New in version 2\\.19**"
          },
          "OS-DCF:diskConfig": {
            "type": "string",
            "description": "Disk configuration. The value is either:\n\n\n* `AUTO`. The API builds the server with a single partition the size of\nthe target flavor disk. The API automatically adjusts the file system to\nfit the entire partition.\n* `MANUAL`. The API builds the server by using the partition scheme and\nfile system that is in the source image. If the target flavor disk is\nlarger, The API does not partition the remaining disk space.",
            "enum": [
              "AUTO",
              "MANUAL"
            ]
          },
          "fault": {
            "type": "object",
            "description": "A fault object. Only displayed when the server status is `ERROR` or\n`DELETED` and a fault occurred.",
            "properties": {
              "code": {
                "type": "integer",
                "description": "The error response code."
              },
              "created": {
                "type": "string",
                "format": "date-time",
                "description": "The date and time when the exception was raised. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
              },
              "message": {
                "type": "string",
                "description": "The error message."
              },
              "details": {
                "type": "string",
                "description": "The stack trace. It is available if the response code is not 500 or\nyou have the administrator privilege"
              }
            },
            "additionalProperties": false
          },
          "flavor": {
            "type": "object",
            "description": "Before microversion 2\\.47 this contains the ID and links for the flavor\nused to boot the server instance. This can be an empty object in case\nflavor information is no longer present in the system.\n\n\nAs of microversion 2\\.47 this contains a subset of the actual flavor\ninformation used to create the server instance, represented as a nested\ndictionary.",
            "properties": {
              "id": {
                "type": "string",
                "description": "The UUID of the server.",
                "x-openstack": {
                  "max-ver": "2.46"
                }
              },
              "links": {
                "description": "Links to the resources in question. See [API Guide / Links and\nReferences](https://docs.openstack.org/api-guide/compute/links_and_references.html)\nfor more info.",
                "x-openstack": {
                  "max-ver": "2.46"
                },
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
                  "properties": {
                    "href": {
                      "type": "string",
                      "format": "uri"
                    },
                    "rel": {
                      "type": "string"
                    }
                  }
                }
              },
              "vcpus": {
                "type": "integer",
                "description": "The number of virtual CPUs that were allocated to the server.\n\n\n**New in version 2\\.47**",
                "x-openstack": {
                  "min-ver": "2.47"
                }
              },
              "ram": {
                "type": "integer",
                "description": "The amount of RAM a flavor has, in MiB.\n\n\n**New in version 2\\.47**",
                "x-openstack": {
                  "min-ver": "2.47"
                }
              },
              "disk": {
                "type": "integer",
                "description": "The size of the root disk that was created in GiB.\n\n\n**New in version 2\\.47**",
                "x-openstack": {
                  "min-ver": "2.47"
                }
              },
              "ephemeral": {
                "type": "integer",
                "description": "The size of the ephemeral disk that was created, in GiB.\n\n\n**New in version 2\\.47**",
                "x-openstack": {
                  "min-ver": "2.47"
                }
              },
              "swap": {
                "type": "integer",
                "description": "The size of a dedicated swap disk that was allocated, in MiB.\n\n\n**New in version 2\\.47**",
                "x-openstack": {
                  "min-ver": "2.47"
                }
              },
              "original_name": {
                "type": "string",
                "description": "The display name of a flavor.\n\n\n**New in version 2\\.47**",
                "x-openstack": {
                  "min-ver": "2.47"
                }
              },
              "extra_specs": {
                "description": "A dictionary of the flavor\u2019s extra\\-specs key\\-and\\-value pairs. This will\nonly be included if the user is allowed by policy to index flavor\nextra_specs.\n\n\n**New in version 2\\.47**",
                "x-openstack": {
                  "min-ver": "2.47"
                },
                "type": "object",
                "patternProperties": {
                  "^[a-zA-Z0-9-_:. ]{1,255}$": {
                    "type": "string",
                    "maxLength": 255
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "hostId": {
            "type": "string",
            "description": "An ID string representing the host. This is a hashed value so will not actually look like\na hostname, and is hashed with data from the project_id, so the same physical host as seen\nby two different project_ids, will be different. It is useful when within the same project you\nneed to determine if two instances are on the same or different physical hosts for the\npurposes of availability or performance."
          },
          "host_status": {
            "type": [
              "string",
              "null"
            ],
            "description": "The host status. Values where next value in list can override the previous:\n\n\n* `UP` if nova\\-compute up.\n* `UNKNOWN` if nova\\-compute not reported by servicegroup driver.\n* `DOWN` if nova\\-compute forced down.\n* `MAINTENANCE` if nova\\-compute is disabled.\n* Empty string indicates there is no host for server.\n\n\nThis attribute appears in the response only if the policy permits.\nBy default, only administrators can get this parameter.\n\n\n**New in version 2\\.16**",
            "enum": [
              "UP",
              "DOWN",
              "MAINTENANCE",
              "UNKNOWN",
              "",
              "null"
            ],
            "x-openstack": {
              "min-ver": "2.16"
            }
          },
          "OS-EXT-SRV-ATTR:hostname": {
            "type": "string",
            "description": "The hostname of the instance reported in the metadata service.\nThis parameter only appears in responses for administrators until\nmicroversion 2\\.90, after which it is shown for all users.\n\n\n\nNote\n\n\nThis information is published via the metadata service and requires\napplication such as `cloud-init` to propagate it through to the\ninstance.\n\n\n\n**New in version 2\\.3**",
            "x-openstack": {
              "min-ver": "2.3"
            }
          },
          "OS-EXT-SRV-ATTR:hypervisor_hostname": {
            "type": "string",
            "description": "The hypervisor host name provided by the Nova virt driver. For the Ironic driver,\nit is the Ironic node uuid. Appears in the response for administrative users only.",
            "x-openstack-sdk-name": "hypervisor_hostname"
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Id of the server",
            "readOnly": true
          },
          "image": {
            "type": "object",
            "description": "The UUID and links for the image for your server instance. The `image` object\nwill be an empty string when you boot the server from a volume.",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "description": "The image ID"
              },
              "links": {
                "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
                  "properties": {
                    "href": {
                      "type": "string",
                      "format": "uri"
                    },
                    "rel": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "OS-EXT-SRV-ATTR:instance_name": {
            "type": "string",
            "description": "The instance name. The Compute API generates the instance name from the instance\nname template. Appears in the response for administrative users only."
          },
          "locked": {
            "type": "boolean",
            "description": "True if the instance is locked otherwise False.\n\n\n**New in version 2\\.9**",
            "x-openstack": {
              "min-ver": "2.9"
            }
          },
          "OS-EXT-SRV-ATTR:kernel_id": {
            "type": "string",
            "description": "The UUID of the kernel image when using an AMI. Will be null if not.\nBy default, it appears in the response for administrative users only.\n\n\n**New in version 2\\.3**",
            "x-openstack": {
              "min-ver": "2.3"
            }
          },
          "key_name": {
            "type": "string",
            "description": "The name of associated key pair, if any."
          },
          "OS-EXT-SRV-ATTR:launch_index": {
            "type": "integer",
            "description": "When servers are launched via multiple create, this is the\nsequence in which the servers were launched.\nBy default, it appears in the response for administrative users only.\n\n\n**New in version 2\\.3**",
            "x-openstack": {
              "min-ver": "2.3"
            }
          },
          "OS-SRV-USG:launched_at": {
            "type": "string",
            "description": "The date and time when the server was launched.\n\n\nThe date and time stamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601):\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`.\n\n\nThe `hh\u00b1:mm` value, if included, is the time zone as an offset from UTC.\nIf the `deleted_at` date and time stamp is not set, its value is `null`."
          },
          "links": {
            "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
            "type": "array",
            "items": {
              "type": "object",
              "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
              "properties": {
                "href": {
                  "type": "string",
                  "format": "uri"
                },
                "rel": {
                  "type": "string"
                }
              }
            }
          },
          "metadata": {
            "type": "object",
            "description": "A dictionary of metadata key\\-and\\-value pairs, which is maintained for backward\ncompatibility.",
            "patternProperties": {
              "^[a-zA-Z0-9-_:. ]{1,255}$": {
                "type": "string",
                "maxLength": 255
              }
            },
            "additionalProperties": false
          },
          "name": {
            "type": "string",
            "description": "The server name."
          },
          "OS-EXT-STS:power_state": {
            "type": "integer",
            "description": "The power state of the instance. This is an enum value that is mapped as:\n\n\n\n```\n0: NOSTATE\n1: RUNNING\n3: PAUSED\n4: SHUTDOWN\n6: CRASHED\n7: SUSPENDED\n\n```"
          },
          "progress": {
            "type": "integer",
            "description": "A percentage value of the operation progress.\nThis parameter only appears when the server status is `ACTIVE`,\n`BUILD`, `REBUILD`, `RESIZE`, `VERIFY_RESIZE` or `MIGRATING`."
          },
          "tenant_id": {
            "type": "string",
            "format": "uuid",
            "description": "The UUID of the tenant in a multi\\-tenancy cloud."
          },
          "OS-EXT-SRV-ATTR:ramdisk_id": {
            "type": "string",
            "description": "The UUID of the ramdisk image when using an AMI. Will be null if not.\nBy default, it appears in the response for administrative users only.\n\n\n**New in version 2\\.3**",
            "x-openstack": {
              "min-ver": "2.3"
            }
          },
          "OS-EXT-SRV-ATTR:reservation_id": {
            "type": "string",
            "description": "The reservation id for the server. This is an id that can\nbe useful in tracking groups of servers created with multiple\ncreate, that will all have the same reservation_id.\nBy default, it appears in the response for administrative users only.\n\n\n**New in version 2\\.3**",
            "x-openstack": {
              "min-ver": "2.3"
            }
          },
          "OS-EXT-SRV-ATTR:root_device_name": {
            "type": "string",
            "description": "The root device name for the instance\nBy default, it appears in the response for administrative users only.\n\n\n**New in version 2\\.3**",
            "x-openstack": {
              "min-ver": "2.3"
            }
          },
          "security_groups": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "The security group name"
                }
              }
            },
            "description": "One or more security groups objects."
          },
          "server_groups": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The UUIDs of the server groups to which the server belongs. Currently this can contain at most one entry.",
            "x-openstack": {
              "min-ver": "2.71"
            }
          },
          "status": {
            "type": "string",
            "description": "The server status.",
            "readOnly": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of tags. The maximum count of tags in this list is 50\\.\n\n\n**New in version 2\\.26**",
            "x-openstack": {
              "min-ver": "2.26"
            }
          },
          "OS-EXT-STS:task_state": {
            "type": "string",
            "description": "The task state of the instance."
          },
          "OS-SRV-USG:terminated_at": {
            "type": "string",
            "description": "The date and time when the server was deleted.\n\n\nThe date and time stamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601):\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`.\nThe `\u00b1hh:mm` value, if included, is the time zone as an offset from UTC.\nIf the `deleted_at` date and time stamp is not set, its value is `null`."
          },
          "trusted_image_certificates": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            },
            "description": "A list of trusted certificate IDs, that were used during image signature\nverification to verify the signing certificate. The list is restricted\nto a maximum of 50 IDs. The value is `null` if trusted certificate IDs\nare not set.\n\n\n**New in version 2\\.63**",
            "x-openstack": {
              "min-ver": "2.63"
            }
          },
          "updated": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time when the resource was updated. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`.",
            "readOnly": true
          },
          "OS-EXT-SRV-ATTR:user_data": {
            "type": "string",
            "description": "The user_data the instance was created with.\nBy default, it appears in the response for administrative users only.\n\n\n**New in version 2\\.3**",
            "x-openstack": {
              "min-ver": "2.3"
            }
          },
          "user_id": {
            "type": "string",
            "description": "The user ID of the user who owns the server."
          },
          "OS-EXT-STS:vm_state": {
            "type": "string",
            "description": "The VM state."
          }
        }
      },
      "description": "A list of `server` objects."
    },
    "servers_links": {
      "type": "array",
      "description": "Links pertaining to usage. See [API Guide / Links and\nReferences](https://docs.openstack.org/api-guide/compute/links_and_references.html)\nfor more info.\n\n\n**New in version 2\\.40**",
      "items": {
        "type": "object",
        "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
        "properties": {
          "href": {
            "type": "string",
            "format": "uri"
          },
          "rel": {
            "type": "string"
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

servers

body

array

A list of server objects.

servers[].accessIPv4

body

string

IPv4 address that should be used to access this server. May be automatically set by the provider.

servers[].accessIPv6

body

string

IPv6 address that should be used to access this server. May be automatically set by the provider.

servers[].addresses

body

object

The addresses for the server. Servers with status BUILD hide their addresses information. This view is not updated immediately. Please consult with OpenStack Networking API for up-to-date information.

servers[].os-extended-volumes:volumes_attached

body

array

The attached volumes, if any.

servers[].OS-EXT-AZ:availability_zone

body

string

The availability zone name.

servers[].OS-EXT-SRV-ATTR:host

body

string

The name of the compute host on which this instance is running. Appears in the response for administrative users only.

servers[].config_drive

body

string

Indicates whether or not a config drive was used for this server. The value is True or an empty string. An empty string stands for False.

servers[].created

body

string

The date and time when the resource was created. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

servers[].description

body

string

The description of the server. Before microversion 2.19 this was set to the server name.

New in version 2.19

servers[].OS-DCF:diskConfig

body

string

Disk configuration. The value is either:

  • AUTO. The API builds the server with a single partition the size of the target flavor disk. The API automatically adjusts the file system to fit the entire partition.

  • MANUAL. The API builds the server by using the partition scheme and file system that is in the source image. If the target flavor disk is larger, The API does not partition the remaining disk space.

servers[].fault

body

object

A fault object. Only displayed when the server status is ERROR or DELETED and a fault occurred.

servers[].fault.code

body

integer

The error response code.

servers[].fault.created

body

string

The date and time when the exception was raised. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

servers[].fault.message

body

string

The error message.

servers[].fault.details

body

string

The stack trace. It is available if the response code is not 500 or you have the administrator privilege

servers[].flavor

body

object

Before microversion 2.47 this contains the ID and links for the flavor used to boot the server instance. This can be an empty object in case flavor information is no longer present in the system.

As of microversion 2.47 this contains a subset of the actual flavor information used to create the server instance, represented as a nested dictionary.

servers[].flavor.id

body

string

The UUID of the server.
Available until version 2.46

servers[].flavor.links

body

array

Links to the resources in question. See API Guide / Links and References for more info.
Available until version 2.46

servers[].flavor.links[].href

body

string

servers[].flavor.links[].rel

body

string

servers[].flavor.vcpus

body

integer

The number of virtual CPUs that were allocated to the server.

New in version 2.47
New in version 2.47

servers[].flavor.ram

body

integer

The amount of RAM a flavor has, in MiB.

New in version 2.47
New in version 2.47

servers[].flavor.disk

body

integer

The size of the root disk that was created in GiB.

New in version 2.47
New in version 2.47

servers[].flavor.ephemeral

body

integer

The size of the ephemeral disk that was created, in GiB.

New in version 2.47
New in version 2.47

servers[].flavor.swap

body

integer

The size of a dedicated swap disk that was allocated, in MiB.

New in version 2.47
New in version 2.47

servers[].flavor.original_name

body

string

The display name of a flavor.

New in version 2.47
New in version 2.47

servers[].flavor.extra_specs

body

object

A dictionary of the flavor’s extra-specs key-and-value pairs. This will only be included if the user is allowed by policy to index flavor extra_specs.

New in version 2.47
New in version 2.47

servers[].hostId

body

string

An ID string representing the host. This is a hashed value so will not actually look like a hostname, and is hashed with data from the project_id, so the same physical host as seen by two different project_ids, will be different. It is useful when within the same project you need to determine if two instances are on the same or different physical hosts for the purposes of availability or performance.

servers[].host_status

body

[‘string’, ‘null’]

The host status. Values where next value in list can override the previous:

  • UP if nova-compute up.

  • UNKNOWN if nova-compute not reported by servicegroup driver.

  • DOWN if nova-compute forced down.

  • MAINTENANCE if nova-compute is disabled.

  • Empty string indicates there is no host for server.

This attribute appears in the response only if the policy permits. By default, only administrators can get this parameter.

New in version 2.16
New in version 2.16

servers[].OS-EXT-SRV-ATTR:hostname

body

string

The hostname of the instance reported in the metadata service. This parameter only appears in responses for administrators until microversion 2.90, after which it is shown for all users.

Note

This information is published via the metadata service and requires application such as cloud-init to propagate it through to the instance.

New in version 2.3
New in version 2.3

servers[].OS-EXT-SRV-ATTR:hypervisor_hostname

body

string

The hypervisor host name provided by the Nova virt driver. For the Ironic driver, it is the Ironic node uuid. Appears in the response for administrative users only.

servers[].id

body

string

Id of the server

servers[].image

body

object

The UUID and links for the image for your server instance. The image object will be an empty string when you boot the server from a volume.

servers[].image.id

body

string

The image ID

servers[].image.links

body

array

Links to the resources in question. See API Guide / Links and References for more info.

servers[].image.links[].href

body

string

servers[].image.links[].rel

body

string

servers[].OS-EXT-SRV-ATTR:instance_name

body

string

The instance name. The Compute API generates the instance name from the instance name template. Appears in the response for administrative users only.

servers[].locked

body

boolean

True if the instance is locked otherwise False.

New in version 2.9
New in version 2.9

servers[].OS-EXT-SRV-ATTR:kernel_id

body

string

The UUID of the kernel image when using an AMI. Will be null if not. By default, it appears in the response for administrative users only.

New in version 2.3
New in version 2.3

servers[].key_name

body

string

The name of associated key pair, if any.

servers[].OS-EXT-SRV-ATTR:launch_index

body

integer

When servers are launched via multiple create, this is the sequence in which the servers were launched. By default, it appears in the response for administrative users only.

New in version 2.3
New in version 2.3

servers[].OS-SRV-USG:launched_at

body

string

The date and time when the server was launched.

The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The hh±:mm value, if included, is the time zone as an offset from UTC. If the deleted_at date and time stamp is not set, its value is null.

servers[].links

body

array

Links to the resources in question. See API Guide / Links and References for more info.

servers[].links[].href

body

string

servers[].links[].rel

body

string

servers[].metadata

body

object

A dictionary of metadata key-and-value pairs, which is maintained for backward compatibility.

servers[].name

body

string

The server name.

servers[].OS-EXT-STS:power_state

body

integer

The power state of the instance. This is an enum value that is mapped as:

0: NOSTATE
1: RUNNING
3: PAUSED
4: SHUTDOWN
6: CRASHED
7: SUSPENDED

servers[].progress

body

integer

A percentage value of the operation progress. This parameter only appears when the server status is ACTIVE, BUILD, REBUILD, RESIZE, VERIFY_RESIZE or MIGRATING.

servers[].tenant_id

body

string

The UUID of the tenant in a multi-tenancy cloud.

servers[].OS-EXT-SRV-ATTR:ramdisk_id

body

string

The UUID of the ramdisk image when using an AMI. Will be null if not. By default, it appears in the response for administrative users only.

New in version 2.3
New in version 2.3

servers[].OS-EXT-SRV-ATTR:reservation_id

body

string

The reservation id for the server. This is an id that can be useful in tracking groups of servers created with multiple create, that will all have the same reservation_id. By default, it appears in the response for administrative users only.

New in version 2.3
New in version 2.3

servers[].OS-EXT-SRV-ATTR:root_device_name

body

string

The root device name for the instance By default, it appears in the response for administrative users only.

New in version 2.3
New in version 2.3

servers[].security_groups

body

array

One or more security groups objects.

servers[].security_groups[].name

body

string

The security group name

servers[].server_groups

body

array

The UUIDs of the server groups to which the server belongs. Currently this can contain at most one entry.
New in version 2.71

servers[].status

body

string

The server status.

servers[].tags

body

array

A list of tags. The maximum count of tags in this list is 50.

New in version 2.26
New in version 2.26

servers[].OS-EXT-STS:task_state

body

string

The task state of the instance.

servers[].OS-SRV-USG:terminated_at

body

string

The date and time when the server was deleted.

The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. If the deleted_at date and time stamp is not set, its value is null.

servers[].trusted_image_certificates

body

[‘array’, ‘null’]

A list of trusted certificate IDs, that were used during image signature verification to verify the signing certificate. The list is restricted to a maximum of 50 IDs. The value is null if trusted certificate IDs are not set.

New in version 2.63
New in version 2.63

servers[].updated

body

string

The date and time when the resource was updated. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

servers[].OS-EXT-SRV-ATTR:user_data

body

string

The user_data the instance was created with. By default, it appears in the response for administrative users only.

New in version 2.3
New in version 2.3

servers[].user_id

body

string

The user ID of the user who owns the server.

servers[].OS-EXT-STS:vm_state

body

string

The VM state.

servers_links

body

array

Links pertaining to usage. See API Guide / Links and References for more info.

New in version 2.40

servers_links[].href

body

string

servers_links[].rel

body

string

400

Error

403

Error

Show Server Details

Shows details for a server.

Includes server details including configuration drive, extended status, and server usage information.

The extended status information appears in the OS-EXT-STS:vm_state, OS-EXT-STS:power_state, and OS-EXT-STS:task_state attributes.

The server usage information appears in the OS-SRV-USG:launched_at and OS-SRV-USG:terminated_at attributes.

HostId is unique per account and is not globally unique.

Preconditions

The server must exist.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "server": {
      "type": "object",
      "description": "A `server` object.",
      "properties": {
        "accessIPv4": {
          "description": "IPv4 address that should be used to access this server. May be\nautomatically set by the provider.",
          "type": "string",
          "format": "ipv4"
        },
        "accessIPv6": {
          "description": "IPv6 address that should be used to access this server. May be\nautomatically set by the provider.",
          "type": "string",
          "format": "ipv6"
        },
        "addresses": {
          "type": "object",
          "description": "The addresses for the server. Servers with status `BUILD` hide their\naddresses information.\nThis view is not updated immediately.\nPlease consult with OpenStack Networking API for up\\-to\\-date information.",
          "additionalProperties": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "addr": {
                  "description": "The IP address.",
                  "type": "string",
                  "oneOf": [
                    {
                      "format": "ipv4"
                    },
                    {
                      "format": "ipv6"
                    }
                  ]
                },
                "version": {
                  "type": "integer",
                  "enum": [
                    4,
                    6
                  ],
                  "description": "The IP version of the address associated with server."
                }
              }
            }
          }
        },
        "os-extended-volumes:volumes_attached": {
          "type": "array",
          "items": {
            "type": "object"
          },
          "description": "The attached volumes, if any.\n\n\n**New in version 2\\.75**"
        },
        "OS-EXT-AZ:availability_zone": {
          "type": "string",
          "description": "The availability zone name.\n\n\n**New in version 2\\.75**"
        },
        "OS-EXT-SRV-ATTR:host": {
          "type": "string",
          "description": "The name of the compute host on which this instance is running.\nAppears in the response for administrative users only.\n\n\n**New in version 2\\.75**"
        },
        "config_drive": {
          "type": "string",
          "description": "Indicates whether or not a config drive was used for this server.\nThe value is `True` or an empty string. An empty string stands for\n`False`.\n\n\n**New in version 2\\.75**"
        },
        "created": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the resource was created. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`.",
          "readOnly": true
        },
        "description": {
          "type": "string",
          "description": "The description of the server.\nBefore microversion 2\\.19 this was set to the server name.\n\n\n**New in version 2\\.19**"
        },
        "OS-DCF:diskConfig": {
          "type": "string",
          "description": "Disk configuration. The value is either:\n\n\n* `AUTO`. The API builds the server with a single partition the size of\nthe target flavor disk. The API automatically adjusts the file system to\nfit the entire partition.\n* `MANUAL`. The API builds the server by using the partition scheme and\nfile system that is in the source image. If the target flavor disk is\nlarger, The API does not partition the remaining disk space.",
          "enum": [
            "AUTO",
            "MANUAL"
          ]
        },
        "fault": {
          "type": "object",
          "description": "A fault object. Only displayed when the server status is `ERROR` or\n`DELETED` and a fault occurred.",
          "properties": {
            "code": {
              "type": "integer",
              "description": "The error response code."
            },
            "created": {
              "type": "string",
              "format": "date-time",
              "description": "The date and time when the exception was raised. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
            },
            "message": {
              "type": "string",
              "description": "The error message."
            },
            "details": {
              "type": "string",
              "description": "The stack trace. It is available if the response code is not 500 or\nyou have the administrator privilege"
            }
          },
          "additionalProperties": false
        },
        "flavor": {
          "type": "object",
          "description": "Before microversion 2\\.47 this contains the ID and links for the flavor\nused to boot the server instance. This can be an empty object in case\nflavor information is no longer present in the system.\n\n\nAs of microversion 2\\.47 this contains a subset of the actual flavor\ninformation used to create the server instance, represented as a nested\ndictionary.",
          "properties": {
            "id": {
              "type": "string",
              "description": "The UUID of the server.",
              "x-openstack": {
                "max-ver": "2.46"
              }
            },
            "links": {
              "description": "Links to the resources in question. See [API Guide / Links and\nReferences](https://docs.openstack.org/api-guide/compute/links_and_references.html)\nfor more info.",
              "x-openstack": {
                "max-ver": "2.46"
              },
              "type": "array",
              "items": {
                "type": "object",
                "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
                "properties": {
                  "href": {
                    "type": "string",
                    "format": "uri"
                  },
                  "rel": {
                    "type": "string"
                  }
                }
              }
            },
            "vcpus": {
              "type": "integer",
              "description": "The number of virtual CPUs that were allocated to the server.\n\n\n**New in version 2\\.47**",
              "x-openstack": {
                "min-ver": "2.47"
              }
            },
            "ram": {
              "type": "integer",
              "description": "The amount of RAM a flavor has, in MiB.\n\n\n**New in version 2\\.47**",
              "x-openstack": {
                "min-ver": "2.47"
              }
            },
            "disk": {
              "type": "integer",
              "description": "The size of the root disk that was created in GiB.\n\n\n**New in version 2\\.47**",
              "x-openstack": {
                "min-ver": "2.47"
              }
            },
            "ephemeral": {
              "type": "integer",
              "description": "The size of the ephemeral disk that was created, in GiB.\n\n\n**New in version 2\\.47**",
              "x-openstack": {
                "min-ver": "2.47"
              }
            },
            "swap": {
              "type": "integer",
              "description": "The size of a dedicated swap disk that was allocated, in MiB.\n\n\n**New in version 2\\.47**",
              "x-openstack": {
                "min-ver": "2.47"
              }
            },
            "original_name": {
              "type": "string",
              "description": "The display name of a flavor.\n\n\n**New in version 2\\.47**",
              "x-openstack": {
                "min-ver": "2.47"
              }
            },
            "extra_specs": {
              "description": "A dictionary of the flavor\u2019s extra\\-specs key\\-and\\-value pairs. This will\nonly be included if the user is allowed by policy to index flavor\nextra_specs.\n\n\n**New in version 2\\.47**",
              "x-openstack": {
                "min-ver": "2.47"
              },
              "type": "object",
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              },
              "additionalProperties": false
            }
          }
        },
        "hostId": {
          "type": "string",
          "description": "An ID string representing the host. This is a hashed value so will not actually look like\na hostname, and is hashed with data from the project_id, so the same physical host as seen\nby two different project_ids, will be different. It is useful when within the same project you\nneed to determine if two instances are on the same or different physical hosts for the\npurposes of availability or performance."
        },
        "host_status": {
          "type": [
            "string",
            "null"
          ],
          "description": "The host status. Values where next value in list can override the previous:\n\n\n* `UP` if nova\\-compute up.\n* `UNKNOWN` if nova\\-compute not reported by servicegroup driver.\n* `DOWN` if nova\\-compute forced down.\n* `MAINTENANCE` if nova\\-compute is disabled.\n* Empty string indicates there is no host for server.\n\n\nThis attribute appears in the response only if the policy permits.\nBy default, only administrators can get this parameter.\n\n\n**New in version 2\\.75**",
          "enum": [
            "UP",
            "DOWN",
            "MAINTENANCE",
            "UNKNOWN",
            "",
            "null"
          ],
          "x-openstack": {
            "min-ver": "2.16"
          }
        },
        "OS-EXT-SRV-ATTR:hostname": {
          "type": "string",
          "description": "The hostname of the instance reported in the metadata service.\nThis parameter only appears in responses for administrators until\nmicroversion 2\\.90, after which it is shown for all users.\n\n\n\nNote\n\n\nThis information is published via the metadata service and requires\napplication such as `cloud-init` to propagate it through to the\ninstance.\n\n\n\n**New in version 2\\.75**",
          "x-openstack": {
            "min-ver": "2.3"
          }
        },
        "OS-EXT-SRV-ATTR:hypervisor_hostname": {
          "type": "string",
          "description": "The hypervisor host name provided by the Nova virt driver. For the Ironic driver,\nit is the Ironic node uuid. Appears in the response for administrative users only.\n\n\n**New in version 2\\.75**",
          "x-openstack-sdk-name": "hypervisor_hostname"
        },
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Id of the server",
          "readOnly": true
        },
        "image": {
          "type": "object",
          "description": "The UUID and links for the image for your server instance. The `image` object\nwill be an empty string when you boot the server from a volume.",
          "properties": {
            "id": {
              "type": "string",
              "format": "uuid",
              "description": "The image ID"
            },
            "links": {
              "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
              "type": "array",
              "items": {
                "type": "object",
                "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
                "properties": {
                  "href": {
                    "type": "string",
                    "format": "uri"
                  },
                  "rel": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "OS-EXT-SRV-ATTR:instance_name": {
          "type": "string",
          "description": "The instance name. The Compute API generates the instance name from the instance\nname template. Appears in the response for administrative users only.\n\n\n**New in version 2\\.75**"
        },
        "locked": {
          "type": "boolean",
          "description": "True if the instance is locked otherwise False.\n\n\n**New in version 2\\.9**",
          "x-openstack": {
            "min-ver": "2.9"
          }
        },
        "OS-EXT-SRV-ATTR:kernel_id": {
          "type": "string",
          "description": "The UUID of the kernel image when using an AMI. Will be null if not.\nBy default, it appears in the response for administrative users only.\n\n\n**New in version 2\\.75**",
          "x-openstack": {
            "min-ver": "2.3"
          }
        },
        "key_name": {
          "type": "string",
          "description": "The name of associated key pair, if any.\n\n\n**New in version 2\\.75**"
        },
        "OS-EXT-SRV-ATTR:launch_index": {
          "type": "integer",
          "description": "When servers are launched via multiple create, this is the\nsequence in which the servers were launched.\nBy default, it appears in the response for administrative users only.\n\n\n**New in version 2\\.75**",
          "x-openstack": {
            "min-ver": "2.3"
          }
        },
        "OS-SRV-USG:launched_at": {
          "type": "string",
          "description": "The date and time when the server was launched.\n\n\nThe date and time stamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601):\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`.\n\n\nThe `hh\u00b1:mm` value, if included, is the time zone as an offset from UTC.\nIf the `deleted_at` date and time stamp is not set, its value is `null`.\n\n\n**New in version 2\\.75**"
        },
        "links": {
          "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
          "type": "array",
          "items": {
            "type": "object",
            "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
            "properties": {
              "href": {
                "type": "string",
                "format": "uri"
              },
              "rel": {
                "type": "string"
              }
            }
          }
        },
        "metadata": {
          "type": "object",
          "description": "A dictionary of metadata key\\-and\\-value pairs, which is maintained for backward\ncompatibility.",
          "patternProperties": {
            "^[a-zA-Z0-9-_:. ]{1,255}$": {
              "type": "string",
              "maxLength": 255
            }
          },
          "additionalProperties": false
        },
        "name": {
          "type": "string",
          "description": "The server name."
        },
        "OS-EXT-STS:power_state": {
          "type": "integer",
          "description": "The power state of the instance. This is an enum value that is mapped as:\n\n\n\n```\n0: NOSTATE\n1: RUNNING\n3: PAUSED\n4: SHUTDOWN\n6: CRASHED\n7: SUSPENDED\n\n```\n\n\n**New in version 2\\.75**"
        },
        "progress": {
          "type": "integer",
          "description": "A percentage value of the operation progress.\nThis parameter only appears when the server status is `ACTIVE`,\n`BUILD`, `REBUILD`, `RESIZE`, `VERIFY_RESIZE` or `MIGRATING`."
        },
        "tenant_id": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the tenant in a multi\\-tenancy cloud."
        },
        "OS-EXT-SRV-ATTR:ramdisk_id": {
          "type": "string",
          "description": "The UUID of the ramdisk image when using an AMI. Will be null if not.\nBy default, it appears in the response for administrative users only.\n\n\n**New in version 2\\.75**",
          "x-openstack": {
            "min-ver": "2.3"
          }
        },
        "OS-EXT-SRV-ATTR:reservation_id": {
          "type": "string",
          "description": "The reservation id for the server. This is an id that can\nbe useful in tracking groups of servers created with multiple\ncreate, that will all have the same reservation_id.\nBy default, it appears in the response for administrative users only.\n\n\n**New in version 2\\.75**",
          "x-openstack": {
            "min-ver": "2.3"
          }
        },
        "OS-EXT-SRV-ATTR:root_device_name": {
          "type": "string",
          "description": "The root device name for the instance\nBy default, it appears in the response for administrative users only.\n\n\n**New in version 2\\.75**",
          "x-openstack": {
            "min-ver": "2.3"
          }
        },
        "security_groups": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "The security group name"
              }
            }
          },
          "description": "One or more security groups objects.\n\n\n**New in version 2\\.75**"
        },
        "server_groups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The UUIDs of the server groups to which the server belongs. Currently\nthis can contain at most one entry.\n\n\n**New in version 2\\.71**",
          "x-openstack": {
            "min-ver": "2.71"
          }
        },
        "status": {
          "type": "string",
          "description": "The server status.",
          "readOnly": true
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of tags. The maximum count of tags in this list is 50\\.\n\n\n**New in version 2\\.26**",
          "x-openstack": {
            "min-ver": "2.26"
          }
        },
        "OS-EXT-STS:task_state": {
          "type": "string",
          "description": "The task state of the instance.\n\n\n**New in version 2\\.75**"
        },
        "OS-SRV-USG:terminated_at": {
          "type": "string",
          "description": "The date and time when the server was deleted.\n\n\nThe date and time stamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601):\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`.\nThe `\u00b1hh:mm` value, if included, is the time zone as an offset from UTC.\nIf the `deleted_at` date and time stamp is not set, its value is `null`.\n\n\n**New in version 2\\.75**"
        },
        "trusted_image_certificates": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          },
          "description": "A list of trusted certificate IDs, that were used during image signature\nverification to verify the signing certificate. The list is restricted\nto a maximum of 50 IDs. The value is `null` if trusted certificate IDs\nare not set.\n\n\n**New in version 2\\.63**",
          "x-openstack": {
            "min-ver": "2.63"
          }
        },
        "updated": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the resource was updated. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`.",
          "readOnly": true
        },
        "OS-EXT-SRV-ATTR:user_data": {
          "type": "string",
          "description": "The user_data the instance was created with.\nBy default, it appears in the response for administrative users only.\n\n\n**New in version 2\\.75**",
          "x-openstack": {
            "min-ver": "2.3"
          }
        },
        "user_id": {
          "type": "string",
          "description": "The user ID of the user who owns the server."
        },
        "OS-EXT-STS:vm_state": {
          "type": "string",
          "description": "The VM state.\n\n\n**New in version 2\\.75**"
        }
      }
    }
  }
}

Name

Location

Type

Description

server

body

object

A server object.

server.accessIPv4

body

string

IPv4 address that should be used to access this server. May be automatically set by the provider.

server.accessIPv6

body

string

IPv6 address that should be used to access this server. May be automatically set by the provider.

server.addresses

body

object

The addresses for the server. Servers with status BUILD hide their addresses information. This view is not updated immediately. Please consult with OpenStack Networking API for up-to-date information.

server.os-extended-volumes:volumes_attached

body

array

The attached volumes, if any.

New in version 2.75

server.OS-EXT-AZ:availability_zone

body

string

The availability zone name.

New in version 2.75

server.OS-EXT-SRV-ATTR:host

body

string

The name of the compute host on which this instance is running. Appears in the response for administrative users only.

New in version 2.75

server.config_drive

body

string

Indicates whether or not a config drive was used for this server. The value is True or an empty string. An empty string stands for False.

New in version 2.75

server.created

body

string

The date and time when the resource was created. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

server.description

body

string

The description of the server. Before microversion 2.19 this was set to the server name.

New in version 2.19

server.OS-DCF:diskConfig

body

string

Disk configuration. The value is either:

  • AUTO. The API builds the server with a single partition the size of the target flavor disk. The API automatically adjusts the file system to fit the entire partition.

  • MANUAL. The API builds the server by using the partition scheme and file system that is in the source image. If the target flavor disk is larger, The API does not partition the remaining disk space.

server.fault

body

object

A fault object. Only displayed when the server status is ERROR or DELETED and a fault occurred.

server.fault.code

body

integer

The error response code.

server.fault.created

body

string

The date and time when the exception was raised. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

server.fault.message

body

string

The error message.

server.fault.details

body

string

The stack trace. It is available if the response code is not 500 or you have the administrator privilege

server.flavor

body

object

Before microversion 2.47 this contains the ID and links for the flavor used to boot the server instance. This can be an empty object in case flavor information is no longer present in the system.

As of microversion 2.47 this contains a subset of the actual flavor information used to create the server instance, represented as a nested dictionary.

server.flavor.id

body

string

The UUID of the server.
Available until version 2.46

server.flavor.links

body

array

Links to the resources in question. See API Guide / Links and References for more info.
Available until version 2.46

server.flavor.links[].href

body

string

server.flavor.links[].rel

body

string

server.flavor.vcpus

body

integer

The number of virtual CPUs that were allocated to the server.

New in version 2.47
New in version 2.47

server.flavor.ram

body

integer

The amount of RAM a flavor has, in MiB.

New in version 2.47
New in version 2.47

server.flavor.disk

body

integer

The size of the root disk that was created in GiB.

New in version 2.47
New in version 2.47

server.flavor.ephemeral

body

integer

The size of the ephemeral disk that was created, in GiB.

New in version 2.47
New in version 2.47

server.flavor.swap

body

integer

The size of a dedicated swap disk that was allocated, in MiB.

New in version 2.47
New in version 2.47

server.flavor.original_name

body

string

The display name of a flavor.

New in version 2.47
New in version 2.47

server.flavor.extra_specs

body

object

A dictionary of the flavor’s extra-specs key-and-value pairs. This will only be included if the user is allowed by policy to index flavor extra_specs.

New in version 2.47
New in version 2.47

server.hostId

body

string

An ID string representing the host. This is a hashed value so will not actually look like a hostname, and is hashed with data from the project_id, so the same physical host as seen by two different project_ids, will be different. It is useful when within the same project you need to determine if two instances are on the same or different physical hosts for the purposes of availability or performance.

server.host_status

body

[‘string’, ‘null’]

The host status. Values where next value in list can override the previous:

  • UP if nova-compute up.

  • UNKNOWN if nova-compute not reported by servicegroup driver.

  • DOWN if nova-compute forced down.

  • MAINTENANCE if nova-compute is disabled.

  • Empty string indicates there is no host for server.

This attribute appears in the response only if the policy permits. By default, only administrators can get this parameter.

New in version 2.75
New in version 2.16

server.OS-EXT-SRV-ATTR:hostname

body

string

The hostname of the instance reported in the metadata service. This parameter only appears in responses for administrators until microversion 2.90, after which it is shown for all users.

Note

This information is published via the metadata service and requires application such as cloud-init to propagate it through to the instance.

New in version 2.75
New in version 2.3

server.OS-EXT-SRV-ATTR:hypervisor_hostname

body

string

The hypervisor host name provided by the Nova virt driver. For the Ironic driver, it is the Ironic node uuid. Appears in the response for administrative users only.

New in version 2.75

server.id

body

string

Id of the server

server.image

body

object

The UUID and links for the image for your server instance. The image object will be an empty string when you boot the server from a volume.

server.image.id

body

string

The image ID

server.image.links

body

array

Links to the resources in question. See API Guide / Links and References for more info.

server.image.links[].href

body

string

server.image.links[].rel

body

string

server.OS-EXT-SRV-ATTR:instance_name

body

string

The instance name. The Compute API generates the instance name from the instance name template. Appears in the response for administrative users only.

New in version 2.75

server.locked

body

boolean

True if the instance is locked otherwise False.

New in version 2.9
New in version 2.9

server.OS-EXT-SRV-ATTR:kernel_id

body

string

The UUID of the kernel image when using an AMI. Will be null if not. By default, it appears in the response for administrative users only.

New in version 2.75
New in version 2.3

server.key_name

body

string

The name of associated key pair, if any.

New in version 2.75

server.OS-EXT-SRV-ATTR:launch_index

body

integer

When servers are launched via multiple create, this is the sequence in which the servers were launched. By default, it appears in the response for administrative users only.

New in version 2.75
New in version 2.3

server.OS-SRV-USG:launched_at

body

string

The date and time when the server was launched.

The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The hh±:mm value, if included, is the time zone as an offset from UTC. If the deleted_at date and time stamp is not set, its value is null.

New in version 2.75

server.links

body

array

Links to the resources in question. See API Guide / Links and References for more info.

server.links[].href

body

string

server.links[].rel

body

string

server.metadata

body

object

A dictionary of metadata key-and-value pairs, which is maintained for backward compatibility.

server.name

body

string

The server name.

server.OS-EXT-STS:power_state

body

integer

The power state of the instance. This is an enum value that is mapped as:

0: NOSTATE
1: RUNNING
3: PAUSED
4: SHUTDOWN
6: CRASHED
7: SUSPENDED

New in version 2.75

server.progress

body

integer

A percentage value of the operation progress. This parameter only appears when the server status is ACTIVE, BUILD, REBUILD, RESIZE, VERIFY_RESIZE or MIGRATING.

server.tenant_id

body

string

The UUID of the tenant in a multi-tenancy cloud.

server.OS-EXT-SRV-ATTR:ramdisk_id

body

string

The UUID of the ramdisk image when using an AMI. Will be null if not. By default, it appears in the response for administrative users only.

New in version 2.75
New in version 2.3

server.OS-EXT-SRV-ATTR:reservation_id

body

string

The reservation id for the server. This is an id that can be useful in tracking groups of servers created with multiple create, that will all have the same reservation_id. By default, it appears in the response for administrative users only.

New in version 2.75
New in version 2.3

server.OS-EXT-SRV-ATTR:root_device_name

body

string

The root device name for the instance By default, it appears in the response for administrative users only.

New in version 2.75
New in version 2.3

server.security_groups

body

array

One or more security groups objects.

New in version 2.75

server.security_groups[].name

body

string

The security group name

server.server_groups

body

array

The UUIDs of the server groups to which the server belongs. Currently this can contain at most one entry.

New in version 2.71
New in version 2.71

server.status

body

string

The server status.

server.tags

body

array

A list of tags. The maximum count of tags in this list is 50.

New in version 2.26
New in version 2.26

server.OS-EXT-STS:task_state

body

string

The task state of the instance.

New in version 2.75

server.OS-SRV-USG:terminated_at

body

string

The date and time when the server was deleted.

The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. If the deleted_at date and time stamp is not set, its value is null.

New in version 2.75

server.trusted_image_certificates

body

[‘array’, ‘null’]

A list of trusted certificate IDs, that were used during image signature verification to verify the signing certificate. The list is restricted to a maximum of 50 IDs. The value is null if trusted certificate IDs are not set.

New in version 2.63
New in version 2.63

server.updated

body

string

The date and time when the resource was updated. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

server.OS-EXT-SRV-ATTR:user_data

body

string

The user_data the instance was created with. By default, it appears in the response for administrative users only.

New in version 2.75
New in version 2.3

server.user_id

body

string

The user ID of the user who owns the server.

server.OS-EXT-STS:vm_state

body

string

The VM state.

New in version 2.75

404

Error

Update Server

Updates the editable attributes of an existing server.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id} API

server

body

object

A server object.

server.name

body

string

The server name.

server.OS-DCF:diskConfig

body

string

Controls how the API partitions the disk when you create, rebuild, or resize servers. A server inherits the OS-DCF:diskConfig value from the image from which it was created, and an image inherits the OS-DCF:diskConfig value from the server from which it was created. To override the inherited setting, you can include this attribute in the request body of a server create, rebuild, or resize request. If the OS-DCF:diskConfig value for an image is MANUAL, you cannot create a server from that image and set its OS-DCF:diskConfig value to AUTO. A valid value is:

  • AUTO. The API builds the server with a single partition the size of the target flavor disk. The API automatically adjusts the file system to fit the entire partition.

  • MANUAL. The API builds the server by using whatever partition scheme and file system is in the source image. If the target flavor disk is larger, the API does not partition the remaining disk space.

server.accessIPv4

body

string

IPv4 address that should be used to access this server.

server.accessIPv6

body

string

IPv6 address that should be used to access this server.

server.description

body

[‘string’, ‘null’]

A free form description of the server. Limited to 255 characters in length. Before microversion 2.19 this was set to the server name.

New in version 2.19

server.hostname

body

string

The hostname to configure for the instance in the metadata service.

Starting with microversion 2.94, this can be a Fully Qualified Domain Name (FQDN) of up to 255 characters in length.

Note

This information is published via the metadata service and requires application such as cloud-init to propagate it through to the instance.

New in version 2.90

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "description": "A `server` object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name_with_leading_trailing_spaces",
              "description": "The server name."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.0"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "description": "A `server` object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The server name."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.1",
        "max-ver": "2.18"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "description": "A `server` object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The server name."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.19",
        "max-ver": "2.89"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "description": "A `server` object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The server name."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            },
            "hostname": {
              "type": "string",
              "minLength": 2,
              "maxLength": 63,
              "pattern": "^[a-zA-Z0-9]+[a-zA-Z0-9-]*[a-zA-Z0-9]+$",
              "description": "The hostname to configure for the instance in the metadata service.\n\n\nStarting with microversion 2\\.94, this can be a Fully Qualified Domain Name\n(FQDN) of up to 255 characters in length.\n\n\n\nNote\n\n\nThis information is published via the metadata service and requires\napplication such as `cloud-init` to propagate it through to the\ninstance.\n\n\n\n**New in version 2\\.90**"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.90",
        "max-ver": "2.93"
      },
      "required": [
        "server"
      ]
    },
    {
      "type": "object",
      "properties": {
        "server": {
          "type": "object",
          "description": "A `server` object.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The server name."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            },
            "hostname": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$",
              "description": "The hostname to configure for the instance in the metadata service.\n\n\nStarting with microversion 2\\.94, this can be a Fully Qualified Domain Name\n(FQDN) of up to 255 characters in length.\n\n\n\nNote\n\n\nThis information is published via the metadata service and requires\napplication such as `cloud-init` to propagate it through to the\ninstance.\n\n\n\n**New in version 2\\.90**"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.94"
      },
      "required": [
        "server"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion"
  }
}

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "server": {
      "type": "object",
      "description": "A `server` object.",
      "properties": {
        "accessIPv4": {
          "description": "IPv4 address that should be used to access this server. May be\nautomatically set by the provider.",
          "type": "string",
          "format": "ipv4"
        },
        "accessIPv6": {
          "description": "IPv6 address that should be used to access this server. May be\nautomatically set by the provider.",
          "type": "string",
          "format": "ipv6"
        },
        "addresses": {
          "type": "object",
          "description": "The addresses for the server. Servers with status `BUILD` hide their\naddresses information.\nThis view is not updated immediately.\nPlease consult with OpenStack Networking API for up\\-to\\-date information.",
          "additionalProperties": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "addr": {
                  "description": "The IP address.",
                  "type": "string",
                  "oneOf": [
                    {
                      "format": "ipv4"
                    },
                    {
                      "format": "ipv6"
                    }
                  ]
                },
                "version": {
                  "type": "integer",
                  "enum": [
                    4,
                    6
                  ],
                  "description": "The IP version of the address associated with server."
                }
              }
            }
          }
        },
        "os-extended-volumes:volumes_attached": {
          "type": "array",
          "items": {
            "type": "object"
          },
          "description": "The attached volumes, if any.\n\n\n**New in version 2\\.75**"
        },
        "OS-EXT-AZ:availability_zone": {
          "type": "string",
          "description": "The availability zone name.\n\n\n**New in version 2\\.75**"
        },
        "OS-EXT-SRV-ATTR:host": {
          "type": "string",
          "description": "The name of the compute host on which this instance is running.\nAppears in the response for administrative users only.\n\n\n**New in version 2\\.75**"
        },
        "config_drive": {
          "type": "string",
          "description": "Indicates whether or not a config drive was used for this server.\nThe value is `True` or an empty string. An empty string stands for\n`False`.\n\n\n**New in version 2\\.75**"
        },
        "created": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the resource was created. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`.",
          "readOnly": true
        },
        "description": {
          "type": "string",
          "description": "The description of the server.\nBefore microversion 2\\.19 this was set to the server name.\n\n\n**New in version 2\\.19**"
        },
        "OS-DCF:diskConfig": {
          "type": "string",
          "description": "Disk configuration. The value is either:\n\n\n* `AUTO`. The API builds the server with a single partition the size of\nthe target flavor disk. The API automatically adjusts the file system to\nfit the entire partition.\n* `MANUAL`. The API builds the server by using the partition scheme and\nfile system that is in the source image. If the target flavor disk is\nlarger, The API does not partition the remaining disk space.",
          "enum": [
            "AUTO",
            "MANUAL"
          ]
        },
        "fault": {
          "type": "object",
          "description": "A fault object. Only displayed when the server status is `ERROR` or\n`DELETED` and a fault occurred.",
          "properties": {
            "code": {
              "type": "integer",
              "description": "The error response code."
            },
            "created": {
              "type": "string",
              "format": "date-time",
              "description": "The date and time when the exception was raised. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
            },
            "message": {
              "type": "string",
              "description": "The error message."
            },
            "details": {
              "type": "string",
              "description": "The stack trace. It is available if the response code is not 500 or\nyou have the administrator privilege"
            }
          },
          "additionalProperties": false
        },
        "flavor": {
          "type": "object",
          "description": "Before microversion 2\\.47 this contains the ID and links for the flavor\nused to boot the server instance. This can be an empty object in case\nflavor information is no longer present in the system.\n\n\nAs of microversion 2\\.47 this contains a subset of the actual flavor\ninformation used to create the server instance, represented as a nested\ndictionary.",
          "properties": {
            "id": {
              "type": "string",
              "description": "The UUID of the server.",
              "x-openstack": {
                "max-ver": "2.46"
              }
            },
            "links": {
              "description": "Links to the resources in question. See [API Guide / Links and\nReferences](https://docs.openstack.org/api-guide/compute/links_and_references.html)\nfor more info.",
              "x-openstack": {
                "max-ver": "2.46"
              },
              "type": "array",
              "items": {
                "type": "object",
                "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
                "properties": {
                  "href": {
                    "type": "string",
                    "format": "uri"
                  },
                  "rel": {
                    "type": "string"
                  }
                }
              }
            },
            "vcpus": {
              "type": "integer",
              "description": "The number of virtual CPUs that were allocated to the server.\n\n\n**New in version 2\\.47**",
              "x-openstack": {
                "min-ver": "2.47"
              }
            },
            "ram": {
              "type": "integer",
              "description": "The amount of RAM a flavor has, in MiB.\n\n\n**New in version 2\\.47**",
              "x-openstack": {
                "min-ver": "2.47"
              }
            },
            "disk": {
              "type": "integer",
              "description": "The size of the root disk that was created in GiB.\n\n\n**New in version 2\\.47**",
              "x-openstack": {
                "min-ver": "2.47"
              }
            },
            "ephemeral": {
              "type": "integer",
              "description": "The size of the ephemeral disk that was created, in GiB.\n\n\n**New in version 2\\.47**",
              "x-openstack": {
                "min-ver": "2.47"
              }
            },
            "swap": {
              "type": "integer",
              "description": "The size of a dedicated swap disk that was allocated, in MiB.\n\n\n**New in version 2\\.47**",
              "x-openstack": {
                "min-ver": "2.47"
              }
            },
            "original_name": {
              "type": "string",
              "description": "The display name of a flavor.\n\n\n**New in version 2\\.47**",
              "x-openstack": {
                "min-ver": "2.47"
              }
            },
            "extra_specs": {
              "description": "A dictionary of the flavor\u2019s extra\\-specs key\\-and\\-value pairs. This will\nonly be included if the user is allowed by policy to index flavor\nextra_specs.\n\n\n**New in version 2\\.47**",
              "x-openstack": {
                "min-ver": "2.47"
              },
              "type": "object",
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              },
              "additionalProperties": false
            }
          }
        },
        "hostId": {
          "type": "string",
          "description": "An ID string representing the host. This is a hashed value so will not actually look like\na hostname, and is hashed with data from the project_id, so the same physical host as seen\nby two different project_ids, will be different. It is useful when within the same project you\nneed to determine if two instances are on the same or different physical hosts for the\npurposes of availability or performance."
        },
        "host_status": {
          "type": [
            "string",
            "null"
          ],
          "description": "The host status. Values where next value in list can override the previous:\n\n\n* `UP` if nova\\-compute up.\n* `UNKNOWN` if nova\\-compute not reported by servicegroup driver.\n* `DOWN` if nova\\-compute forced down.\n* `MAINTENANCE` if nova\\-compute is disabled.\n* Empty string indicates there is no host for server.\n\n\nThis attribute appears in the response only if the policy permits.\nBy default, only administrators can get this parameter.\n\n\n**New in version 2\\.75**",
          "enum": [
            "UP",
            "DOWN",
            "MAINTENANCE",
            "UNKNOWN",
            "",
            "null"
          ],
          "x-openstack": {
            "min-ver": "2.16"
          }
        },
        "OS-EXT-SRV-ATTR:hostname": {
          "type": "string",
          "description": "The hostname of the instance reported in the metadata service.\nThis parameter only appears in responses for administrators until\nmicroversion 2\\.90, after which it is shown for all users.\n\n\n\nNote\n\n\nThis information is published via the metadata service and requires\napplication such as `cloud-init` to propagate it through to the\ninstance.\n\n\n\n**New in version 2\\.75**",
          "x-openstack": {
            "min-ver": "2.3"
          }
        },
        "OS-EXT-SRV-ATTR:hypervisor_hostname": {
          "type": "string",
          "description": "The hypervisor host name provided by the Nova virt driver. For the Ironic driver,\nit is the Ironic node uuid. Appears in the response for administrative users only.\n\n\n**New in version 2\\.75**",
          "x-openstack-sdk-name": "hypervisor_hostname"
        },
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Id of the server",
          "readOnly": true
        },
        "image": {
          "type": "object",
          "description": "The UUID and links for the image for your server instance. The `image` object\nwill be an empty string when you boot the server from a volume.",
          "properties": {
            "id": {
              "type": "string",
              "format": "uuid",
              "description": "The image ID"
            },
            "links": {
              "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
              "type": "array",
              "items": {
                "type": "object",
                "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
                "properties": {
                  "href": {
                    "type": "string",
                    "format": "uri"
                  },
                  "rel": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "OS-EXT-SRV-ATTR:instance_name": {
          "type": "string",
          "description": "The instance name. The Compute API generates the instance name from the instance\nname template. Appears in the response for administrative users only.\n\n\n**New in version 2\\.75**"
        },
        "locked": {
          "type": "boolean",
          "description": "True if the instance is locked otherwise False.\n\n\n**New in version 2\\.9**",
          "x-openstack": {
            "min-ver": "2.9"
          }
        },
        "OS-EXT-SRV-ATTR:kernel_id": {
          "type": "string",
          "description": "The UUID of the kernel image when using an AMI. Will be null if not.\nBy default, it appears in the response for administrative users only.\n\n\n**New in version 2\\.75**",
          "x-openstack": {
            "min-ver": "2.3"
          }
        },
        "key_name": {
          "type": "string",
          "description": "The name of associated key pair, if any.\n\n\n**New in version 2\\.75**"
        },
        "OS-EXT-SRV-ATTR:launch_index": {
          "type": "integer",
          "description": "When servers are launched via multiple create, this is the\nsequence in which the servers were launched.\nBy default, it appears in the response for administrative users only.\n\n\n**New in version 2\\.75**",
          "x-openstack": {
            "min-ver": "2.3"
          }
        },
        "OS-SRV-USG:launched_at": {
          "type": "string",
          "description": "The date and time when the server was launched.\n\n\nThe date and time stamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601):\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`.\n\n\nThe `hh\u00b1:mm` value, if included, is the time zone as an offset from UTC.\nIf the `deleted_at` date and time stamp is not set, its value is `null`.\n\n\n**New in version 2\\.75**"
        },
        "links": {
          "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
          "type": "array",
          "items": {
            "type": "object",
            "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
            "properties": {
              "href": {
                "type": "string",
                "format": "uri"
              },
              "rel": {
                "type": "string"
              }
            }
          }
        },
        "metadata": {
          "type": "object",
          "description": "A dictionary of metadata key\\-and\\-value pairs, which is maintained for backward\ncompatibility.",
          "patternProperties": {
            "^[a-zA-Z0-9-_:. ]{1,255}$": {
              "type": "string",
              "maxLength": 255
            }
          },
          "additionalProperties": false
        },
        "name": {
          "type": "string",
          "description": "The server name."
        },
        "OS-EXT-STS:power_state": {
          "type": "integer",
          "description": "The power state of the instance. This is an enum value that is mapped as:\n\n\n\n```\n0: NOSTATE\n1: RUNNING\n3: PAUSED\n4: SHUTDOWN\n6: CRASHED\n7: SUSPENDED\n\n```\n\n\n**New in version 2\\.75**"
        },
        "progress": {
          "type": "integer",
          "description": "A percentage value of the operation progress.\nThis parameter only appears when the server status is `ACTIVE`,\n`BUILD`, `REBUILD`, `RESIZE`, `VERIFY_RESIZE` or `MIGRATING`."
        },
        "tenant_id": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the tenant in a multi\\-tenancy cloud."
        },
        "OS-EXT-SRV-ATTR:ramdisk_id": {
          "type": "string",
          "description": "The UUID of the ramdisk image when using an AMI. Will be null if not.\nBy default, it appears in the response for administrative users only.\n\n\n**New in version 2\\.75**",
          "x-openstack": {
            "min-ver": "2.3"
          }
        },
        "OS-EXT-SRV-ATTR:reservation_id": {
          "type": "string",
          "description": "The reservation id for the server. This is an id that can\nbe useful in tracking groups of servers created with multiple\ncreate, that will all have the same reservation_id.\nBy default, it appears in the response for administrative users only.\n\n\n**New in version 2\\.75**",
          "x-openstack": {
            "min-ver": "2.3"
          }
        },
        "OS-EXT-SRV-ATTR:root_device_name": {
          "type": "string",
          "description": "The root device name for the instance\nBy default, it appears in the response for administrative users only.\n\n\n**New in version 2\\.75**",
          "x-openstack": {
            "min-ver": "2.3"
          }
        },
        "security_groups": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "The security group name"
              }
            }
          },
          "description": "One or more security groups objects.\n\n\n**New in version 2\\.75**"
        },
        "server_groups": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The UUIDs of the server groups to which the server belongs. Currently\nthis can contain at most one entry.\n\n\n**New in version 2\\.71**",
          "x-openstack": {
            "min-ver": "2.71"
          }
        },
        "status": {
          "type": "string",
          "description": "The server status.",
          "readOnly": true
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of tags. The maximum count of tags in this list is 50\\.\n\n\n**New in version 2\\.26**",
          "x-openstack": {
            "min-ver": "2.26"
          }
        },
        "OS-EXT-STS:task_state": {
          "type": "string",
          "description": "The task state of the instance.\n\n\n**New in version 2\\.75**"
        },
        "OS-SRV-USG:terminated_at": {
          "type": "string",
          "description": "The date and time when the server was deleted.\n\n\nThe date and time stamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601):\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`.\nThe `\u00b1hh:mm` value, if included, is the time zone as an offset from UTC.\nIf the `deleted_at` date and time stamp is not set, its value is `null`.\n\n\n**New in version 2\\.75**"
        },
        "trusted_image_certificates": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          },
          "description": "A list of trusted certificate IDs, that were used during image signature\nverification to verify the signing certificate. The list is restricted\nto a maximum of 50 IDs. The value is `null` if trusted certificate IDs\nare not set.\n\n\n**New in version 2\\.63**",
          "x-openstack": {
            "min-ver": "2.63"
          }
        },
        "updated": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the resource was updated. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`.",
          "readOnly": true
        },
        "OS-EXT-SRV-ATTR:user_data": {
          "type": "string",
          "description": "The user_data the instance was created with.\nBy default, it appears in the response for administrative users only.\n\n\n**New in version 2\\.75**",
          "x-openstack": {
            "min-ver": "2.3"
          }
        },
        "user_id": {
          "type": "string",
          "description": "The user ID of the user who owns the server."
        },
        "OS-EXT-STS:vm_state": {
          "type": "string",
          "description": "The VM state.\n\n\n**New in version 2\\.75**"
        }
      }
    }
  }
}

Name

Location

Type

Description

server

body

object

A server object.

server.accessIPv4

body

string

IPv4 address that should be used to access this server. May be automatically set by the provider.

server.accessIPv6

body

string

IPv6 address that should be used to access this server. May be automatically set by the provider.

server.addresses

body

object

The addresses for the server. Servers with status BUILD hide their addresses information. This view is not updated immediately. Please consult with OpenStack Networking API for up-to-date information.

server.os-extended-volumes:volumes_attached

body

array

The attached volumes, if any.

New in version 2.75

server.OS-EXT-AZ:availability_zone

body

string

The availability zone name.

New in version 2.75

server.OS-EXT-SRV-ATTR:host

body

string

The name of the compute host on which this instance is running. Appears in the response for administrative users only.

New in version 2.75

server.config_drive

body

string

Indicates whether or not a config drive was used for this server. The value is True or an empty string. An empty string stands for False.

New in version 2.75

server.created

body

string

The date and time when the resource was created. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

server.description

body

string

The description of the server. Before microversion 2.19 this was set to the server name.

New in version 2.19

server.OS-DCF:diskConfig

body

string

Disk configuration. The value is either:

  • AUTO. The API builds the server with a single partition the size of the target flavor disk. The API automatically adjusts the file system to fit the entire partition.

  • MANUAL. The API builds the server by using the partition scheme and file system that is in the source image. If the target flavor disk is larger, The API does not partition the remaining disk space.

server.fault

body

object

A fault object. Only displayed when the server status is ERROR or DELETED and a fault occurred.

server.fault.code

body

integer

The error response code.

server.fault.created

body

string

The date and time when the exception was raised. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

server.fault.message

body

string

The error message.

server.fault.details

body

string

The stack trace. It is available if the response code is not 500 or you have the administrator privilege

server.flavor

body

object

Before microversion 2.47 this contains the ID and links for the flavor used to boot the server instance. This can be an empty object in case flavor information is no longer present in the system.

As of microversion 2.47 this contains a subset of the actual flavor information used to create the server instance, represented as a nested dictionary.

server.flavor.id

body

string

The UUID of the server.
Available until version 2.46

server.flavor.links

body

array

Links to the resources in question. See API Guide / Links and References for more info.
Available until version 2.46

server.flavor.links[].href

body

string

server.flavor.links[].rel

body

string

server.flavor.vcpus

body

integer

The number of virtual CPUs that were allocated to the server.

New in version 2.47
New in version 2.47

server.flavor.ram

body

integer

The amount of RAM a flavor has, in MiB.

New in version 2.47
New in version 2.47

server.flavor.disk

body

integer

The size of the root disk that was created in GiB.

New in version 2.47
New in version 2.47

server.flavor.ephemeral

body

integer

The size of the ephemeral disk that was created, in GiB.

New in version 2.47
New in version 2.47

server.flavor.swap

body

integer

The size of a dedicated swap disk that was allocated, in MiB.

New in version 2.47
New in version 2.47

server.flavor.original_name

body

string

The display name of a flavor.

New in version 2.47
New in version 2.47

server.flavor.extra_specs

body

object

A dictionary of the flavor’s extra-specs key-and-value pairs. This will only be included if the user is allowed by policy to index flavor extra_specs.

New in version 2.47
New in version 2.47

server.hostId

body

string

An ID string representing the host. This is a hashed value so will not actually look like a hostname, and is hashed with data from the project_id, so the same physical host as seen by two different project_ids, will be different. It is useful when within the same project you need to determine if two instances are on the same or different physical hosts for the purposes of availability or performance.

server.host_status

body

[‘string’, ‘null’]

The host status. Values where next value in list can override the previous:

  • UP if nova-compute up.

  • UNKNOWN if nova-compute not reported by servicegroup driver.

  • DOWN if nova-compute forced down.

  • MAINTENANCE if nova-compute is disabled.

  • Empty string indicates there is no host for server.

This attribute appears in the response only if the policy permits. By default, only administrators can get this parameter.

New in version 2.75
New in version 2.16

server.OS-EXT-SRV-ATTR:hostname

body

string

The hostname of the instance reported in the metadata service. This parameter only appears in responses for administrators until microversion 2.90, after which it is shown for all users.

Note

This information is published via the metadata service and requires application such as cloud-init to propagate it through to the instance.

New in version 2.75
New in version 2.3

server.OS-EXT-SRV-ATTR:hypervisor_hostname

body

string

The hypervisor host name provided by the Nova virt driver. For the Ironic driver, it is the Ironic node uuid. Appears in the response for administrative users only.

New in version 2.75

server.id

body

string

Id of the server

server.image

body

object

The UUID and links for the image for your server instance. The image object will be an empty string when you boot the server from a volume.

server.image.id

body

string

The image ID

server.image.links

body

array

Links to the resources in question. See API Guide / Links and References for more info.

server.image.links[].href

body

string

server.image.links[].rel

body

string

server.OS-EXT-SRV-ATTR:instance_name

body

string

The instance name. The Compute API generates the instance name from the instance name template. Appears in the response for administrative users only.

New in version 2.75

server.locked

body

boolean

True if the instance is locked otherwise False.

New in version 2.9
New in version 2.9

server.OS-EXT-SRV-ATTR:kernel_id

body

string

The UUID of the kernel image when using an AMI. Will be null if not. By default, it appears in the response for administrative users only.

New in version 2.75
New in version 2.3

server.key_name

body

string

The name of associated key pair, if any.

New in version 2.75

server.OS-EXT-SRV-ATTR:launch_index

body

integer

When servers are launched via multiple create, this is the sequence in which the servers were launched. By default, it appears in the response for administrative users only.

New in version 2.75
New in version 2.3

server.OS-SRV-USG:launched_at

body

string

The date and time when the server was launched.

The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The hh±:mm value, if included, is the time zone as an offset from UTC. If the deleted_at date and time stamp is not set, its value is null.

New in version 2.75

server.links

body

array

Links to the resources in question. See API Guide / Links and References for more info.

server.links[].href

body

string

server.links[].rel

body

string

server.metadata

body

object

A dictionary of metadata key-and-value pairs, which is maintained for backward compatibility.

server.name

body

string

The server name.

server.OS-EXT-STS:power_state

body

integer

The power state of the instance. This is an enum value that is mapped as:

0: NOSTATE
1: RUNNING
3: PAUSED
4: SHUTDOWN
6: CRASHED
7: SUSPENDED

New in version 2.75

server.progress

body

integer

A percentage value of the operation progress. This parameter only appears when the server status is ACTIVE, BUILD, REBUILD, RESIZE, VERIFY_RESIZE or MIGRATING.

server.tenant_id

body

string

The UUID of the tenant in a multi-tenancy cloud.

server.OS-EXT-SRV-ATTR:ramdisk_id

body

string

The UUID of the ramdisk image when using an AMI. Will be null if not. By default, it appears in the response for administrative users only.

New in version 2.75
New in version 2.3

server.OS-EXT-SRV-ATTR:reservation_id

body

string

The reservation id for the server. This is an id that can be useful in tracking groups of servers created with multiple create, that will all have the same reservation_id. By default, it appears in the response for administrative users only.

New in version 2.75
New in version 2.3

server.OS-EXT-SRV-ATTR:root_device_name

body

string

The root device name for the instance By default, it appears in the response for administrative users only.

New in version 2.75
New in version 2.3

server.security_groups

body

array

One or more security groups objects.

New in version 2.75

server.security_groups[].name

body

string

The security group name

server.server_groups

body

array

The UUIDs of the server groups to which the server belongs. Currently this can contain at most one entry.

New in version 2.71
New in version 2.71

server.status

body

string

The server status.

server.tags

body

array

A list of tags. The maximum count of tags in this list is 50.

New in version 2.26
New in version 2.26

server.OS-EXT-STS:task_state

body

string

The task state of the instance.

New in version 2.75

server.OS-SRV-USG:terminated_at

body

string

The date and time when the server was deleted.

The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. If the deleted_at date and time stamp is not set, its value is null.

New in version 2.75

server.trusted_image_certificates

body

[‘array’, ‘null’]

A list of trusted certificate IDs, that were used during image signature verification to verify the signing certificate. The list is restricted to a maximum of 50 IDs. The value is null if trusted certificate IDs are not set.

New in version 2.63
New in version 2.63

server.updated

body

string

The date and time when the resource was updated. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

server.OS-EXT-SRV-ATTR:user_data

body

string

The user_data the instance was created with. By default, it appears in the response for administrative users only.

New in version 2.75
New in version 2.3

server.user_id

body

string

The user ID of the user who owns the server.

server.OS-EXT-STS:vm_state

body

string

The VM state.

New in version 2.75

404

Error

Delete Server

Deletes a server.

By default, the instance is going to be (hard) deleted immediately from the system, but you can set reclaim_instance_interval > 0 to make the API soft delete the instance, so that the instance won’t be deleted until the reclaim_instance_interval has expired since the instance was soft deleted. The instance marked as SOFT_DELETED can be recovered via restore action before it’s really deleted from the system.

Preconditions

Asynchronous postconditions

Troubleshooting

Normal response codes: 204

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Responses

204

Ok

404

Error

409

Error

Confirm Resized Server (confirmResize Action)

Confirms a pending resize action for a server.

Specify the confirmResize action in the request body.

After you make this request, you typically must keep polling the server status to determine whether the request succeeded. A successfully confirming resize operation shows a status of ACTIVE or SHUTOFF and a migration status of confirmed. You can also see the resized server in the compute node that OpenStack Compute manages.

Preconditions

You can only confirm the resized server where the status is VERIFY_RESIZE.

If the server is locked, you must have administrator privileges to confirm the server.

Troubleshooting

If the server status remains VERIFY_RESIZE, the request failed. Ensure you meet the preconditions and run the request again. If the request fails again, the server status should be ERROR and a migration status of error. Investigate the compute back end or ask your cloud provider. There are some options for trying to correct the server status:

Note that the cloud provider may still need to cleanup any orphaned resources on the source hypervisor.

Normal response codes: 204

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

{
  "type": "object",
  "description": "Confirms a pending resize action for a server.\n\nSpecify the `confirmResize` action in the request body.\n\nAfter you make this request, you typically must keep polling the server\nstatus to determine whether the request succeeded. A successfully\nconfirming resize operation shows a status of `ACTIVE` or `SHUTOFF`\nand a migration status of `confirmed`. You can also see the resized\nserver in the compute node that OpenStack Compute manages.\n\n**Preconditions**\n\nYou can only confirm the resized server where the status is\n`VERIFY_RESIZE`.\n\nIf the server is locked, you must have administrator privileges\nto confirm the server.\n\n**Troubleshooting**\n\nIf the server status remains `VERIFY_RESIZE`, the request failed. Ensure you\nmeet the preconditions and run the request again. If the request fails\nagain, the server status should be `ERROR` and a migration status of\n`error`. Investigate the compute back end or ask your cloud provider.\nThere are some options for trying to correct the server status:\n\nNote that the cloud provider may still need to cleanup any orphaned resources\non the source hypervisor.\n\nNormal response codes: 204\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\),\nitemNotFound(404\\), conflict(409\\)",
  "summary": "Confirm Resized Server (confirmResize Action)",
  "properties": {
    "confirmResize": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "confirmResize"
  },
  "required": [
    "confirmResize"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Revert Resized Server (revertResize Action)

Cancels and reverts a pending resize action for a server.

Specify the revertResize action in the request body.

Preconditions

You can only revert the resized server where the status is VERIFY_RESIZE and the OS-EXT-STS:vm_state is resized.

If the server is locked, you must have administrator privileges to revert the resizing.

Asynchronous Postconditions

After you make this request, you typically must keep polling the server status to determine whether the request succeeded. A reverting resize operation shows a status of REVERT_RESIZE and a task_state of resize_reverting. If successful, the status will return to ACTIVE or SHUTOFF. You can also see the reverted server in the compute node that OpenStack Compute manages.

Troubleshooting

If the server status remains VERIFY_RESIZE, the request failed. Ensure you meet the preconditions and run the request again. If the request fails again, investigate the compute back end.

The server is not reverted in the compute node that OpenStack Compute manages.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

{
  "type": "object",
  "description": "Cancels and reverts a pending resize action for a server.\n\nSpecify the `revertResize` action in the request body.\n\n**Preconditions**\n\nYou can only revert the resized server where the status is\n`VERIFY_RESIZE` and the OS\\-EXT\\-STS:vm_state is `resized`.\n\nIf the server is locked, you must have administrator privileges to revert\nthe resizing.\n\n**Asynchronous Postconditions**\n\nAfter you make this request, you typically must keep polling the server status\nto determine whether the request succeeded. A reverting resize operation shows\na status of `REVERT_RESIZE` and a task_state of `resize_reverting`. If\nsuccessful, the status will return to `ACTIVE` or `SHUTOFF`. You can also\nsee the reverted server in the compute node that OpenStack Compute manages.\n\n**Troubleshooting**\n\nIf the server status remains `VERIFY_RESIZE`, the request failed. Ensure you\nmeet the preconditions and run the request again. If the request fails again,\ninvestigate the compute back end.\n\nThe server is not reverted in the compute node that OpenStack Compute manages.\n\nNormal response codes: 202\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\),\nitemNotFound(404\\), conflict(409\\)",
  "summary": "Revert Resized Server (revertResize Action)",
  "properties": {
    "revertResize": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "revertResize"
  },
  "required": [
    "revertResize"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Reboot Server (reboot Action)

Reboots a server.

Specify the reboot action in the request body.

Preconditions

The preconditions for rebooting a server depend on the type of reboot.

You can only SOFT reboot a server when its status is ACTIVE.

You can only HARD reboot a server when its status is one of:

If the server is locked, you must have administrator privileges to reboot the server.

Asynchronous Postconditions

After you successfully reboot a server, its status changes to ACTIVE.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

reboot

body

object

The action to reboot a server.

reboot.type

body

string

The type of the reboot action. The valid values are HARD and SOFT. A SOFT reboot attempts a graceful shutdown and restart of the server. A HARD reboot attempts a forced shutdown and restart of the server. The HARD reboot corresponds to the power cycles of the server.

{
  "type": "object",
  "description": "Reboots a server.\n\nSpecify the `reboot` action in the request body.\n\n**Preconditions**\n\nThe preconditions for rebooting a server depend on the type of reboot.\n\nYou can only *SOFT* reboot a server when its status is `ACTIVE`.\n\nYou can only *HARD* reboot a server when its status is one of:\n\nIf the server is locked, you must have administrator privileges\nto reboot the server.\n\n**Asynchronous Postconditions**\n\nAfter you successfully reboot a server, its status changes to `ACTIVE`.\n\nNormal response codes: 202\n\nError response codes: unauthorized(401\\), forbidden(403\\), itemNotFound(404\\),\nconflict(409\\)",
  "summary": "Reboot Server (reboot Action)",
  "properties": {
    "reboot": {
      "type": "object",
      "description": "The action to reboot a server.",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "HARD",
            "Hard",
            "hard",
            "SOFT",
            "Soft",
            "soft"
          ],
          "description": "The type of the reboot action. The valid values are `HARD` and `SOFT`.\nA `SOFT` reboot attempts a graceful shutdown and restart of the server.\nA `HARD` reboot attempts a forced shutdown and restart of the server.\nThe `HARD` reboot corresponds to the power cycles of the server."
        }
      },
      "additionalProperties": false,
      "required": [
        "type"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "reboot"
  },
  "required": [
    "reboot"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Resize Server (resize Action)

Resizes a server.

Specify the resize action in the request body.

Preconditions

You can only resize a server when its status is ACTIVE or SHUTOFF.

If the server is locked, you must have administrator privileges to resize the server.

Asynchronous Postconditions

A successfully resized server shows a VERIFY_RESIZE status and finished migration status. If the cloud has configured the resize_confirm_window option of the Compute service to a positive value, the Compute service automatically confirms the resize operation after the configured interval.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

resize

body

object

The action to resize a server.

resize.flavorRef

body

[‘string’, ‘integer’]

The flavor ID for resizing the server. The size of the disk in the flavor being resized to must be greater than or equal to the size of the disk in the current flavor.

If a specified flavor ID is the same as the current one of the server, the request returns a Bad Request (400) response code.

resize.OS-DCF:diskConfig

body

string

Controls how the API partitions the disk when you create, rebuild, or resize servers. A server inherits the OS-DCF:diskConfig value from the image from which it was created, and an image inherits the OS-DCF:diskConfig value from the server from which it was created. To override the inherited setting, you can include this attribute in the request body of a server create, rebuild, or resize request. If the OS-DCF:diskConfig value for an image is MANUAL, you cannot create a server from that image and set its OS-DCF:diskConfig value to AUTO. A valid value is:

  • AUTO. The API builds the server with a single partition the size of the target flavor disk. The API automatically adjusts the file system to fit the entire partition.

  • MANUAL. The API builds the server by using whatever partition scheme and file system is in the source image. If the target flavor disk is larger, the API does not partition the remaining disk space.

{
  "type": "object",
  "description": "Resizes a server.\n\nSpecify the `resize` action in the request body.\n\n**Preconditions**\n\nYou can only resize a server when its status is `ACTIVE` or `SHUTOFF`.\n\nIf the server is locked, you must have administrator privileges\nto resize the server.\n\n**Asynchronous Postconditions**\n\nA successfully resized server shows a `VERIFY_RESIZE` status and `finished`\nmigration status. If the cloud has configured the [resize_confirm_window](https://docs.openstack.org/nova/latest/configuration/config.html#DEFAULT.resize_confirm_window)\noption of the Compute service to a positive value, the Compute service\nautomatically confirms the resize operation after the configured interval.\n\nNormal response codes: 202\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\),\nitemNotFound(404\\), conflict(409\\)",
  "summary": "Resize Server (resize Action)",
  "properties": {
    "resize": {
      "type": "object",
      "description": "The action to resize a server.",
      "properties": {
        "flavorRef": {
          "type": [
            "string",
            "integer"
          ],
          "minLength": 1,
          "description": "The flavor ID for resizing the server. The size of the disk in the flavor\nbeing resized to must be greater than or equal to the size of the disk in\nthe current flavor.\n\n\nIf a specified flavor ID is the same as the current one of the server,\nthe request returns a `Bad Request (400)` response code."
        },
        "OS-DCF:diskConfig": {
          "type": "string",
          "enum": [
            "AUTO",
            "MANUAL"
          ],
          "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
        }
      },
      "additionalProperties": false,
      "required": [
        "flavorRef"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "resize"
  },
  "required": [
    "resize"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Rebuild Server (rebuild Action)

Rebuilds a server.

Specify the rebuild action in the request body.

This operation recreates the root disk of the server.

With microversion 2.93, we support rebuilding volume backed instances which will reimage the volume with the provided image. For microversion < 2.93, this operation keeps the contents of the volume given the image provided is same as the image with which the volume was created else the operation will error out.

Preconditions

The server status must be ACTIVE, SHUTOFF or ERROR.

Asynchronous Postconditions

If the server was in status SHUTOFF before the rebuild, it will be stopped and in status SHUTOFF after the rebuild, otherwise it will be ACTIVE if the rebuild was successful or ERROR if the rebuild failed.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

rebuild

body

object

The action to rebuild a server.

rebuild.name

body

string

The server name.

rebuild.imageRef

body

string

The UUID of the image to rebuild for your server instance. It must be a valid UUID otherwise API will return 400. To rebuild a volume-backed server with a new image, at least microversion 2.93 needs to be provided in the request else the request will fall back to old behaviour i.e. the API will return 400 (for an image different from the image used when creating the volume). For non-volume-backed servers, specifying a new image will result in validating that the image is acceptable for the current compute host on which the server exists. If the new image is not valid, the server will go into ERROR status.

rebuild.adminPass

body

string

The administrative password of the server. If you omit this parameter, the operation generates a new password.

rebuild.metadata

body

object

Metadata key and value pairs. The maximum size of the metadata key and value is 255 bytes each.

rebuild.preserve_ephemeral

body

[‘boolean’, ‘string’]

Indicates whether the server is rebuilt with the preservation of the ephemeral partition (true).

Note

This only works with baremetal servers provided by Ironic. Passing it to any other server instance results in a fault and will prevent the rebuild from happening.

rebuild.OS-DCF:diskConfig

body

string

Controls how the API partitions the disk when you create, rebuild, or resize servers. A server inherits the OS-DCF:diskConfig value from the image from which it was created, and an image inherits the OS-DCF:diskConfig value from the server from which it was created. To override the inherited setting, you can include this attribute in the request body of a server create, rebuild, or resize request. If the OS-DCF:diskConfig value for an image is MANUAL, you cannot create a server from that image and set its OS-DCF:diskConfig value to AUTO. A valid value is:

  • AUTO. The API builds the server with a single partition the size of the target flavor disk. The API automatically adjusts the file system to fit the entire partition.

  • MANUAL. The API builds the server by using whatever partition scheme and file system is in the source image. If the target flavor disk is larger, the API does not partition the remaining disk space.

rebuild.accessIPv4

body

string

IPv4 address that should be used to access this server.

rebuild.accessIPv6

body

string

IPv6 address that should be used to access this server.

rebuild.personality

body

array

The file path and contents, text only, to inject into the server at launch. The maximum size of the file path data is 255 bytes. The maximum limit is the number of allowed bytes in the decoded, rather than encoded, data.

Available until version 2.56

rebuild.personality[].path

body

string

rebuild.personality[].contents

body

string

rebuild.personality

body

array

The file path and contents, text only, to inject into the server at launch. The maximum size of the file path data is 255 bytes. The maximum limit is the number of allowed bytes in the decoded, rather than encoded, data.

Available until version 2.56

rebuild.personality

body

array

The file path and contents, text only, to inject into the server at launch. The maximum size of the file path data is 255 bytes. The maximum limit is the number of allowed bytes in the decoded, rather than encoded, data.

Available until version 2.56

rebuild.description

body

[‘string’, ‘null’]

A free form description of the server. Limited to 255 characters in length. Before microversion 2.19 this was set to the server name.

New in version 2.19

rebuild.personality

body

array

The file path and contents, text only, to inject into the server at launch. The maximum size of the file path data is 255 bytes. The maximum limit is the number of allowed bytes in the decoded, rather than encoded, data.

Available until version 2.56

rebuild.trusted_image_certificates

body

[‘array’, ‘null’]

A list of trusted certificate IDs, which are used during image signature verification to verify the signing certificate. The list is restricted to a maximum of 50 IDs. This parameter is optional in server rebuild requests if allowed by policy, and is not supported for volume-backed instances.

If null is specified, the existing trusted certificate IDs are either unset or reset to the configured defaults.

New in version 2.63

rebuild.hostname

body

string

The hostname to configure for the instance in the metadata service.

Starting with microversion 2.94, this can be a Fully Qualified Domain Name (FQDN) of up to 255 characters in length.

Note

This information is published via the metadata service and requires application such as cloud-init to propagate it through to the instance.

New in version 2.90

{
  "description": "Rebuilds a server.\n\nSpecify the `rebuild` action in the request body.\n\nThis operation recreates the root disk of the server.\n\nWith microversion 2\\.93, we support rebuilding volume backed\ninstances which will reimage the volume with the provided\nimage. For microversion \\< 2\\.93, this operation keeps the\ncontents of the volume given the image provided is same as\nthe image with which the volume was created else the operation\nwill error out.\n\n**Preconditions**\n\nThe server status must be `ACTIVE`, `SHUTOFF` or `ERROR`.\n\n**Asynchronous Postconditions**\n\nIf the server was in status `SHUTOFF` before the rebuild, it will be stopped\nand in status `SHUTOFF` after the rebuild, otherwise it will be `ACTIVE`\nif the rebuild was successful or `ERROR` if the rebuild failed.\n\nNormal response codes: 202\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\),\nitemNotFound(404\\), conflict(409\\)",
  "summary": "Rebuild Server (rebuild Action)",
  "oneOf": [
    {
      "type": "object",
      "summary": "Rebuild Server (rebuild Action)",
      "properties": {
        "rebuild": {
          "type": "object",
          "description": "The action to rebuild a server.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name_with_leading_trailing_spaces",
              "description": "The server name."
            },
            "imageRef": {
              "type": "string",
              "format": "uuid",
              "description": "The UUID of the image to rebuild for your server instance. It\nmust be a valid UUID otherwise API will return 400\\. To rebuild a\nvolume\\-backed server with a new image, at least microversion 2\\.93\nneeds to be provided in the request else the request will fall\nback to old behaviour i.e. the API will return 400 (for an image\ndifferent from the image used when creating the volume). For\nnon\\-volume\\-backed servers, specifying a new image will result in\nvalidating that the image is acceptable for the current compute\nhost on which the server exists. If the new image is not valid,\nthe server will go into `ERROR` status."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "preserve_ephemeral": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether the server is rebuilt with the preservation of the ephemeral\npartition (`true`).\n\n\n\nNote\n\n\nThis only works with baremetal servers provided by\nIronic. Passing it to any other server instance results in a\nfault and will prevent the rebuild from happening."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              },
              "description": "The file path and contents, text only, to inject into the server at launch. The\nmaximum size of the file path data is 255 bytes. The maximum limit is the number\nof allowed bytes in the decoded, rather than encoded, data.\n\n\n**Available until version 2\\.56**"
            }
          },
          "additionalProperties": false,
          "required": [
            "imageRef"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.0",
        "action-name": "rebuild"
      },
      "required": [
        "rebuild"
      ]
    },
    {
      "type": "object",
      "summary": "Rebuild Server (rebuild Action)",
      "properties": {
        "rebuild": {
          "type": "object",
          "description": "The action to rebuild a server.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The server name."
            },
            "imageRef": {
              "type": "string",
              "format": "uuid",
              "description": "The UUID of the image to rebuild for your server instance. It\nmust be a valid UUID otherwise API will return 400\\. To rebuild a\nvolume\\-backed server with a new image, at least microversion 2\\.93\nneeds to be provided in the request else the request will fall\nback to old behaviour i.e. the API will return 400 (for an image\ndifferent from the image used when creating the volume). For\nnon\\-volume\\-backed servers, specifying a new image will result in\nvalidating that the image is acceptable for the current compute\nhost on which the server exists. If the new image is not valid,\nthe server will go into `ERROR` status."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "preserve_ephemeral": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether the server is rebuilt with the preservation of the ephemeral\npartition (`true`).\n\n\n\nNote\n\n\nThis only works with baremetal servers provided by\nIronic. Passing it to any other server instance results in a\nfault and will prevent the rebuild from happening."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              },
              "description": "The file path and contents, text only, to inject into the server at launch. The\nmaximum size of the file path data is 255 bytes. The maximum limit is the number\nof allowed bytes in the decoded, rather than encoded, data.\n\n\n**Available until version 2\\.56**"
            }
          },
          "additionalProperties": false,
          "required": [
            "imageRef"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.1",
        "max-ver": "2.18",
        "action-name": "rebuild"
      },
      "required": [
        "rebuild"
      ]
    },
    {
      "type": "object",
      "summary": "Rebuild Server (rebuild Action)",
      "properties": {
        "rebuild": {
          "type": "object",
          "description": "The action to rebuild a server.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The server name."
            },
            "imageRef": {
              "type": "string",
              "format": "uuid",
              "description": "The UUID of the image to rebuild for your server instance. It\nmust be a valid UUID otherwise API will return 400\\. To rebuild a\nvolume\\-backed server with a new image, at least microversion 2\\.93\nneeds to be provided in the request else the request will fall\nback to old behaviour i.e. the API will return 400 (for an image\ndifferent from the image used when creating the volume). For\nnon\\-volume\\-backed servers, specifying a new image will result in\nvalidating that the image is acceptable for the current compute\nhost on which the server exists. If the new image is not valid,\nthe server will go into `ERROR` status."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "preserve_ephemeral": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether the server is rebuilt with the preservation of the ephemeral\npartition (`true`).\n\n\n\nNote\n\n\nThis only works with baremetal servers provided by\nIronic. Passing it to any other server instance results in a\nfault and will prevent the rebuild from happening."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              },
              "description": "The file path and contents, text only, to inject into the server at launch. The\nmaximum size of the file path data is 255 bytes. The maximum limit is the number\nof allowed bytes in the decoded, rather than encoded, data.\n\n\n**Available until version 2\\.56**"
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            }
          },
          "additionalProperties": false,
          "required": [
            "imageRef"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.19",
        "max-ver": "2.53",
        "action-name": "rebuild"
      },
      "required": [
        "rebuild"
      ]
    },
    {
      "type": "object",
      "summary": "Rebuild Server (rebuild Action)",
      "properties": {
        "rebuild": {
          "type": "object",
          "description": "The action to rebuild a server.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The server name."
            },
            "imageRef": {
              "type": "string",
              "format": "uuid",
              "description": "The UUID of the image to rebuild for your server instance. It\nmust be a valid UUID otherwise API will return 400\\. To rebuild a\nvolume\\-backed server with a new image, at least microversion 2\\.93\nneeds to be provided in the request else the request will fall\nback to old behaviour i.e. the API will return 400 (for an image\ndifferent from the image used when creating the volume). For\nnon\\-volume\\-backed servers, specifying a new image will result in\nvalidating that the image is acceptable for the current compute\nhost on which the server exists. If the new image is not valid,\nthe server will go into `ERROR` status."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "preserve_ephemeral": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether the server is rebuilt with the preservation of the ephemeral\npartition (`true`).\n\n\n\nNote\n\n\nThis only works with baremetal servers provided by\nIronic. Passing it to any other server instance results in a\nfault and will prevent the rebuild from happening."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "personality": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string"
                  },
                  "contents": {
                    "type": "string",
                    "format": "base64"
                  }
                },
                "additionalProperties": false
              },
              "description": "The file path and contents, text only, to inject into the server at launch. The\nmaximum size of the file path data is 255 bytes. The maximum limit is the number\nof allowed bytes in the decoded, rather than encoded, data.\n\n\n**Available until version 2\\.56**"
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            },
            "key_name": {
              "oneOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255
                },
                {
                  "type": "null"
                }
              ],
              "description": "Key pair name for rebuild API. If `null` is specified,\nthe existing keypair is unset.\n\n\n\nNote\n\n\nUsers within the same project are able to rebuild other\nuser\u2019s instances in that project with a new keypair. Keys\nare owned by users (which is the only resource that\u2019s true\nof). Servers are owned by projects. Because of this a rebuild\nwith a key_name is looking up the keypair by the user calling\nrebuild.\n\n\n\n**New in version 2\\.54**"
            }
          },
          "additionalProperties": false,
          "required": [
            "imageRef"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.54",
        "max-ver": "2.56",
        "action-name": "rebuild"
      },
      "required": [
        "rebuild"
      ]
    },
    {
      "type": "object",
      "summary": "Rebuild Server (rebuild Action)",
      "properties": {
        "rebuild": {
          "type": "object",
          "description": "The action to rebuild a server.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The server name."
            },
            "imageRef": {
              "type": "string",
              "format": "uuid",
              "description": "The UUID of the image to rebuild for your server instance. It\nmust be a valid UUID otherwise API will return 400\\. To rebuild a\nvolume\\-backed server with a new image, at least microversion 2\\.93\nneeds to be provided in the request else the request will fall\nback to old behaviour i.e. the API will return 400 (for an image\ndifferent from the image used when creating the volume). For\nnon\\-volume\\-backed servers, specifying a new image will result in\nvalidating that the image is acceptable for the current compute\nhost on which the server exists. If the new image is not valid,\nthe server will go into `ERROR` status."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "preserve_ephemeral": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether the server is rebuilt with the preservation of the ephemeral\npartition (`true`).\n\n\n\nNote\n\n\nThis only works with baremetal servers provided by\nIronic. Passing it to any other server instance results in a\nfault and will prevent the rebuild from happening."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            },
            "key_name": {
              "oneOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255
                },
                {
                  "type": "null"
                }
              ],
              "description": "Key pair name for rebuild API. If `null` is specified,\nthe existing keypair is unset.\n\n\n\nNote\n\n\nUsers within the same project are able to rebuild other\nuser\u2019s instances in that project with a new keypair. Keys\nare owned by users (which is the only resource that\u2019s true\nof). Servers are owned by projects. Because of this a rebuild\nwith a key_name is looking up the keypair by the user calling\nrebuild.\n\n\n\n**New in version 2\\.54**"
            },
            "user_data": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "base64",
                  "maxLength": 65535
                },
                {
                  "type": "null"
                }
              ],
              "description": "Configuration information or scripts to use upon rebuild.\nMust be Base64 encoded. Restricted to 65535 bytes.\nIf `null` is specified, the existing user_data is unset.\n\n\n**New in version 2\\.57**"
            }
          },
          "additionalProperties": false,
          "required": [
            "imageRef"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.57",
        "max-ver": "2.62",
        "action-name": "rebuild"
      },
      "required": [
        "rebuild"
      ]
    },
    {
      "type": "object",
      "summary": "Rebuild Server (rebuild Action)",
      "properties": {
        "rebuild": {
          "type": "object",
          "description": "The action to rebuild a server.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The server name."
            },
            "imageRef": {
              "type": "string",
              "format": "uuid",
              "description": "The UUID of the image to rebuild for your server instance. It\nmust be a valid UUID otherwise API will return 400\\. To rebuild a\nvolume\\-backed server with a new image, at least microversion 2\\.93\nneeds to be provided in the request else the request will fall\nback to old behaviour i.e. the API will return 400 (for an image\ndifferent from the image used when creating the volume). For\nnon\\-volume\\-backed servers, specifying a new image will result in\nvalidating that the image is acceptable for the current compute\nhost on which the server exists. If the new image is not valid,\nthe server will go into `ERROR` status."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "preserve_ephemeral": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether the server is rebuilt with the preservation of the ephemeral\npartition (`true`).\n\n\n\nNote\n\n\nThis only works with baremetal servers provided by\nIronic. Passing it to any other server instance results in a\nfault and will prevent the rebuild from happening."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            },
            "key_name": {
              "oneOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255
                },
                {
                  "type": "null"
                }
              ],
              "description": "Key pair name for rebuild API. If `null` is specified,\nthe existing keypair is unset.\n\n\n\nNote\n\n\nUsers within the same project are able to rebuild other\nuser\u2019s instances in that project with a new keypair. Keys\nare owned by users (which is the only resource that\u2019s true\nof). Servers are owned by projects. Because of this a rebuild\nwith a key_name is looking up the keypair by the user calling\nrebuild.\n\n\n\n**New in version 2\\.54**"
            },
            "user_data": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "base64",
                  "maxLength": 65535
                },
                {
                  "type": "null"
                }
              ],
              "description": "Configuration information or scripts to use upon rebuild.\nMust be Base64 encoded. Restricted to 65535 bytes.\nIf `null` is specified, the existing user_data is unset.\n\n\n**New in version 2\\.57**"
            },
            "trusted_image_certificates": {
              "type": [
                "array",
                "null"
              ],
              "minItems": 1,
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "minLength": 1
              },
              "description": "A list of trusted certificate IDs, which are used during image\nsignature verification to verify the signing certificate. The list is\nrestricted to a maximum of 50 IDs. This parameter is optional in server\nrebuild requests if allowed by policy, and is not supported\nfor volume\\-backed instances.\n\n\nIf `null` is specified, the existing trusted certificate IDs are either\nunset or reset to the configured defaults.\n\n\n**New in version 2\\.63**"
            }
          },
          "additionalProperties": false,
          "required": [
            "imageRef"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.63",
        "max-ver": "2.89",
        "action-name": "rebuild"
      },
      "required": [
        "rebuild"
      ]
    },
    {
      "type": "object",
      "summary": "Rebuild Server (rebuild Action)",
      "properties": {
        "rebuild": {
          "type": "object",
          "description": "The action to rebuild a server.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The server name."
            },
            "imageRef": {
              "type": "string",
              "format": "uuid",
              "description": "The UUID of the image to rebuild for your server instance. It\nmust be a valid UUID otherwise API will return 400\\. To rebuild a\nvolume\\-backed server with a new image, at least microversion 2\\.93\nneeds to be provided in the request else the request will fall\nback to old behaviour i.e. the API will return 400 (for an image\ndifferent from the image used when creating the volume). For\nnon\\-volume\\-backed servers, specifying a new image will result in\nvalidating that the image is acceptable for the current compute\nhost on which the server exists. If the new image is not valid,\nthe server will go into `ERROR` status."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "preserve_ephemeral": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether the server is rebuilt with the preservation of the ephemeral\npartition (`true`).\n\n\n\nNote\n\n\nThis only works with baremetal servers provided by\nIronic. Passing it to any other server instance results in a\nfault and will prevent the rebuild from happening."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            },
            "key_name": {
              "oneOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255
                },
                {
                  "type": "null"
                }
              ],
              "description": "Key pair name for rebuild API. If `null` is specified,\nthe existing keypair is unset.\n\n\n\nNote\n\n\nUsers within the same project are able to rebuild other\nuser\u2019s instances in that project with a new keypair. Keys\nare owned by users (which is the only resource that\u2019s true\nof). Servers are owned by projects. Because of this a rebuild\nwith a key_name is looking up the keypair by the user calling\nrebuild.\n\n\n\n**New in version 2\\.54**"
            },
            "user_data": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "base64",
                  "maxLength": 65535
                },
                {
                  "type": "null"
                }
              ],
              "description": "Configuration information or scripts to use upon rebuild.\nMust be Base64 encoded. Restricted to 65535 bytes.\nIf `null` is specified, the existing user_data is unset.\n\n\n**New in version 2\\.57**"
            },
            "trusted_image_certificates": {
              "type": [
                "array",
                "null"
              ],
              "minItems": 1,
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "minLength": 1
              },
              "description": "A list of trusted certificate IDs, which are used during image\nsignature verification to verify the signing certificate. The list is\nrestricted to a maximum of 50 IDs. This parameter is optional in server\nrebuild requests if allowed by policy, and is not supported\nfor volume\\-backed instances.\n\n\nIf `null` is specified, the existing trusted certificate IDs are either\nunset or reset to the configured defaults.\n\n\n**New in version 2\\.63**"
            },
            "hostname": {
              "type": "string",
              "minLength": 2,
              "maxLength": 63,
              "pattern": "^[a-zA-Z0-9]+[a-zA-Z0-9-]*[a-zA-Z0-9]+$",
              "description": "The hostname to configure for the instance in the metadata service.\n\n\nStarting with microversion 2\\.94, this can be a Fully Qualified Domain Name\n(FQDN) of up to 255 characters in length.\n\n\n\nNote\n\n\nThis information is published via the metadata service and requires\napplication such as `cloud-init` to propagate it through to the\ninstance.\n\n\n\n**New in version 2\\.90**"
            }
          },
          "additionalProperties": false,
          "required": [
            "imageRef"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.90",
        "max-ver": "2.93",
        "action-name": "rebuild"
      },
      "required": [
        "rebuild"
      ]
    },
    {
      "type": "object",
      "summary": "Rebuild Server (rebuild Action)",
      "properties": {
        "rebuild": {
          "type": "object",
          "description": "The action to rebuild a server.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The server name."
            },
            "imageRef": {
              "type": "string",
              "format": "uuid",
              "description": "The UUID of the image to rebuild for your server instance. It\nmust be a valid UUID otherwise API will return 400\\. To rebuild a\nvolume\\-backed server with a new image, at least microversion 2\\.93\nneeds to be provided in the request else the request will fall\nback to old behaviour i.e. the API will return 400 (for an image\ndifferent from the image used when creating the volume). For\nnon\\-volume\\-backed servers, specifying a new image will result in\nvalidating that the image is acceptable for the current compute\nhost on which the server exists. If the new image is not valid,\nthe server will go into `ERROR` status."
            },
            "adminPass": {
              "type": "string",
              "description": "The administrative password of the server. If you omit this parameter, the operation\ngenerates a new password."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            },
            "preserve_ephemeral": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Indicates whether the server is rebuilt with the preservation of the ephemeral\npartition (`true`).\n\n\n\nNote\n\n\nThis only works with baremetal servers provided by\nIronic. Passing it to any other server instance results in a\nfault and will prevent the rebuild from happening."
            },
            "OS-DCF:diskConfig": {
              "type": "string",
              "enum": [
                "AUTO",
                "MANUAL"
              ],
              "description": "Controls how the API partitions the disk when you create, rebuild, or resize servers.\nA server inherits the `OS-DCF:diskConfig` value from the image from which it\nwas created, and an image inherits the `OS-DCF:diskConfig` value from the server\nfrom which it was created. To override the inherited setting, you can include\nthis attribute in the request body of a server create, rebuild, or resize request. If\nthe `OS-DCF:diskConfig` value for an image is `MANUAL`, you cannot create\na server from that image and set its `OS-DCF:diskConfig` value to `AUTO`.\nA valid value is:\n\n\n* `AUTO`. The API builds the server with a single partition the size of the\ntarget flavor disk. The API automatically adjusts the file system to fit the\nentire partition.\n* `MANUAL`. The API builds the server by using whatever partition scheme and\nfile system is in the source image. If the target flavor disk is larger, the API\ndoes not partition the remaining disk space."
            },
            "accessIPv4": {
              "type": "string",
              "format": "ipv4",
              "description": "IPv4 address that should be used to access this server."
            },
            "accessIPv6": {
              "type": "string",
              "format": "ipv6",
              "description": "IPv6 address that should be used to access this server."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 0,
              "maxLength": 255,
              "pattern": "^[\\ -\\~\u00a0-\u00ac\u00ae-\u0377\u037a-\u037f\u0384-\u038a\u038c\u038e-\u03a1\u03a3-\u052f\u0531-\u0556\u0559-\u058a\u058d-\u058f\u0591-\u05c7\u05d0-\u05ea\u05ef-\u05f4\u0606-\u061b\u061d-\u06dc\u06de-\u070d\u0710-\u074a\u074d-\u07b1\u07c0-\u07fa\u07fd-\u082d\u0830-\u083e\u0840-\u085b\u085e\u0860-\u086a\u0870-\u088e\u0898-\u08e1\u08e3-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a76\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0af1\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b77\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bfa\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3c-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c5d\u0c60-\u0c63\u0c66-\u0c6f\u0c77-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cdd-\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf3\u0d00-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4f\u0d54-\u0d63\u0d66-\u0d7f\u0d81-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df4\u0e01-\u0e3a\u0e3f-\u0e5b\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ece\u0ed0-\u0ed9\u0edc-\u0edf\u0f00-\u0f47\u0f49-\u0f6c\u0f71-\u0f97\u0f99-\u0fbc\u0fbe-\u0fcc\u0fce-\u0fda\u1000-\u10c5\u10c7\u10cd\u10d0-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u137c\u1380-\u1399\u13a0-\u13f5\u13f8-\u13fd\u1400-\u169c\u16a0-\u16f8\u1700-\u1715\u171f-\u1736\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17dd\u17e0-\u17e9\u17f0-\u17f9\u1800-\u180d\u180f-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1940\u1944-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u19de-\u1a1b\u1a1e-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa0-\u1aad\u1ab0-\u1ace\u1b00-\u1b4c\u1b50-\u1b7e\u1b80-\u1bf3\u1bfc-\u1c37\u1c3b-\u1c49\u1c4d-\u1c88\u1c90-\u1cba\u1cbd-\u1cc7\u1cd0-\u1cfa\u1d00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fc4\u1fc6-\u1fd3\u1fd6-\u1fdb\u1fdd-\u1fef\u1ff2-\u1ff4\u1ff6-\u1ffe\u2000-\u200a\u2010-\u2027\u202f-\u205f\u2070-\u2071\u2074-\u208e\u2090-\u209c\u20a0-\u20c0\u20d0-\u20f0\u2100-\u218b\u2190-\u2426\u2440-\u244a\u2460-\u2b73\u2b76-\u2b95\u2b97-\u2cf3\u2cf9-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f-\u2d70\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2e5d\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3000-\u303f\u3041-\u3096\u3099-\u30ff\u3105-\u312f\u3131-\u318e\u3190-\u31e3\u31f0-\u321e\u3220-\ua48c\ua490-\ua4c6\ua4d0-\ua62b\ua640-\ua6f7\ua700-\ua7ca\ua7d0-\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua82c\ua830-\ua839\ua840-\ua877\ua880-\ua8c5\ua8ce-\ua8d9\ua8e0-\ua953\ua95f-\ua97c\ua980-\ua9cd\ua9cf-\ua9d9\ua9de-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa5c-\uaac2\uaadb-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab6b\uab70-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbc2\ufbd3-\ufd8f\ufd92-\ufdc7\ufdcf\ufdf0-\ufe19\ufe20-\ufe52\ufe54-\ufe66\ufe68-\ufe6b\ufe70-\ufe74\ufe76-\ufefc\uff01-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\uffe0-\uffe6\uffe8-\uffee\ufffc-\ufffd]*$",
              "description": "A free form description of the server. Limited to 255 characters\nin length. Before microversion 2\\.19 this was set to the server\nname.\n\n\n**New in version 2\\.19**"
            },
            "key_name": {
              "oneOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255
                },
                {
                  "type": "null"
                }
              ],
              "description": "Key pair name for rebuild API. If `null` is specified,\nthe existing keypair is unset.\n\n\n\nNote\n\n\nUsers within the same project are able to rebuild other\nuser\u2019s instances in that project with a new keypair. Keys\nare owned by users (which is the only resource that\u2019s true\nof). Servers are owned by projects. Because of this a rebuild\nwith a key_name is looking up the keypair by the user calling\nrebuild.\n\n\n\n**New in version 2\\.54**"
            },
            "user_data": {
              "oneOf": [
                {
                  "type": "string",
                  "format": "base64",
                  "maxLength": 65535
                },
                {
                  "type": "null"
                }
              ],
              "description": "Configuration information or scripts to use upon rebuild.\nMust be Base64 encoded. Restricted to 65535 bytes.\nIf `null` is specified, the existing user_data is unset.\n\n\n**New in version 2\\.57**"
            },
            "trusted_image_certificates": {
              "type": [
                "array",
                "null"
              ],
              "minItems": 1,
              "maxItems": 50,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "minLength": 1
              },
              "description": "A list of trusted certificate IDs, which are used during image\nsignature verification to verify the signing certificate. The list is\nrestricted to a maximum of 50 IDs. This parameter is optional in server\nrebuild requests if allowed by policy, and is not supported\nfor volume\\-backed instances.\n\n\nIf `null` is specified, the existing trusted certificate IDs are either\nunset or reset to the configured defaults.\n\n\n**New in version 2\\.63**"
            },
            "hostname": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$",
              "description": "The hostname to configure for the instance in the metadata service.\n\n\nStarting with microversion 2\\.94, this can be a Fully Qualified Domain Name\n(FQDN) of up to 255 characters in length.\n\n\n\nNote\n\n\nThis information is published via the metadata service and requires\napplication such as `cloud-init` to propagate it through to the\ninstance.\n\n\n\n**New in version 2\\.90**"
            }
          },
          "additionalProperties": false,
          "required": [
            "imageRef"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.94",
        "action-name": "rebuild"
      },
      "required": [
        "rebuild"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion",
    "action-name": "rebuild"
  }
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Create Image (createImage Action)

Creates an image from a server.

Specify the createImage action in the request body.

After you make this request, you typically must keep polling the status of the created image to determine whether the request succeeded.

If the operation succeeds, the created image has a status of active and the server status returns to the original status. You can also see the new image in the image back end that OpenStack Image service manages.

Preconditions

The server must exist.

You can only create a new image from the server when its status is ACTIVE, SHUTOFF, SUSPENDED or PAUSED (PAUSED is only supported for image-backed servers).

The project must have sufficient volume snapshot quota in the block storage service when the server has attached volumes. If the project does not have sufficient volume snapshot quota, the API returns a 403 error.

Asynchronous Postconditions

A snapshot image will be created in the Image service.

In the image-backed server case, volume snapshots of attached volumes will not be created. In the volume-backed server case, volume snapshots will be created for all volumes attached to the server and then those will be represented with a block_device_mapping image property in the resulting snapshot image in the Image service. If that snapshot image is used later to create a new server, it will result in a volume-backed server where the root volume is created from the snapshot of the original root volume. The volumes created from the snapshots of the original other volumes will be attached to the server.

Troubleshooting

If the image status remains uploading or shows another error status, the request failed. Ensure you meet the preconditions and run the request again. If the request fails again, investigate the image back end.

If the server status does not go back to an original server’s status, the request failed. Ensure you meet the preconditions, or check if there is another operation that causes race conditions for the server, then run the request again. If the request fails again, investigate the compute back end or ask your cloud provider.

If the request fails due to an error on OpenStack Compute service, the image is purged from the image store that OpenStack Image service manages. Ensure you meet the preconditions and run the request again. If the request fails again, investigate OpenStack Compute service or ask your cloud provider.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

createImage

body

object

The action to create a snapshot of the image or the volume(s) of the server.

createImage.name

body

string

The display name of an Image.

createImage.metadata

body

object

Metadata key and value pairs for the image. The maximum size for each metadata key and value pair is 255 bytes.

{
  "description": "Creates an image from a server.\n\nSpecify the `createImage` action in the request body.\n\nAfter you make this request, you typically must keep polling the status of\nthe created image to determine whether the request succeeded.\n\nIf the operation succeeds, the created image has a status of `active` and\nthe server status returns to the original status. You can also see the new\nimage in the image back end that OpenStack Image service manages.\n\n**Preconditions**\n\nThe server must exist.\n\nYou can only create a new image from the server when its status is `ACTIVE`,\n`SHUTOFF`, `SUSPENDED` or `PAUSED`\n(`PAUSED` is only supported for image\\-backed servers).\n\nThe project must have sufficient volume snapshot quota in the block storage\nservice when the server has attached volumes.\nIf the project does not have sufficient volume snapshot quota,\nthe API returns a 403 error.\n\n**Asynchronous Postconditions**\n\nA snapshot image will be created in the Image service.\n\nIn the image\\-backed server case, volume snapshots of attached volumes will not\nbe created.\nIn the volume\\-backed server case,\nvolume snapshots will be created for all volumes attached to the server and\nthen those will be represented with a `block_device_mapping` image property\nin the resulting snapshot image in the Image service.\nIf that snapshot image is used later to create a new server,\nit will result in a volume\\-backed server where the root volume is created\nfrom the snapshot of the original root volume. The volumes created from\nthe snapshots of the original other volumes will be attached to the server.\n\n**Troubleshooting**\n\nIf the image status remains uploading or shows another error status,\nthe request failed. Ensure you meet the preconditions and run the request\nagain. If the request fails again, investigate the image back end.\n\nIf the server status does not go back to an original server\u2019s status,\nthe request failed. Ensure you meet the preconditions, or check if\nthere is another operation that causes race conditions for the server,\nthen run the request again. If the request fails again, investigate the\ncompute back end or ask your cloud provider.\n\nIf the request fails due to an error on OpenStack Compute service, the image\nis purged from the image store that OpenStack Image service manages. Ensure\nyou meet the preconditions and run the request again. If the request fails\nagain, investigate OpenStack Compute service or ask your cloud provider.\n\nNormal response codes: 202\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\),\nitemNotFound(404\\), conflict(409\\)",
  "summary": "Create Image (createImage Action)",
  "oneOf": [
    {
      "type": "object",
      "summary": "Create Image (createImage Action)",
      "properties": {
        "createImage": {
          "type": "object",
          "description": "The action to create a snapshot of the image or\nthe volume(s) of the server.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The display name of an Image."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs for the image.\nThe maximum size for each metadata key and value pair is 255 bytes.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "name"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.0",
        "action-name": "createImage"
      },
      "required": [
        "createImage"
      ]
    },
    {
      "type": "object",
      "summary": "Create Image (createImage Action)",
      "properties": {
        "createImage": {
          "type": "object",
          "description": "The action to create a snapshot of the image or\nthe volume(s) of the server.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The display name of an Image."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs for the image.\nThe maximum size for each metadata key and value pair is 255 bytes.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "name"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.1",
        "action-name": "createImage"
      },
      "required": [
        "createImage"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion",
    "action-name": "createImage"
  }
}

Responses

201

Ok

202

Accepted

{
  "type": "object",
  "properties": {
    "image_id": {
      "type": "string",
      "description": "The UUID for the resulting image snapshot.",
      "x-openstack": {
        "min-ver": "2.45"
      }
    }
  },
  "x-openstack": {
    "action-name": "createImage"
  }
}

Name

Location

Type

Description

image_id

body

string

The UUID for the resulting image snapshot.
New in version 2.45

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Start Server (os-start Action)

Starts a stopped server and changes its status to ACTIVE.

Specify the os-start action in the request body.

Preconditions

The server status must be SHUTOFF.

If the server is locked, you must have administrator privileges to start the server.

Asynchronous Postconditions

After you successfully start a server, its status changes to ACTIVE.

Troubleshooting

If the server status does not change to ACTIVE, the start operation failed. Ensure that you meet the preconditions and run the request again. If the request fails again, investigate whether another operation is running that causes a race condition.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

{
  "type": "object",
  "description": "Starts a stopped server and changes its status to `ACTIVE`.\n\nSpecify the `os-start` action in the request body.\n\n**Preconditions**\n\nThe server status must be `SHUTOFF`.\n\nIf the server is locked, you must have administrator privileges\nto start the server.\n\n**Asynchronous Postconditions**\n\nAfter you successfully start a server, its status changes to `ACTIVE`.\n\n**Troubleshooting**\n\nIf the server status does not change to `ACTIVE`, the start operation failed.\nEnsure that you meet the preconditions and run the request again.\nIf the request fails again, investigate whether another operation is running\nthat causes a race condition.\n\nNormal response codes: 202\n\nError response codes: unauthorized(401\\), forbidden(403\\), itemNotFound(404\\),\nconflict(409\\)",
  "summary": "Start Server (os-start Action)",
  "properties": {
    "os-start": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "os-start"
  },
  "required": [
    "os-start"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Stop Server (os-stop Action)

Stops a running server and changes its status to SHUTOFF.

Specify the os-stop action in the request body.

Preconditions

The server status must be ACTIVE or ERROR.

If the server is locked, you must have administrator privileges to stop the server.

Asynchronous Postconditions

After you successfully stop a server, its status changes to SHUTOFF. This API operation does not delete the server instance data and the data will be available again after os-start action.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

{
  "type": "object",
  "description": "Stops a running server and changes its status to `SHUTOFF`.\n\nSpecify the `os-stop` action in the request body.\n\n**Preconditions**\n\nThe server status must be `ACTIVE` or `ERROR`.\n\nIf the server is locked, you must have administrator privileges\nto stop the server.\n\n**Asynchronous Postconditions**\n\nAfter you successfully stop a server, its status changes to `SHUTOFF`.\nThis API operation does not delete the server instance data and the data\nwill be available again after `os-start` action.\n\nNormal response codes: 202\n\nError response codes: unauthorized(401\\), forbidden(403\\), itemNotFound(404\\),\nconflict(409\\)",
  "summary": "Stop Server (os-stop Action)",
  "properties": {
    "os-stop": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "os-stop"
  },
  "required": [
    "os-stop"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

`trigger_crash_dump` action

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

trigger_crash_dump

body

null

{
  "type": "object",
  "properties": {
    "trigger_crash_dump": {
      "type": "null"
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.17",
    "action-name": "trigger_crash_dump"
  },
  "required": [
    "trigger_crash_dump"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Reset Networking On A Server (resetNetwork Action) (DEPRECATED)

Resets networking on a server.

Specify the resetNetwork action in the request body.

Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), gone(410)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

resetNetwork

body

null

The action.

{
  "type": "object",
  "description": "Resets networking on a server.\n\nSpecify the `resetNetwork` action in the request body.\n\nPolicy defaults enable only users with the administrative role to\nperform this operation. Cloud providers can change these permissions\nthrough the `policy.json` file.\n\nNormal response codes: 202\n\nError response codes: unauthorized(401\\), forbidden(403\\), itemNotFound(404\\),\nconflict(409\\), gone(410\\)",
  "summary": "Reset Networking On A Server (resetNetwork Action) (DEPRECATED)",
  "properties": {
    "resetNetwork": {
      "type": "null",
      "description": "The action."
    }
  },
  "x-openstack": {
    "action-name": "resetNetwork"
  }
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Inject Network Information (injectNetworkInfo Action)

Injects network information into a server.

Specify the injectNetworkInfo action in the request body.

Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

{
  "type": "object",
  "description": "Injects network information into a server.\n\nSpecify the `injectNetworkInfo` action in the request body.\n\nPolicy defaults enable only users with the administrative role to\nperform this operation. Cloud providers can change these permissions\nthrough the `policy.json` file.\n\nNormal response codes: 202\n\nError response codes: unauthorized(401\\), forbidden(403\\), itemNotFound(404\\), conflict(409\\)",
  "summary": "Inject Network Information (injectNetworkInfo Action)",
  "properties": {
    "injectNetworkInfo": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "injectNetworkInfo"
  },
  "required": [
    "injectNetworkInfo"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Reset Server State (os-resetState Action)

Resets the state of a server.

Specify the os-resetState action and the state in the request body.

Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

os-resetState

body

object

The action.

os-resetState.state

body

string

The state of the server to be set, active or error are valid.

{
  "type": "object",
  "description": "Resets the state of a server.\n\nSpecify the `os-resetState` action and the `state` in the request body.\n\nPolicy defaults enable only users with the administrative role to\nperform this operation. Cloud providers can change these permissions\nthrough the `policy.json` file.\n\nNormal response codes: 202\n\nError response codes: unauthorized(401\\), forbidden(403\\), itemNotFound(404\\)",
  "summary": "Reset Server State (os-resetState Action)",
  "properties": {
    "os-resetState": {
      "type": "object",
      "description": "The action.",
      "properties": {
        "state": {
          "type": "string",
          "enum": [
            "active",
            "error"
          ],
          "description": "The state of the server to be set, `active` or `error` are valid."
        }
      },
      "additionalProperties": false,
      "required": [
        "state"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "os-resetState"
  },
  "required": [
    "os-resetState"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Change Administrative Password (changePassword Action)

Changes the administrative password for a server.

Specify the changePassword action in the request body.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), notImplemented(501)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

changePassword

body

object

The action to change an administrative password of the server.

changePassword.adminPass

body

string

The administrative password for the server.

{
  "type": "object",
  "description": "Changes the administrative password for a server.\n\nSpecify the `changePassword` action in the request body.\n\nPolicy defaults enable only users with the administrative role or\nthe owner of the server to perform this operation. Cloud providers can\nchange these permissions through the `policy.json` file.\n\nNormal response codes: 202\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\),\nitemNotFound(404\\), conflict(409\\), notImplemented(501\\)",
  "summary": "Change Administrative Password (changePassword Action)",
  "properties": {
    "changePassword": {
      "type": "object",
      "description": "The action to change an administrative password of the server.",
      "properties": {
        "adminPass": {
          "type": "string",
          "description": "The administrative password for the server."
        }
      },
      "additionalProperties": false,
      "required": [
        "adminPass"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "changePassword"
  },
  "required": [
    "changePassword"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Show Console Output (os-getConsoleOutput Action)

Shows console output for a server.

This API returns the text of the console since boot. The content returned may be large. Limit the lines of console text, beginning at the tail of the content, by setting the optional length parameter in the request body.

The server to get console log from should set export LC_ALL=en_US.UTF-8 in order to avoid incorrect unicode error.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), notFound(404), conflict(409), methodNotImplemented(501)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

os-getConsoleOutput

body

object

The action to get console output of the server.

os-getConsoleOutput.length

body

[‘integer’, ‘string’, ‘null’]

The number of lines to fetch from the end of console log. All lines will be returned if this is not specified.

Note

This parameter can be specified as not only ‘integer’ but also ‘string’.

{
  "type": "object",
  "description": "Shows console output for a server.\n\nThis API returns the text of the console since boot.\nThe content returned may be large. Limit the lines of console\ntext, beginning at the tail of the content, by setting\nthe optional `length` parameter in the request body.\n\nThe server to get console log from should set\n`export LC_ALL=en_US.UTF-8` in order to avoid incorrect unicode error.\n\nNormal response codes: 200\n\nError response codes: unauthorized(401\\), forbidden(403\\),\nnotFound(404\\), conflict(409\\), methodNotImplemented(501\\)",
  "summary": "Show Console Output (os-getConsoleOutput Action)",
  "properties": {
    "os-getConsoleOutput": {
      "type": "object",
      "description": "The action to get console output of the server.",
      "properties": {
        "length": {
          "type": [
            "integer",
            "string",
            "null"
          ],
          "pattern": "^-?[0-9]+$",
          "minimum": -1,
          "description": "The number of lines to fetch from the end of console log. All\nlines will be returned if this is not specified.\n\n\n\nNote\n\n\nThis parameter can be specified as not only \u2018integer\u2019 but also \u2018string\u2019."
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "os-getConsoleOutput"
  },
  "required": [
    "os-getConsoleOutput"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "The console output as a string. Control characters will be escaped to create a valid JSON string.",
  "properties": {
    "output": {
      "type": "string",
      "description": "The console output as a string. Control characters will be escaped\nto create a valid JSON string."
    }
  },
  "x-openstack": {
    "action-name": "os-getConsoleOutput"
  }
}

Name

Location

Type

Description

output

body

string

The console output as a string. Control characters will be escaped to create a valid JSON string.

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Create Server Back Up (createBackup Action)

Creates a back up of a server.

Specify the createBackup action in the request body.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

createBackup

body

object

The action.

createBackup.name

body

string

The name of the image to be backed up.

createBackup.backup_type

body

string

The type of the backup, for example, daily.

createBackup.rotation

body

[‘integer’, ‘string’]

The rotation of the back up image, the oldest image will be removed when image count exceed the rotation count.

createBackup.metadata

body

object

Metadata key and value pairs. The maximum size of the metadata key and value is 255 bytes each.

{
  "description": "Creates a back up of a server.\n\nSpecify the `createBackup` action in the request body.\n\nPolicy defaults enable only users with the administrative role or the\nowner of the server to perform this operation. Cloud providers can\nchange these permissions through the `policy.json` file.\n\nNormal response codes: 202\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\),\nitemNotFound(404\\), conflict(409\\)",
  "summary": "Create Server Back Up (createBackup Action)",
  "oneOf": [
    {
      "type": "object",
      "summary": "Create Server Back Up (createBackup Action)",
      "properties": {
        "createBackup": {
          "type": "object",
          "description": "The action.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name_with_leading_trailing_spaces",
              "description": "The name of the image to be backed up."
            },
            "backup_type": {
              "type": "string",
              "description": "The type of the backup, for example, `daily`."
            },
            "rotation": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 0,
              "minLength": 1,
              "description": "The rotation of the back up image, the oldest image will be removed when image count\nexceed the rotation count."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "backup_type",
            "rotation"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.0",
        "action-name": "createBackup"
      },
      "required": [
        "createBackup"
      ]
    },
    {
      "type": "object",
      "summary": "Create Server Back Up (createBackup Action)",
      "properties": {
        "createBackup": {
          "type": "object",
          "description": "The action.",
          "properties": {
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name",
              "description": "The name of the image to be backed up."
            },
            "backup_type": {
              "type": "string",
              "description": "The type of the backup, for example, `daily`."
            },
            "rotation": {
              "type": [
                "integer",
                "string"
              ],
              "pattern": "^[0-9]*$",
              "minimum": 0,
              "minLength": 1,
              "description": "The rotation of the back up image, the oldest image will be removed when image count\nexceed the rotation count."
            },
            "metadata": {
              "type": "object",
              "description": "Metadata key and value pairs. The maximum size of the metadata key and value is\n255 bytes each.",
              "additionalProperties": false,
              "patternProperties": {
                "^[a-zA-Z0-9-_:. ]{1,255}$": {
                  "type": "string",
                  "maxLength": 255
                }
              }
            }
          },
          "additionalProperties": false,
          "required": [
            "name",
            "backup_type",
            "rotation"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.1",
        "action-name": "createBackup"
      },
      "required": [
        "createBackup"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion",
    "action-name": "createBackup"
  }
}

Responses

201

Ok

202

Accepted

{
  "type": "object",
  "properties": {
    "image_id": {
      "type": "string",
      "description": "The UUID for the resulting image snapshot.",
      "x-openstack": {
        "min-ver": "2.45"
      }
    }
  },
  "x-openstack": {
    "action-name": "createBackup"
  }
}

Name

Location

Type

Description

image_id

body

string

The UUID for the resulting image snapshot.
New in version 2.45

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Restore Soft-Deleted Instance (restore Action)

Restores a previously soft-deleted server instance. You cannot use this method to restore deleted instances.

Specify the restore action in the request body.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

{
  "type": "object",
  "description": "Restores a previously soft\\-deleted server instance. You cannot use\nthis method to restore deleted instances.\n\nSpecify the `restore` action in the request body.\n\nPolicy defaults enable only users with the administrative role or\nthe owner of the server to perform this operation. Cloud providers\ncan change these permissions through the `policy.json` file.\n\nNormal response codes: 202\n\nError response codes: unauthorized(401\\), forbidden(403\\), itemNotFound(404\\),\nconflict(409\\)",
  "summary": "Restore Soft-Deleted Instance (restore Action)",
  "properties": {
    "restore": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "restore"
  },
  "required": [
    "restore"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Force-Delete Server (forceDelete Action)

Force-deletes a server before deferred cleanup.

Specify the forceDelete action in the request body.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

{
  "type": "object",
  "description": "Force\\-deletes a server before deferred cleanup.\n\nSpecify the `forceDelete` action in the request body.\n\nPolicy defaults enable only users with the administrative role or\nthe owner of the server to perform this operation. Cloud providers\ncan change these permissions through the `policy.json` file.\n\nNormal response codes: 202\n\nError response codes: unauthorized(401\\), forbidden(403\\), itemNotFound(404\\),\nconflict(409\\)",
  "summary": "Force-Delete Server (forceDelete Action)",
  "properties": {
    "forceDelete": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "forceDelete"
  },
  "required": [
    "forceDelete"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Evacuate Server (evacuate Action)

Evacuates a server from a failed host to a new host.

Preconditions

Starting from API version 2.68, the force parameter is no longer accepted as this could not be meaningfully supported by servers with complex resource allocations.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

evacuate

body

object

The action to evacuate a server to another host.

evacuate.host

body

string

The name or ID of the host to which the server is evacuated. If you omit this parameter, the scheduler chooses a host.

Warning

Prior to microversion 2.29, specifying a host will bypass validation by the scheduler, which could result in failures to actually evacuate the instance to the specified host, or over-subscription of the host. It is recommended to either not specify a host so that the scheduler will pick one, or specify a host with microversion >= 2.29 and without force=True set.

evacuate.onSharedStorage

body

[‘boolean’, ‘string’]

Server on shared storage.

Note

Starting since version 2.14, Nova automatically detects whether the server is on shared storage or not. Therefore this parameter was removed.

Available until version 2.13

evacuate.adminPass

body

string

An administrative password to access the evacuated server. If you omit this parameter, the operation generates a new password. Up to API version 2.13, if onSharedStorage is set to True and this parameter is specified, an error is raised.

evacuate.force

body

[‘boolean’, ‘string’]

Force an evacuation by not verifying the provided destination host by the scheduler.

Warning

This could result in failures to actually evacuate the instance to the specified host. It is recommended to either not specify a host so that the scheduler will pick one, or specify a host without force=True set.

Furthermore, this should not be specified when evacuating instances managed by a clustered hypervisor driver like ironic since you cannot specify a node, so the compute service will pick a node randomly which may not be able to accommodate the instance.

New in version 2.29

Available until version 2.67

{
  "description": "Evacuates a server from a failed host to a new host.\n\n**Preconditions**\n\nStarting from API version 2\\.68, the `force` parameter is no longer accepted\nas this could not be meaningfully supported by servers with complex resource\nallocations.\n\nNormal response codes: 200\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\),\nitemNotFound(404\\), conflict(409\\)",
  "summary": "Evacuate Server (evacuate Action)",
  "oneOf": [
    {
      "type": "object",
      "summary": "Evacuate Server (evacuate Action)",
      "properties": {
        "evacuate": {
          "type": "object",
          "description": "The action to evacuate a server to another host.",
          "properties": {
            "host": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$",
              "description": "The name or ID of the host to which the server is evacuated.\nIf you omit this parameter, the scheduler chooses a host.\n\n\n\nWarning\n\n\nPrior to microversion 2\\.29, specifying a host will bypass\nvalidation by the scheduler, which could result in failures to actually\nevacuate the instance to the specified host, or over\\-subscription of the\nhost. It is recommended to either not specify a host so that the\nscheduler will pick one, or specify a host with microversion \\>\\= 2\\.29 and\nwithout `force=True` set."
            },
            "onSharedStorage": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Server on shared storage.\n\n\n\nNote\n\n\nStarting since version 2\\.14, Nova automatically detects\nwhether the server is on shared storage or not.\nTherefore this parameter was removed.\n\n\n\n**Available until version 2\\.13**"
            },
            "adminPass": {
              "type": "string",
              "description": "An administrative password to access the evacuated server.\nIf you omit this parameter, the operation generates a new password.\nUp to API version 2\\.13, if `onSharedStorage` is set to `True` and\nthis parameter is specified, an error is raised."
            }
          },
          "additionalProperties": false,
          "required": [
            "onSharedStorage"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.13",
        "action-name": "evacuate"
      },
      "required": [
        "evacuate"
      ]
    },
    {
      "type": "object",
      "summary": "Evacuate Server (evacuate Action)",
      "properties": {
        "evacuate": {
          "type": "object",
          "description": "The action to evacuate a server to another host.",
          "properties": {
            "host": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$",
              "description": "The name or ID of the host to which the server is evacuated.\nIf you omit this parameter, the scheduler chooses a host.\n\n\n\nWarning\n\n\nPrior to microversion 2\\.29, specifying a host will bypass\nvalidation by the scheduler, which could result in failures to actually\nevacuate the instance to the specified host, or over\\-subscription of the\nhost. It is recommended to either not specify a host so that the\nscheduler will pick one, or specify a host with microversion \\>\\= 2\\.29 and\nwithout `force=True` set."
            },
            "adminPass": {
              "type": "string",
              "description": "An administrative password to access the evacuated server.\nIf you omit this parameter, the operation generates a new password.\nUp to API version 2\\.13, if `onSharedStorage` is set to `True` and\nthis parameter is specified, an error is raised."
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.14",
        "max-ver": "2.28",
        "action-name": "evacuate"
      },
      "required": [
        "evacuate"
      ]
    },
    {
      "type": "object",
      "summary": "Evacuate Server (evacuate Action)",
      "properties": {
        "evacuate": {
          "type": "object",
          "description": "The action to evacuate a server to another host.",
          "properties": {
            "host": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$",
              "description": "The name or ID of the host to which the server is evacuated.\nIf you omit this parameter, the scheduler chooses a host.\n\n\n\nWarning\n\n\nPrior to microversion 2\\.29, specifying a host will bypass\nvalidation by the scheduler, which could result in failures to actually\nevacuate the instance to the specified host, or over\\-subscription of the\nhost. It is recommended to either not specify a host so that the\nscheduler will pick one, or specify a host with microversion \\>\\= 2\\.29 and\nwithout `force=True` set."
            },
            "adminPass": {
              "type": "string",
              "description": "An administrative password to access the evacuated server.\nIf you omit this parameter, the operation generates a new password.\nUp to API version 2\\.13, if `onSharedStorage` is set to `True` and\nthis parameter is specified, an error is raised."
            },
            "force": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Force an evacuation by not verifying the provided destination host by the\nscheduler.\n\n\n\nWarning\n\n\nThis could result in failures to actually evacuate the\ninstance to the specified host. It is recommended to either not specify\na host so that the scheduler will pick one, or specify a host without\n`force=True` set.\n\n\nFurthermore, this should not be specified when evacuating instances\nmanaged by a clustered hypervisor driver like ironic since you\ncannot specify a node, so the compute service will pick a node randomly\nwhich may not be able to accommodate the instance.\n\n\n\n**New in version 2\\.29**\n\n\n**Available until version 2\\.67**"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.29",
        "max-ver": "2.67",
        "action-name": "evacuate"
      },
      "required": [
        "evacuate"
      ]
    },
    {
      "type": "object",
      "summary": "Evacuate Server (evacuate Action)",
      "properties": {
        "evacuate": {
          "type": "object",
          "description": "The action to evacuate a server to another host.",
          "properties": {
            "host": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$",
              "description": "The name or ID of the host to which the server is evacuated.\nIf you omit this parameter, the scheduler chooses a host.\n\n\n\nWarning\n\n\nPrior to microversion 2\\.29, specifying a host will bypass\nvalidation by the scheduler, which could result in failures to actually\nevacuate the instance to the specified host, or over\\-subscription of the\nhost. It is recommended to either not specify a host so that the\nscheduler will pick one, or specify a host with microversion \\>\\= 2\\.29 and\nwithout `force=True` set."
            },
            "adminPass": {
              "type": "string",
              "description": "An administrative password to access the evacuated server.\nIf you omit this parameter, the operation generates a new password.\nUp to API version 2\\.13, if `onSharedStorage` is set to `True` and\nthis parameter is specified, an error is raised."
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.68",
        "max-ver": "2.94",
        "action-name": "evacuate"
      },
      "required": [
        "evacuate"
      ]
    },
    {
      "type": "object",
      "summary": "Evacuate Server (evacuate Action)",
      "properties": {
        "evacuate": {
          "type": "object",
          "description": "The action to evacuate a server to another host.",
          "properties": {
            "host": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$",
              "description": "The name or ID of the host to which the server is evacuated.\nIf you omit this parameter, the scheduler chooses a host.\n\n\n\nWarning\n\n\nPrior to microversion 2\\.29, specifying a host will bypass\nvalidation by the scheduler, which could result in failures to actually\nevacuate the instance to the specified host, or over\\-subscription of the\nhost. It is recommended to either not specify a host so that the\nscheduler will pick one, or specify a host with microversion \\>\\= 2\\.29 and\nwithout `force=True` set."
            },
            "adminPass": {
              "type": "string",
              "description": "An administrative password to access the evacuated server.\nIf you omit this parameter, the operation generates a new password.\nUp to API version 2\\.13, if `onSharedStorage` is set to `True` and\nthis parameter is specified, an error is raised."
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.95",
        "action-name": "evacuate"
      },
      "required": [
        "evacuate"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion",
    "action-name": "evacuate"
  }
}

Responses

201

Ok

{
  "type": "object",
  "properties": {
    "adminPass": {
      "type": "string",
      "description": "An administrative password to access the evacuated instance.\nIf you set `enable_instance_password` configuration option to `False`,\nthe API wouldn\u2019t return the `adminPass` field in response.\n\n\n**Available until version 2\\.13**"
    }
  },
  "x-openstack": {
    "action-name": "evacuate"
  }
}

Name

Location

Type

Description

adminPass

body

string

An administrative password to access the evacuated instance. If you set enable_instance_password configuration option to False, the API wouldn’t return the adminPass field in response.

Available until version 2.13

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Add (Associate) Floating Ip (addFloatingIp Action) (DEPRECATED)

Adds a floating IP address to a server, which associates that address with the server.

A pool of floating IP addresses, configured by the cloud administrator, is available in OpenStack Compute. The project quota defines the maximum number of floating IP addresses that you can allocate to the project. After you create (allocate) a floating IPaddress for a project, you can associate that address with the server. Specify the addFloatingIp action in the request body.

If an instance is connected to multiple networks, you can associate a floating IP address with a specific fixed IP address by using the optional fixed_address parameter.

Preconditions

The server must exist.

You can only add a floating IP address to the server when its status is ACTIVE or STOPPED

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

addFloatingIp

body

object

The action. Contains required floating IP address and optional fixed_address.

addFloatingIp.address

body

string

The fixed IP address with which you want to associate the floating IP address.

addFloatingIp.fixed_address

body

string

The fixed IP address with which you want to associate the floating IP address.

{
  "type": "object",
  "description": "Adds a floating IP address to a server, which associates\nthat address with the server.\n\nA pool of floating IP addresses, configured by the cloud administrator,\nis available in OpenStack Compute. The project quota defines the maximum\nnumber of floating IP addresses that you can allocate to the project.\nAfter you [create (allocate) a floating IPaddress](https://docs.openstack.org/api-ref/compute/#create-allocate-floating-ip-address)\nfor a project, you can associate that address with the server. Specify\nthe `addFloatingIp` action in the request body.\n\nIf an instance is connected to multiple networks, you can associate a\nfloating IP address with a specific fixed IP address by using the\noptional `fixed_address` parameter.\n\n**Preconditions**\n\nThe server must exist.\n\nYou can only add a floating IP address to the server when its status is `ACTIVE` or `STOPPED`\n\nNormal response codes: 202\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\),\nitemNotFound(404\\)",
  "summary": "Add (Associate) Floating Ip (addFloatingIp Action) (DEPRECATED)",
  "properties": {
    "addFloatingIp": {
      "type": "object",
      "description": "The action. Contains required floating IP `address` and optional\n`fixed_address`.",
      "properties": {
        "address": {
          "type": "string",
          "oneOf": [
            {
              "format": "ipv4"
            },
            {
              "format": "ipv6"
            }
          ],
          "description": "The fixed IP address with which you want to associate the floating IP address."
        },
        "fixed_address": {
          "type": "string",
          "oneOf": [
            {
              "format": "ipv4"
            },
            {
              "format": "ipv6"
            }
          ],
          "description": "The fixed IP address with which you want to associate the floating IP address."
        }
      },
      "additionalProperties": false,
      "required": [
        "address"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.43",
    "action-name": "addFloatingIp"
  },
  "required": [
    "addFloatingIp"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Remove (Disassociate) Floating Ip (removeFloatingIp Action) (DEPRECATED)

Removes, or disassociates, a floating IP address from a server.

The IP address is returned to the pool of IP addresses that is available for all projects. When you remove a floating IP address and that IP address is still associated with a running instance, it is automatically disassociated from that instance.

Specify the removeFloatingIp action in the request body.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

removeFloatingIp

body

object

The action to remove or disassociate a floating IP address from the server.

removeFloatingIp.address

body

string

The floating IP address.

{
  "type": "object",
  "description": "Removes, or disassociates, a floating IP address from a server.\n\nThe IP address is returned to the pool of IP addresses that is available\nfor all projects. When you remove a floating IP address and that IP address\nis still associated with a running instance, it is automatically\ndisassociated from that instance.\n\nSpecify the `removeFloatingIp` action in the request body.\n\nNormal response codes: 202\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\),\nitemNotFound(404\\), conflict(409\\)",
  "summary": "Remove (Disassociate) Floating Ip (removeFloatingIp Action) (DEPRECATED)",
  "properties": {
    "removeFloatingIp": {
      "type": "object",
      "description": "The action to remove or disassociate a floating IP address\nfrom the server.",
      "properties": {
        "address": {
          "type": "string",
          "oneOf": [
            {
              "format": "ipv4"
            },
            {
              "format": "ipv6"
            }
          ],
          "description": "The floating IP address."
        }
      },
      "additionalProperties": false,
      "required": [
        "address"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.43",
    "action-name": "removeFloatingIp"
  },
  "required": [
    "removeFloatingIp"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Lock Server (lock Action)

Locks a server.

Specify the lock action in the request body.

Most actions by non-admin users are not allowed to the server after this operation is successful and the server is locked. See the “Lock, Unlock” item in Server actions for the restricted actions. But administrators can perform actions on the server even though the server is locked. Note that from microversion 2.73 it is possible to specify a reason when locking the server.

The unlock action will unlock a server in locked state so additional actions can be performed on the server by non-admin users.

You can know whether a server is locked or not and the locked_reason (if specified, from the 2.73 microversion) by the List Servers Detailed API or the Show Server Details API.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file. Administrators can overwrite owner’s lock.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

lock

body

[‘object’, ‘null’]

The action to lock a server. This parameter can be null. Up to microversion 2.73, this parameter should be null.

{
  "description": "Locks a server.\n\nSpecify the `lock` action in the request body.\n\nMost actions by non\\-admin users are not allowed to the server\nafter this operation is successful and the server is locked.\nSee the \u201cLock, Unlock\u201d item in [Server actions](https://docs.openstack.org/api-guide/compute/server_concepts.html#server-actions)\nfor the restricted actions.\nBut administrators can perform actions on the server\neven though the server is locked. Note that from microversion 2\\.73 it is\npossible to specify a reason when locking the server.\n\nThe [unlock action](https://docs.openstack.org/api-ref/compute/#unlock-server-unlock-action)\nwill unlock a server in locked state so additional actions can\nbe performed on the server by non\\-admin users.\n\nYou can know whether a server is locked or not and the `locked_reason`\n(if specified, from the 2\\.73 microversion) by the [List Servers Detailed API](https://docs.openstack.org/api-ref/compute/#list-servers-detailed)\nor\nthe [Show Server Details API](https://docs.openstack.org/api-ref/compute/#show-server-details).\n\nPolicy defaults enable only users with the administrative role or\nthe owner of the server to perform this operation. Cloud providers\ncan change these permissions through the `policy.json` file.\nAdministrators can overwrite owner\u2019s lock.\n\nNormal response codes: 202\n\nError response codes: unauthorized(401\\), forbidden(403\\), itemNotFound(404\\)",
  "summary": "Lock Server (lock Action)",
  "oneOf": [
    {
      "type": "object",
      "summary": "Lock Server (lock Action)",
      "properties": {
        "lock": {}
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.1",
        "max-ver": "2.72",
        "action-name": "lock"
      },
      "required": [
        "lock"
      ]
    },
    {
      "type": "object",
      "summary": "Lock Server (lock Action)",
      "properties": {
        "lock": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "locked_reason": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255
            }
          },
          "additionalProperties": false,
          "description": "The action to lock a server.\nThis parameter can be `null`.\nUp to microversion 2\\.73, this parameter should be `null`."
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.73",
        "action-name": "lock"
      },
      "required": [
        "lock"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion",
    "action-name": "lock"
  }
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Unlock Server (unlock Action)

Unlocks a locked server.

Specify the unlock action in the request body.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

{
  "type": "object",
  "description": "Unlocks a locked server.\n\nSpecify the `unlock` action in the request body.\n\nPolicy defaults enable only users with the administrative role or\nthe owner of the server to perform this operation. Cloud providers\ncan change these permissions through the `policy.json` file.\n\nNormal response codes: 202\n\nError response codes: unauthorized(401\\), forbidden(403\\), itemNotFound(404\\)",
  "summary": "Unlock Server (unlock Action)",
  "properties": {
    "unlock": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.72",
    "action-name": "unlock"
  },
  "required": [
    "unlock"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Migrate Server (migrate Action)

Migrates a server to a host.

Specify the migrate action in the request body.

Up to microversion 2.55, the scheduler chooses the host. Starting from microversion 2.56, the host parameter is available to specify the destination host. If you specify null or don’t specify this parameter, the scheduler chooses a host.

Asynchronous Postconditions

A successfully migrated server shows a VERIFY_RESIZE status and finished migration status. If the cloud has configured the resize_confirm_window option of the Compute service to a positive value, the Compute service automatically confirms the migrate operation after the configured interval.

There are two different policies for this action, depending on whether the host parameter is set. Both defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403) itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

migrate

body

[‘object’, ‘null’]

The action to cold migrate a server. This parameter can be null. Up to microversion 2.55, this parameter should be null.

{
  "type": "object",
  "description": "Migrates a server to a host.\n\nSpecify the `migrate` action in the request body.\n\nUp to microversion 2\\.55, the scheduler chooses the host.\nStarting from microversion 2\\.56, the `host` parameter is available\nto specify the destination host. If you specify `null` or don\u2019t specify\nthis parameter, the scheduler chooses a host.\n\n**Asynchronous Postconditions**\n\nA successfully migrated server shows a `VERIFY_RESIZE` status and `finished`\nmigration status. If the cloud has configured the [resize_confirm_window](https://docs.openstack.org/nova/latest/configuration/config.html#DEFAULT.resize_confirm_window)\noption of the Compute service to a positive value, the Compute service\nautomatically confirms the migrate operation after the configured interval.\n\nThere are two different policies for this action, depending on whether the host\nparameter is set. Both defaults enable only users with the administrative role\nto perform this operation. Cloud providers can change these permissions\nthrough the `policy.json` file.\n\nNormal response codes: 202\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\)\nitemNotFound(404\\), conflict(409\\)",
  "summary": "Migrate Server (migrate Action)",
  "properties": {
    "migrate": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "host": {
          "type": [
            "string",
            "null"
          ],
          "minLength": 1,
          "maxLength": 255,
          "pattern": "^[a-zA-Z0-9-._]*$"
        }
      },
      "additionalProperties": false,
      "description": "The action to cold migrate a server.\nThis parameter can be `null`.\nUp to microversion 2\\.55, this parameter should be `null`."
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.56",
    "action-name": "migrate"
  },
  "required": [
    "migrate"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Live-Migrate Server (os-migrateLive Action)

Live-migrates a server to a new host without rebooting.

Specify the os-migrateLive action in the request body.

Use the host parameter to specify the destination host. If this param is null, the scheduler chooses a host. If a scheduled host is not suitable to do migration, the scheduler tries up to migrate_max_retries rescheduling attempts.

Starting from API version 2.25, the block_migration parameter could be to auto so that nova can decide value of block_migration during live migration.

Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Starting from REST API version 2.34 pre-live-migration checks are done asynchronously, results of these checks are available in instance-actions. Nova responds immediately, and no pre-live-migration checks are returned. The instance will not immediately change state to ERROR, if a failure of the live-migration checks occurs.

Starting from API version 2.68, the force parameter is no longer accepted as this could not be meaningfully supported by servers with complex resource allocations.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403) itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

os-migrateLive

body

object

The action.

os-migrateLive.block_migration

body

[‘boolean’, ‘string’]

Set to True to enable over commit when the destination host is checked for available disk space. Set to False to disable over commit. This setting affects only the libvirt virt driver.

Available until version 2.25

os-migrateLive.disk_over_commit

body

[‘boolean’, ‘string’]

Set to True to enable over commit when the destination host is checked for available disk space. Set to False to disable over commit. This setting affects only the libvirt virt driver.

Available until version 2.25

os-migrateLive.host

body

[‘string’, ‘null’]

The host to which to migrate the server. If this parameter is None, the scheduler chooses a host.

Warning

Prior to microversion 2.30, specifying a host will bypass validation by the scheduler, which could result in failures to actually migrate the instance to the specified host, or over-subscription of the host. It is recommended to either not specify a host so that the scheduler will pick one, or specify a host with microversion >= 2.30 and without force=True set.

os-migrateLive.force

body

[‘boolean’, ‘string’]

Force a live-migration by not verifying the provided destination host by the scheduler.

Warning

This could result in failures to actually live migrate the instance to the specified host. It is recommended to either not specify a host so that the scheduler will pick one, or specify a host without force=True set.

New in version 2.30

Available until version 2.67

{
  "description": "Live\\-migrates a server to a new host without rebooting.\n\nSpecify the `os-migrateLive` action in the request body.\n\nUse the `host` parameter to specify the destination host. If\nthis param is `null`, the scheduler chooses a host. If a scheduled host\nis not suitable to do migration, the scheduler tries up to\n`migrate_max_retries` rescheduling attempts.\n\nStarting from API version 2\\.25, the `block_migration` parameter could be\nto `auto` so that nova can decide value of block_migration during live\nmigration.\n\nPolicy defaults enable only users with the administrative role to\nperform this operation. Cloud providers can change these permissions\nthrough the `policy.json` file.\n\nStarting from REST API version 2\\.34 pre\\-live\\-migration checks are done\nasynchronously, results of these checks are available in `instance-actions`.\nNova responds immediately, and no pre\\-live\\-migration checks are returned.\nThe instance will not immediately change state to `ERROR`, if a failure of\nthe live\\-migration checks occurs.\n\nStarting from API version 2\\.68, the `force` parameter is no longer accepted\nas this could not be meaningfully supported by servers with complex resource\nallocations.\n\nNormal response codes: 202\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\)\nitemNotFound(404\\), conflict(409\\)",
  "summary": "Live-Migrate Server (os-migrateLive Action)",
  "oneOf": [
    {
      "type": "object",
      "summary": "Live-Migrate Server (os-migrateLive Action)",
      "properties": {
        "os-migrateLive": {
          "type": "object",
          "description": "The action.",
          "properties": {
            "block_migration": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Set to `True` to enable over commit when the destination host is checked for\navailable disk space. Set to `False` to disable over commit. This setting affects\nonly the libvirt virt driver.\n\n\n**Available until version 2\\.25**"
            },
            "disk_over_commit": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Set to `True` to enable over commit when the destination host is checked for\navailable disk space. Set to `False` to disable over commit. This setting affects\nonly the libvirt virt driver.\n\n\n**Available until version 2\\.25**"
            },
            "host": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$",
              "description": "The host to which to migrate the server. If this parameter is `None`,\nthe scheduler chooses a host.\n\n\n\nWarning\n\n\nPrior to microversion 2\\.30, specifying a host will bypass\nvalidation by the scheduler, which could result in failures to actually\nmigrate the instance to the specified host, or over\\-subscription of the\nhost. It is recommended to either not specify a host so that the\nscheduler will pick one, or specify a host with microversion \\>\\= 2\\.30 and\nwithout `force=True` set."
            }
          },
          "additionalProperties": false,
          "required": [
            "block_migration",
            "disk_over_commit",
            "host"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.24",
        "action-name": "os-migrateLive"
      },
      "required": [
        "os-migrateLive"
      ]
    },
    {
      "type": "object",
      "summary": "Live-Migrate Server (os-migrateLive Action)",
      "properties": {
        "os-migrateLive": {
          "type": "object",
          "description": "The action.",
          "properties": {
            "block_migration": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no",
                "auto"
              ],
              "description": "Migrates local disks by using block migration. Set to `auto` which means\nnova will detect whether source and destination hosts on shared storage. if they are\non shared storage, the live\\-migration won\u2019t be block migration. Otherwise the block\nmigration will be executed. Set to `True`, means the request will fail when the\nsource or destination host uses shared storage. Set to `False` means the request\nwill fail when the source and destination hosts are not on the shared storage.\n\n\n**New in version 2\\.25**"
            },
            "host": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$",
              "description": "The host to which to migrate the server. If this parameter is `None`,\nthe scheduler chooses a host.\n\n\n\nWarning\n\n\nPrior to microversion 2\\.30, specifying a host will bypass\nvalidation by the scheduler, which could result in failures to actually\nmigrate the instance to the specified host, or over\\-subscription of the\nhost. It is recommended to either not specify a host so that the\nscheduler will pick one, or specify a host with microversion \\>\\= 2\\.30 and\nwithout `force=True` set."
            }
          },
          "additionalProperties": false,
          "required": [
            "block_migration",
            "host"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.25",
        "max-ver": "2.29",
        "action-name": "os-migrateLive"
      },
      "required": [
        "os-migrateLive"
      ]
    },
    {
      "type": "object",
      "summary": "Live-Migrate Server (os-migrateLive Action)",
      "properties": {
        "os-migrateLive": {
          "type": "object",
          "description": "The action.",
          "properties": {
            "block_migration": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no",
                "auto"
              ],
              "description": "Migrates local disks by using block migration. Set to `auto` which means\nnova will detect whether source and destination hosts on shared storage. if they are\non shared storage, the live\\-migration won\u2019t be block migration. Otherwise the block\nmigration will be executed. Set to `True`, means the request will fail when the\nsource or destination host uses shared storage. Set to `False` means the request\nwill fail when the source and destination hosts are not on the shared storage.\n\n\n**New in version 2\\.25**"
            },
            "host": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$",
              "description": "The host to which to migrate the server. If this parameter is `None`,\nthe scheduler chooses a host.\n\n\n\nWarning\n\n\nPrior to microversion 2\\.30, specifying a host will bypass\nvalidation by the scheduler, which could result in failures to actually\nmigrate the instance to the specified host, or over\\-subscription of the\nhost. It is recommended to either not specify a host so that the\nscheduler will pick one, or specify a host with microversion \\>\\= 2\\.30 and\nwithout `force=True` set."
            },
            "force": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "Force a live\\-migration by not verifying the provided destination host by\nthe scheduler.\n\n\n\nWarning\n\n\nThis could result in failures to actually live migrate the\ninstance to the specified host. It is recommended to either not specify\na host so that the scheduler will pick one, or specify a host without\n`force=True` set.\n\n\n\n**New in version 2\\.30**\n\n\n**Available until version 2\\.67**"
            }
          },
          "additionalProperties": false,
          "required": [
            "block_migration",
            "host"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.30",
        "max-ver": "2.67",
        "action-name": "os-migrateLive"
      },
      "required": [
        "os-migrateLive"
      ]
    },
    {
      "type": "object",
      "summary": "Live-Migrate Server (os-migrateLive Action)",
      "properties": {
        "os-migrateLive": {
          "type": "object",
          "description": "The action.",
          "properties": {
            "block_migration": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no",
                "auto"
              ],
              "description": "Migrates local disks by using block migration. Set to `auto` which means\nnova will detect whether source and destination hosts on shared storage. if they are\non shared storage, the live\\-migration won\u2019t be block migration. Otherwise the block\nmigration will be executed. Set to `True`, means the request will fail when the\nsource or destination host uses shared storage. Set to `False` means the request\nwill fail when the source and destination hosts are not on the shared storage.\n\n\n**New in version 2\\.25**"
            },
            "host": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 1,
              "maxLength": 255,
              "pattern": "^[a-zA-Z0-9-._]*$",
              "description": "The host to which to migrate the server. If this parameter is `None`,\nthe scheduler chooses a host.\n\n\n\nWarning\n\n\nPrior to microversion 2\\.30, specifying a host will bypass\nvalidation by the scheduler, which could result in failures to actually\nmigrate the instance to the specified host, or over\\-subscription of the\nhost. It is recommended to either not specify a host so that the\nscheduler will pick one, or specify a host with microversion \\>\\= 2\\.30 and\nwithout `force=True` set."
            }
          },
          "additionalProperties": false,
          "required": [
            "block_migration",
            "host"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.68",
        "action-name": "os-migrateLive"
      },
      "required": [
        "os-migrateLive"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion",
    "action-name": "os-migrateLive"
  }
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Add (Associate) Fixed Ip (addFixedIp Action) (DEPRECATED)

Adds a fixed IP address to a server instance, which associates that address with the server. The fixed IP address is retrieved from the network that you specify in the request.

Specify the addFixedIp action and the network ID in the request body.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

addFixedIp

body

object

The action to add a fixed ip address to a server.

addFixedIp.networkId

body

[‘string’, ‘number’]

The network ID.

{
  "type": "object",
  "description": "Adds a fixed IP address to a server instance, which associates that\naddress with the server. The fixed IP address is retrieved from the\nnetwork that you specify in the request.\n\nSpecify the `addFixedIp` action and the network ID in the request body.\n\nPolicy defaults enable only users with the administrative role or\nthe owner of the server to perform this operation. Cloud providers\ncan change these permissions through the `policy.json` file.\n\nNormal response codes: 202\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\),\nitemNotFound(404\\)",
  "summary": "Add (Associate) Fixed Ip (addFixedIp Action) (DEPRECATED)",
  "properties": {
    "addFixedIp": {
      "type": "object",
      "description": "The action to add a fixed ip address to a server.",
      "properties": {
        "networkId": {
          "type": [
            "string",
            "number"
          ],
          "minLength": 1,
          "maxLength": 36,
          "description": "The network ID."
        }
      },
      "additionalProperties": false,
      "required": [
        "networkId"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.43",
    "action-name": "addFixedIp"
  },
  "required": [
    "addFixedIp"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Remove (Disassociate) Fixed Ip (removeFixedIp Action) (DEPRECATED)

Removes, or disassociates, a fixed IP address from a server.

Specify the removeFixedIp action in the request body.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

removeFixedIp

body

object

The action to remove a fixed ip address from a server.

removeFixedIp.address

body

string

The IP address.

{
  "type": "object",
  "description": "Removes, or disassociates, a fixed IP address from a server.\n\nSpecify the `removeFixedIp` action in the request body.\n\nPolicy defaults enable only users with the administrative role or\nthe owner of the server to perform this operation. Cloud providers\ncan change these permissions through the `policy.json` file.\n\nNormal response codes: 202\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\),\nitemNotFound(404\\)",
  "summary": "Remove (Disassociate) Fixed Ip (removeFixedIp Action) (DEPRECATED)",
  "properties": {
    "removeFixedIp": {
      "type": "object",
      "description": "The action to remove a fixed ip address from a server.",
      "properties": {
        "address": {
          "type": "string",
          "oneOf": [
            {
              "format": "ipv4"
            },
            {
              "format": "ipv6"
            }
          ],
          "description": "The IP address."
        }
      },
      "additionalProperties": false,
      "required": [
        "address"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.43",
    "action-name": "removeFixedIp"
  },
  "required": [
    "removeFixedIp"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Pause Server (pause Action)

Pauses a server. Changes its status to PAUSED.

Specify the pause action in the request body.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), notImplemented(501)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

{
  "type": "object",
  "description": "Pauses a server. Changes its status to `PAUSED`.\n\nSpecify the `pause` action in the request body.\n\nPolicy defaults enable only users with the administrative role or\nthe owner of the server to perform this operation. Cloud providers\ncan change these permissions through the `policy.json` file.\n\nNormal response codes: 202\n\nError response codes: unauthorized(401\\), forbidden(403\\), itemNotFound(404\\),\nconflict(409\\), notImplemented(501\\)",
  "summary": "Pause Server (pause Action)",
  "properties": {
    "pause": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "pause"
  },
  "required": [
    "pause"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Unpause Server (unpause Action)

Unpauses a paused server and changes its status to ACTIVE.

Specify the unpause action in the request body.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), notImplemented(501)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

{
  "type": "object",
  "description": "Unpauses a paused server and changes its status to `ACTIVE`.\n\nSpecify the `unpause` action in the request body.\n\nPolicy defaults enable only users with the administrative role or\nthe owner of the server to perform this operation. Cloud providers\ncan change these permissions through the `policy.json` file.\n\nNormal response codes: 202\n\nError response codes: unauthorized(401\\), forbidden(403\\), itemNotFound(404\\),\nconflict(409\\), notImplemented(501\\)",
  "summary": "Unpause Server (unpause Action)",
  "properties": {
    "unpause": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "unpause"
  },
  "required": [
    "unpause"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Get VNC Console (os-getVNCConsole Action) (DEPRECATED)

Gets a VNC console for a server.

Specify the os-getVNCConsole action in the request body.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), notImplemented(501)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

os-getVNCConsole

body

object

The action.

os-getVNCConsole.type

body

string

The type of VNC console. The only valid value is novnc.

{
  "type": "object",
  "description": "Gets a VNC console for a server.\n\nSpecify the `os-getVNCConsole` action in the request body.\n\nNormal response codes: 200\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\), itemNotFound(404\\),\nconflict(409\\), notImplemented(501\\)",
  "summary": "Get VNC Console (os-getVNCConsole Action) (DEPRECATED)",
  "properties": {
    "os-getVNCConsole": {
      "type": "object",
      "description": "The action.",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "novnc",
            "xvpvnc"
          ],
          "description": "The type of VNC console. The only valid value is `novnc`."
        }
      },
      "additionalProperties": false,
      "required": [
        "type"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.5",
    "action-name": "os-getVNCConsole"
  },
  "required": [
    "os-getVNCConsole"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "The remote console object.",
  "properties": {
    "console": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "The type of RDP console. The only valid value is `rdp-html5`.",
          "enum": [
            "rdp-html5",
            "serial",
            "spice-html5",
            "novnc"
          ]
        },
        "url": {
          "type": "string",
          "description": "The URL used to connect to the RDP console."
        }
      },
      "description": "The remote console object."
    }
  },
  "x-openstack": {
    "action-name": "os-getVNCConsole"
  }
}

Name

Location

Type

Description

console

body

object

The remote console object.

console.type

body

string

The type of RDP console. The only valid value is rdp-html5.

console.url

body

string

The URL used to connect to the RDP console.

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Get SPICE Console (os-getSPICEConsole Action) (DEPRECATED)

Gets a SPICE console for a server.

Specify the os-getSPICEConsole action in the request body.

The only supported connection type is spice-html5. The type parameter should be set to spice-html5.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), notImplemented(501)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

os-getSPICEConsole

body

object

The action.

os-getSPICEConsole.type

body

string

The type of SPICE console. The only valid value is spice-html5.

{
  "type": "object",
  "description": "Gets a SPICE console for a server.\n\nSpecify the `os-getSPICEConsole` action in the request body.\n\nThe only supported connection type is `spice-html5`. The `type` parameter\nshould be set to `spice-html5`.\n\nNormal response codes: 200\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\), itemNotFound(404\\),\nconflict(409\\), notImplemented(501\\)",
  "summary": "Get SPICE Console (os-getSPICEConsole Action) (DEPRECATED)",
  "properties": {
    "os-getSPICEConsole": {
      "type": "object",
      "description": "The action.",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "spice-html5"
          ],
          "description": "The type of SPICE console. The only valid value is `spice-html5`."
        }
      },
      "additionalProperties": false,
      "required": [
        "type"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.5",
    "action-name": "os-getSPICEConsole"
  },
  "required": [
    "os-getSPICEConsole"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "The remote console object.",
  "properties": {
    "console": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "The type of RDP console. The only valid value is `rdp-html5`.",
          "enum": [
            "rdp-html5",
            "serial",
            "spice-html5",
            "novnc"
          ]
        },
        "url": {
          "type": "string",
          "description": "The URL used to connect to the RDP console."
        }
      },
      "description": "The remote console object."
    }
  },
  "x-openstack": {
    "action-name": "os-getSPICEConsole"
  }
}

Name

Location

Type

Description

console

body

object

The remote console object.

console.type

body

string

The type of RDP console. The only valid value is rdp-html5.

console.url

body

string

The URL used to connect to the RDP console.

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Get RDP Console (os-getRDPConsole Action)

Gets an RDP console for a server.

The only supported connect type is rdp-html5. The type parameter should be set as rdp-html5.

Specify the os-getRDPConsole action in the request body.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), notImplemented(501)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

os-getRDPConsole

body

null

The action.

{
  "type": "object",
  "description": "Gets an [RDP](https://technet.microsoft.com/en-us/windowsserver/ee236407) console for a server.\n\nThe only supported connect type is `rdp-html5`. The `type` parameter should\nbe set as `rdp-html5`.\n\nSpecify the `os-getRDPConsole` action in the request body.\n\nNormal response codes: 200\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\), itemNotFound(404\\),\nconflict(409\\), notImplemented(501\\)",
  "summary": "Get RDP Console (os-getRDPConsole Action)",
  "properties": {
    "os-getRDPConsole": {
      "type": "null",
      "description": "The action."
    }
  },
  "x-openstack": {
    "action-name": "os-getRDPConsole"
  }
}

Responses

201

Ok

{
  "type": "object",
  "description": "The remote console object.",
  "properties": {
    "console": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "The type of RDP console. The only valid value is `rdp-html5`.",
          "enum": [
            "rdp-html5",
            "serial",
            "spice-html5",
            "novnc"
          ]
        },
        "url": {
          "type": "string",
          "description": "The URL used to connect to the RDP console."
        }
      },
      "description": "The remote console object."
    }
  },
  "x-openstack": {
    "action-name": "os-getRDPConsole"
  }
}

Name

Location

Type

Description

console

body

object

The remote console object.

console.type

body

string

The type of RDP console. The only valid value is rdp-html5.

console.url

body

string

The URL used to connect to the RDP console.

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Get Serial Console (os-getSerialConsole Action) (DEPRECATED)

Gets a serial console for a server.

Specify the os-getSerialConsole action in the request body.

The only supported connection type is serial. The type parameter should be set as serial.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), notImplemented(501)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

os-getSerialConsole

body

object

The action.

os-getSerialConsole.type

body

string

The type of serial console. The only valid value is serial.

{
  "type": "object",
  "description": "Gets a serial console for a server.\n\nSpecify the `os-getSerialConsole` action in the request body.\n\nThe only supported connection type is `serial`. The `type` parameter\nshould be set as `serial`.\n\nNormal response codes: 200\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\), itemNotFound(404\\),\nconflict(409\\), notImplemented(501\\)",
  "summary": "Get Serial Console (os-getSerialConsole Action) (DEPRECATED)",
  "properties": {
    "os-getSerialConsole": {
      "type": "object",
      "description": "The action.",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "serial"
          ],
          "description": "The type of serial console. The only valid value is `serial`."
        }
      },
      "additionalProperties": false,
      "required": [
        "type"
      ]
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.1",
    "max-ver": "2.5",
    "action-name": "os-getSerialConsole"
  },
  "required": [
    "os-getSerialConsole"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "The remote console object.",
  "properties": {
    "console": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "The type of RDP console. The only valid value is `rdp-html5`.",
          "enum": [
            "rdp-html5",
            "serial",
            "spice-html5",
            "novnc"
          ]
        },
        "url": {
          "type": "string",
          "description": "The URL used to connect to the RDP console."
        }
      },
      "description": "The remote console object."
    }
  },
  "x-openstack": {
    "action-name": "os-getSerialConsole"
  }
}

Name

Location

Type

Description

console

body

object

The remote console object.

console.type

body

string

The type of RDP console. The only valid value is rdp-html5.

console.url

body

string

The URL used to connect to the RDP console.

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Rescue Server (rescue Action)

Puts a server in rescue mode and changes its status to RESCUE.

Specify the rescue action in the request body.

If you specify the rescue_image_ref extended attribute, the image is used to rescue the instance. If you omit an image reference, the base image reference is used by default.

Asynchronous Postconditions

After you successfully rescue a server and make a GET /servers/​{server_id}​ request, its status changes to RESCUE.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), notImplemented(501)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

rescue

body

[‘object’, ‘null’]

The action to rescue a server.

{
  "type": "object",
  "description": "Puts a server in rescue mode and changes its status to `RESCUE`.\n\nSpecify the `rescue` action in the request body.\n\nIf you specify the `rescue_image_ref` extended attribute,\nthe image is used to rescue the instance. If you omit an image\nreference, the base image reference is used by default.\n\n**Asynchronous Postconditions**\n\nAfter you successfully rescue a server and make a `GET\n/servers/\u200b{server_id}\u200b` request, its status changes to `RESCUE`.\n\nNormal response codes: 200\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\),\nitemNotFound(404\\), conflict(409\\), notImplemented(501\\)",
  "summary": "Rescue Server (rescue Action)",
  "properties": {
    "rescue": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "adminPass": {
          "type": "string"
        },
        "rescue_image_ref": {
          "type": "string",
          "format": "uuid"
        }
      },
      "additionalProperties": false,
      "description": "The action to rescue a server."
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "rescue"
  },
  "required": [
    "rescue"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "properties": {
    "adminPass": {
      "type": "string",
      "description": "An administrative password to access the evacuated instance.\nIf you set `enable_instance_password` configuration option to `False`,\nthe API wouldn\u2019t return the `adminPass` field in response.\n\n\n**Available until version 2\\.13**"
    }
  },
  "x-openstack": {
    "action-name": "rescue"
  }
}

Name

Location

Type

Description

adminPass

body

string

An administrative password to access the evacuated instance. If you set enable_instance_password configuration option to False, the API wouldn’t return the adminPass field in response.

Available until version 2.13

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Unrescue Server (unrescue Action)

Unrescues a server. Changes status to ACTIVE.

Specify the unrescue action in the request body.

Preconditions

The server must exist.

You can only unrescue a server when its status is RESCUE.

Asynchronous Postconditions

After you successfully unrescue a server and make a GET /servers/​{server_id}​ request, its status changes to ACTIVE.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), notImplemented(501)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

{
  "type": "object",
  "description": "Unrescues a server. Changes status to `ACTIVE`.\n\nSpecify the `unrescue` action in the request body.\n\n**Preconditions**\n\nThe server must exist.\n\nYou can only unrescue a server when its status is `RESCUE`.\n\n**Asynchronous Postconditions**\n\nAfter you successfully unrescue a server and make a\n`GET /servers/\u200b{server_id}\u200b`\nrequest, its status changes to `ACTIVE`.\n\nNormal response codes: 202\n\nError response codes: unauthorized(401\\), forbidden(403\\), itemNotFound(404\\),\nconflict(409\\), notImplemented(501\\)",
  "summary": "Unrescue Server (unrescue Action)",
  "properties": {
    "unrescue": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "unrescue"
  },
  "required": [
    "unrescue"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Add Security Group To A Server (addSecurityGroup Action)

Adds a security group to a server.

Specify the addSecurityGroup action in the request body.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

name

body

string

The security group name.

{
  "type": "object",
  "description": "Adds a security group to a server.\n\nSpecify the `addSecurityGroup` action in the request body.\n\nNormal response codes: 202\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\),\nitemNotFound(404\\), conflict(409\\)",
  "summary": "Add Security Group To A Server (addSecurityGroup Action)",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "The security group name."
    }
  },
  "additionalProperties": true,
  "x-openstack": {
    "action-name": "addSecurityGroup"
  }
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Remove Security Group From A Server (removeSecurityGroup Action)

Removes a security group from a server.

Specify the removeSecurityGroup action in the request body.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

name

body

string

The security group name.

{
  "type": "object",
  "description": "Removes a security group from a server.\n\nSpecify the `removeSecurityGroup` action in the request body.\n\nNormal response codes: 202\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\),\nitemNotFound(404\\), conflict(409\\)",
  "summary": "Remove Security Group From A Server (removeSecurityGroup Action)",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "The security group name."
    }
  },
  "additionalProperties": true,
  "x-openstack": {
    "action-name": "removeSecurityGroup"
  }
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Shelve Server (shelve Action)

Shelves a server.

Specify the shelve action in the request body.

All associated data and resources are kept but anything still in memory is not retained. To restore a shelved instance, use the unshelve action. To remove a shelved instance, use the shelveOffload action.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Preconditions

The server status must be ACTIVE, SHUTOFF, PAUSED, or SUSPENDED.

If the server is locked, you must have administrator privileges to shelve the server.

Asynchronous Postconditions

After you successfully shelve a server, its status changes to SHELVED and the image status is ACTIVE. The server instance data appears on the compute node that the Compute service manages.

If you boot the server from volumes or set the shelved_offload_time option to 0, the Compute service automatically deletes the instance on compute nodes and changes the server status to SHELVED_OFFLOADED.

Troubleshooting

If the server status does not change to SHELVED or SHELVED_OFFLOADED, the shelve operation failed. Ensure that you meet the preconditions and run the request again. If the request fails again, investigate whether another operation is running that causes a race condition.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

{
  "type": "object",
  "description": "Shelves a server.\n\nSpecify the `shelve` action in the request body.\n\nAll associated data and resources are kept but anything still in memory is not retained. To restore a shelved instance, use the `unshelve` action. To remove a shelved instance, use the `shelveOffload` action.\n\nPolicy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the `policy.json` file.\n\n**Preconditions**\n\nThe server status must be `ACTIVE`, `SHUTOFF`, `PAUSED`, or `SUSPENDED`.\n\nIf the server is locked, you must have administrator privileges to shelve the server.\n\n**Asynchronous Postconditions**\n\nAfter you successfully shelve a server, its status changes to `SHELVED` and the image status is `ACTIVE`. The server instance data appears on the compute node that the Compute service manages.\n\nIf you boot the server from volumes or set the `shelved_offload_time` option to 0, the Compute service automatically deletes the instance on compute nodes and changes the server status to `SHELVED_OFFLOADED`.\n\n**Troubleshooting**\n\nIf the server status does not change to `SHELVED` or `SHELVED_OFFLOADED`, the shelve operation failed. Ensure that you meet the preconditions and run the request again. If the request fails again, investigate whether another operation is running that causes a race condition.\n\nNormal response codes: 202\n\nError response codes: unauthorized(401\\), forbidden(403\\), itemNotFound(404\\), conflict(409\\)",
  "summary": "Shelve Server (shelve Action)",
  "properties": {
    "shelve": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "shelve"
  },
  "required": [
    "shelve"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Shelf-Offload (Remove) Server (shelveOffload Action)

Shelf-offloads, or removes, a shelved server.

Specify the shelveOffload action in the request body.

Data and resource associations are deleted. If an instance is no longer needed, you can remove that instance from the hypervisor to minimize resource usage.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Preconditions

The server status must be SHELVED.

If the server is locked, you must have administrator privileges to shelve-offload the server.

Asynchronous Postconditions

After you successfully shelve-offload a server, its status changes to SHELVED_OFFLOADED. The server instance data appears on the compute node.

Troubleshooting

If the server status does not change to SHELVED_OFFLOADED, the shelve-offload operation failed. Ensure that you meet the preconditions and run the request again. If the request fails again, investigate whether another operation is running that causes a race condition.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

{
  "type": "object",
  "description": "Shelf\\-offloads, or removes, a shelved server.\n\nSpecify the `shelveOffload` action in the request body.\n\nData and resource associations are deleted. If an instance is no longer needed, you can remove that instance from the hypervisor to minimize resource usage.\n\nPolicy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the `policy.json` file.\n\n**Preconditions**\n\nThe server status must be `SHELVED`.\n\nIf the server is locked, you must have administrator privileges to shelve\\-offload the server.\n\n**Asynchronous Postconditions**\n\nAfter you successfully shelve\\-offload a server, its status changes to `SHELVED_OFFLOADED`. The server instance data appears on the compute node.\n\n**Troubleshooting**\n\nIf the server status does not change to `SHELVED_OFFLOADED`, the shelve\\-offload operation failed. Ensure that you meet the preconditions and run the request again. If the request fails again, investigate whether another operation is running that causes a race condition.\n\nNormal response codes: 202\n\nError response codes: unauthorized(401\\), forbidden(403\\), itemNotFound(404\\), conflict(409\\)",
  "summary": "Shelf-Offload (Remove) Server (shelveOffload Action)",
  "properties": {
    "shelveOffload": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "shelveOffload"
  },
  "required": [
    "shelveOffload"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Unshelve (Restore) Shelved Server (unshelve Action)

Unshelves, or restores, a shelved server.

Specify the unshelve action in the request body.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Preconditions

Unshelving a server without parameters requires its status to be SHELVED or SHELVED_OFFLOADED.

Unshelving a server with availability_zone and/or host parameters requires its status to be only SHELVED_OFFLOADED otherwise HTTP 409 conflict response is returned.

If a server is locked, you must have administrator privileges to unshelve the server.

As of microversion 2.91, you can unshelve to a specific compute node if you have PROJECT_ADMIN privileges. This microversion also gives the ability to pin a server to an availability_zone and to unpin a server from any availability_zone.

When a server is pinned to an availability_zone, the server move operations will keep the server in that availability_zone. However, when the server is not pinned to any availability_zone, the move operations can move the server to nodes in different availability_zones.

The behavior according to unshelve parameters will follow the below table.

Asynchronous Postconditions

After you successfully unshelve a server, its status changes to ACTIVE. The server appears on the compute node.

The shelved image is deleted from the list of images returned by an API call.

Troubleshooting

If the server status does not change to ACTIVE, the unshelve operation failed. Ensure that you meet the preconditions and run the request again. If the request fails again, investigate whether another operation is running that causes a race condition.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

unshelve

body

[‘object’, ‘null’]

The action.

{
  "description": "Unshelves, or restores, a shelved server.\n\nSpecify the `unshelve` action in the request body.\n\nPolicy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the `policy.json` file.\n\n**Preconditions**\n\nUnshelving a server without parameters requires its status to be `SHELVED` or `SHELVED_OFFLOADED`.\n\nUnshelving a server with availability_zone and/or host parameters requires its status to be only `SHELVED_OFFLOADED` otherwise HTTP 409 conflict response is returned.\n\nIf a server is locked, you must have administrator privileges to unshelve the server.\n\nAs of `microversion 2.91`, you can unshelve to a specific compute node if you have PROJECT_ADMIN privileges.\nThis microversion also gives the ability to pin a server to an availability_zone and to unpin a server\nfrom any availability_zone.\n\nWhen a server is pinned to an availability_zone, the server move operations will keep the server in that\navailability_zone. However, when the server is not pinned to any availability_zone, the move operations can\nmove the server to nodes in different availability_zones.\n\nThe behavior according to unshelve parameters will follow the below table.\n\n**Asynchronous Postconditions**\n\nAfter you successfully unshelve a server, its status changes to `ACTIVE`.\nThe server appears on the compute node.\n\nThe shelved image is deleted from the list of images returned by an API call.\n\n**Troubleshooting**\n\nIf the server status does not change to `ACTIVE`, the unshelve operation failed. Ensure that you meet the preconditions and run the request again. If the request fails again, investigate whether another operation is running that causes a race condition.\n\nNormal response codes: 202\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\), itemNotFound(404\\), conflict(409\\)",
  "summary": "Unshelve (Restore) Shelved Server (unshelve Action)",
  "oneOf": [
    {
      "type": "object",
      "summary": "Unshelve (Restore) Shelved Server (unshelve Action)",
      "properties": {
        "unshelve": {}
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.1",
        "max-ver": "2.76",
        "action-name": "unshelve"
      },
      "required": [
        "unshelve"
      ]
    },
    {
      "type": "object",
      "summary": "Unshelve (Restore) Shelved Server (unshelve Action)",
      "properties": {
        "unshelve": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "availability_zone": {
              "type": "string",
              "minLength": 1,
              "maxLength": 255,
              "format": "name"
            }
          },
          "required": [
            "availability_zone"
          ],
          "additionalProperties": false,
          "description": "The action."
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.77",
        "max-ver": "2.90",
        "action-name": "unshelve"
      },
      "required": [
        "unshelve"
      ]
    },
    {
      "type": "object",
      "summary": "Unshelve (Restore) Shelved Server (unshelve Action)",
      "properties": {
        "unshelve": {
          "oneOf": [
            {
              "type": [
                "object"
              ],
              "properties": {
                "availability_zone": {
                  "oneOf": [
                    {
                      "type": [
                        "null"
                      ]
                    },
                    {
                      "type": "string"
                    }
                  ]
                },
                "host": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": [
                "null"
              ]
            }
          ],
          "description": "The action."
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.91",
        "action-name": "unshelve"
      },
      "required": [
        "unshelve"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion",
    "action-name": "unshelve"
  }
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Suspend Server (suspend Action)

Suspends a server and changes its status to SUSPENDED.

Specify the suspend action in the request body.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

{
  "type": "object",
  "description": "Suspends a server and changes its status to `SUSPENDED`.\n\nSpecify the `suspend` action in the request body.\n\nPolicy defaults enable only users with the administrative role or\nthe owner of the server to perform this operation. Cloud providers\ncan change these permissions through the `policy.json` file.\n\nNormal response codes: 202\n\nError response codes: unauthorized(401\\), forbidden(403\\), itemNotFound(404\\),\nconflict(409\\)",
  "summary": "Suspend Server (suspend Action)",
  "properties": {
    "suspend": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "suspend"
  },
  "required": [
    "suspend"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Resume Suspended Server (resume Action)

Resumes a suspended server and changes its status to ACTIVE.

Specify the resume action in the request body.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

id

path

string

id parameter for /v2.1/servers/{id}/action API

{
  "type": "object",
  "description": "Resumes a suspended server and changes its status to `ACTIVE`.\n\nSpecify the `resume` action in the request body.\n\nPolicy defaults enable only users with the administrative role or\nthe owner of the server to perform this operation. Cloud providers\ncan change these permissions through the `policy.json` file.\n\nNormal response codes: 202\n\nError response codes: unauthorized(401\\), forbidden(403\\),\nitemNotFound(404\\), conflict(409\\)",
  "summary": "Resume Suspended Server (resume Action)",
  "properties": {
    "resume": {}
  },
  "additionalProperties": false,
  "x-openstack": {
    "action-name": "resume"
  },
  "required": [
    "resume"
  ]
}

Responses

201

Ok

202

Accepted

204

Ok

400

Error

401

Error

403

Error

404

Error

409

Error

410

Error

501

Error

Lists Consoles

Lists all consoles for a server.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), gone(410)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the servers/server_id/consoles:get operation"
}
410

Error

Create Console

Creates a console for a server.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), gone(410)

Responses

201

Ok

{
  "type": "object",
  "description": "Response of the servers/server_id/consoles:post operation"
}
410

Error

Show Console Details

Shows console details for a server.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), gone(410)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the servers/server_id/consoles/id:get operation"
}
410

Error

Delete Console

Deletes a console for a server.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), gone(410)

Responses

204

Ok

410

Error

Show Server Diagnostics

Shows basic usage data for a server.

Policy defaults enable only users with the administrative role. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), notfound(404), conflict(409), notimplemented(501)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "cpu_details": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "The list of dictionaries with detailed information about VM CPUs.\nFollowing fields are presented in each dictionary:\n\n\n* `id` \\- the ID of CPU (Integer)\n* `time` \\- CPU Time in nano seconds (Integer)\n* `utilisation` \\- CPU utilisation in percents (Integer)\n\n\n**New in version 2\\.48**",
      "x-openstack": {
        "min-ver": "2.48"
      }
    },
    "disk_details": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "The list of dictionaries with detailed information about VM disks.\nFollowing fields are presented in each dictionary:\n\n\n* `read_bytes` \\- Disk reads in bytes (Integer)\n* `read_requests` \\- Read requests (Integer)\n* `write_bytes` \\- Disk writes in bytes (Integer)\n* `write_requests` \\- Write requests (Integer)\n* `errors_count` \\- Disk errors (Integer)\n\n\n**New in version 2\\.48**",
      "x-openstack": {
        "min-ver": "2.48"
      }
    },
    "driver": {
      "type": "string",
      "description": "The driver on which the VM is running. Possible values are:\n\n\n* `libvirt`\n* `xenapi`\n* `vmwareapi`\n* `ironic`\n\n\n**New in version 2\\.48**",
      "enum": [
        "libvirt",
        "xenapi",
        "hyperv",
        "vmwareapi",
        "ironic"
      ],
      "x-openstack": {
        "min-ver": "2.48"
      }
    },
    "config_drive": {
      "type": "boolean",
      "description": "Indicates whether or not a config drive was used for this server.\n\n\n**New in version 2\\.48**",
      "x-openstack": {
        "min-ver": "2.48"
      }
    },
    "hypervisor": {
      "type": "string",
      "description": "The hypervisor on which the VM is running. Examples for libvirt driver\nmay be: `qemu`, `kvm` or `xen`.\n\n\n**New in version 2\\.48**",
      "x-openstack": {
        "min-ver": "2.48"
      }
    },
    "hypervisor_os": {
      "type": "string",
      "description": "The hypervisor OS.\n\n\n**New in version 2\\.48**",
      "x-openstack": {
        "min-ver": "2.48"
      }
    },
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Id of the resource",
      "readOnly": true
    },
    "memory_details": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "The dictionary with information about VM memory usage.\nFollowing fields are presented in the dictionary:\n\n\n* `maximum` \\- Amount of memory provisioned for the VM in MiB (Integer)\n* `used` \\- Amount of memory that is currently used by the guest operating\nsystem and its applications in MiB (Integer)\n\n\n**New in version 2\\.48**",
      "x-openstack": {
        "min-ver": "2.48"
      }
    },
    "name": {
      "type": "string",
      "description": "Name"
    },
    "nic_details": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "mac_address": {
            "type": "string",
            "description": ""
          },
          "rx_octets": {
            "type": "integer",
            "description": ""
          },
          "rx_errors": {
            "type": "integer",
            "description": ""
          },
          "rx_drop": {
            "type": "integer",
            "description": ""
          },
          "rx_packets": {
            "type": "integer",
            "description": ""
          },
          "rx_rate": {
            "type": "integer",
            "description": ""
          },
          "tx_octets": {
            "type": "integer",
            "description": ""
          },
          "tx_errors": {
            "type": "integer",
            "description": ""
          },
          "tx_drop": {
            "type": "integer",
            "description": ""
          },
          "tx_packets": {
            "type": "integer",
            "description": ""
          },
          "tx_rate": {
            "type": "integer",
            "description": ""
          }
        }
      },
      "description": "The list of dictionaries with detailed information about VM NICs.\nFollowing fields are presented in each dictionary:\n\n\n* `mac_address` \\- Mac address of the interface (String)\n* `rx_octets` \\- Received octets (Integer)\n* `rx_errors` \\- Received errors (Integer)\n* `rx_drop` \\- Received packets dropped (Integer)\n* `rx_packets` \\- Received packets (Integer)\n* `rx_rate` \\- Receive rate in bytes (Integer)\n* `tx_octets` \\- Transmitted Octets (Integer)\n* `tx_errors` \\- Transmit errors (Integer)\n* `tx_drop` \\- Transmit dropped packets (Integer)\n* `tx_packets` \\- Transmit packets (Integer)\n* `tx_rate` \\- Transmit rate in bytes (Integer)\n\n\n**New in version 2\\.48**",
      "x-openstack": {
        "min-ver": "2.48"
      }
    },
    "num_cpus": {
      "type": "integer",
      "description": "The number of vCPUs.\n\n\n**New in version 2\\.48**",
      "x-openstack": {
        "min-ver": "2.48"
      }
    },
    "num_disks": {
      "type": "integer",
      "description": "The number of disks.\n\n\n**New in version 2\\.48**",
      "x-openstack": {
        "min-ver": "2.48"
      }
    },
    "num_nics": {
      "type": "integer",
      "description": "The number of vNICs.\n\n\n**New in version 2\\.48**",
      "x-openstack": {
        "min-ver": "2.48"
      }
    },
    "state": {
      "type": "string",
      "description": "A string enum denoting the current state of the VM. Possible values are:\n\n\n* `pending`\n* `running`\n* `paused`\n* `shutdown`\n* `crashed`\n* `suspended`\n\n\n**New in version 2\\.48**",
      "enum": [
        "pending",
        "running",
        "paused",
        "shutdown",
        "crashed",
        "suspended"
      ],
      "x-openstack": {
        "min-ver": "2.48"
      }
    },
    "uptime": {
      "type": "integer",
      "description": "The amount of time in seconds that the VM has been running.\n\n\n**New in version 2\\.48**",
      "x-openstack": {
        "min-ver": "2.48"
      }
    }
  }
}

Name

Location

Type

Description

cpu_details

body

array

The list of dictionaries with detailed information about VM CPUs. Following fields are presented in each dictionary:

  • id - the ID of CPU (Integer)

  • time - CPU Time in nano seconds (Integer)

  • utilisation - CPU utilisation in percents (Integer)

New in version 2.48
New in version 2.48

disk_details

body

array

The list of dictionaries with detailed information about VM disks. Following fields are presented in each dictionary:

  • read_bytes - Disk reads in bytes (Integer)

  • read_requests - Read requests (Integer)

  • write_bytes - Disk writes in bytes (Integer)

  • write_requests - Write requests (Integer)

  • errors_count - Disk errors (Integer)

New in version 2.48
New in version 2.48

driver

body

string

The driver on which the VM is running. Possible values are:

  • libvirt

  • xenapi

  • vmwareapi

  • ironic

New in version 2.48
New in version 2.48

config_drive

body

boolean

Indicates whether or not a config drive was used for this server.

New in version 2.48
New in version 2.48

hypervisor

body

string

The hypervisor on which the VM is running. Examples for libvirt driver may be: qemu, kvm or xen.

New in version 2.48
New in version 2.48

hypervisor_os

body

string

The hypervisor OS.

New in version 2.48
New in version 2.48

id

body

string

Id of the resource

memory_details

body

array

The dictionary with information about VM memory usage. Following fields are presented in the dictionary:

  • maximum - Amount of memory provisioned for the VM in MiB (Integer)

  • used - Amount of memory that is currently used by the guest operating system and its applications in MiB (Integer)

New in version 2.48
New in version 2.48

name

body

string

Name

nic_details

body

array

The list of dictionaries with detailed information about VM NICs. Following fields are presented in each dictionary:

  • mac_address - Mac address of the interface (String)

  • rx_octets - Received octets (Integer)

  • rx_errors - Received errors (Integer)

  • rx_drop - Received packets dropped (Integer)

  • rx_packets - Received packets (Integer)

  • rx_rate - Receive rate in bytes (Integer)

  • tx_octets - Transmitted Octets (Integer)

  • tx_errors - Transmit errors (Integer)

  • tx_drop - Transmit dropped packets (Integer)

  • tx_packets - Transmit packets (Integer)

  • tx_rate - Transmit rate in bytes (Integer)

New in version 2.48
New in version 2.48

nic_details[].mac_address

body

string

nic_details[].rx_octets

body

integer

nic_details[].rx_errors

body

integer

nic_details[].rx_drop

body

integer

nic_details[].rx_packets

body

integer

nic_details[].rx_rate

body

integer

nic_details[].tx_octets

body

integer

nic_details[].tx_errors

body

integer

nic_details[].tx_drop

body

integer

nic_details[].tx_packets

body

integer

nic_details[].tx_rate

body

integer

num_cpus

body

integer

The number of vCPUs.

New in version 2.48
New in version 2.48

num_disks

body

integer

The number of disks.

New in version 2.48
New in version 2.48

num_nics

body

integer

The number of vNICs.

New in version 2.48
New in version 2.48

state

body

string

A string enum denoting the current state of the VM. Possible values are:

  • pending

  • running

  • paused

  • shutdown

  • crashed

  • suspended

New in version 2.48
New in version 2.48

uptime

body

integer

The amount of time in seconds that the VM has been running.

New in version 2.48
New in version 2.48

400

Error

404

Error

409

Error

501

Error

List Ips

Lists IP addresses that are assigned to an instance.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "The addresses information for the server.",
  "properties": {
    "addresses": {
      "type": "object",
      "description": "The addresses information for the server.",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "addr": {
              "description": "The IP address.",
              "type": "string",
              "oneOf": [
                {
                  "format": "ipv4"
                },
                {
                  "format": "ipv6"
                }
              ]
            },
            "version": {
              "type": "integer",
              "enum": [
                4,
                6
              ],
              "description": "The IP version of the address associated with server."
            }
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

addresses

body

object

The addresses information for the server.

404

Error

Show Ip Details

Shows IP addresses details for a network label of a server instance.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "A dictionary of addresses this server can be accessed through. The dictionary contains keys such as ``private`` and ``public``, each containing a list of dictionaries for addresses of that type. The addresses are contained in a dictionary with keys ``addr`` and ``version``, which is either 4 or 6 depending on the protocol of the IP address.",
  "additionalProperties": {
    "type": "array",
    "items": {
      "type": "object",
      "properties": {
        "addr": {
          "description": "The IP address.",
          "type": "string",
          "oneOf": [
            {
              "format": "ipv4"
            },
            {
              "format": "ipv6"
            }
          ]
        },
        "version": {
          "type": "integer",
          "enum": [
            4,
            6
          ],
          "description": "The IP version of the address associated with server."
        }
      }
    }
  },
  "maxProperties": 1
}
404

Error

List All Metadata

Lists all metadata for a server.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Metadata key and value pairs. The maximum size for each metadata key and value pair is 255 bytes.",
  "properties": {
    "metadata": {
      "type": "object",
      "patternProperties": {
        "^[a-zA-Z0-9-_:. ]{1,255}$": {
          "type": "string",
          "maxLength": 255
        }
      },
      "additionalProperties": false,
      "description": "Metadata key and value pairs. The maximum size for each metadata key and value\npair is 255 bytes."
    }
  }
}

Name

Location

Type

Description

metadata

body

object

Metadata key and value pairs. The maximum size for each metadata key and value pair is 255 bytes.

404

Error

Create or Update Metadata Items

Create or update one or more metadata items for a server.

Creates any metadata items that do not already exist in the server, replaces exists metadata items that match keys. Does not modify items that are not in the request.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

server_id

path

string

server_id parameter for /v2.1/servers/{server_id}/metadata/{id} API

metadata

body

object

Metadata key and value pairs. The maximum size for each metadata key and value pair is 255 bytes.

{
  "type": "object",
  "properties": {
    "metadata": {
      "type": "object",
      "description": "Metadata key and value pairs. The maximum size for each metadata key and value\npair is 255 bytes.",
      "additionalProperties": false,
      "patternProperties": {
        "^[a-zA-Z0-9-_:. ]{1,255}$": {
          "type": "string",
          "maxLength": 255
        }
      }
    }
  },
  "additionalProperties": false,
  "required": [
    "metadata"
  ]
}

Responses

201

Ok

{
  "type": "object",
  "description": "Metadata key and value pairs. The maximum size for each metadata key and value pair is 255 bytes.",
  "properties": {
    "metadata": {
      "type": "object",
      "patternProperties": {
        "^[a-zA-Z0-9-_:. ]{1,255}$": {
          "type": "string",
          "maxLength": 255
        }
      },
      "additionalProperties": false,
      "description": "Metadata key and value pairs. The maximum size for each metadata key and value\npair is 255 bytes."
    }
  }
}

Name

Location

Type

Description

metadata

body

object

Metadata key and value pairs. The maximum size for each metadata key and value pair is 255 bytes.

403

Error

404

Error

409

Error

Replace Metadata Items

Replaces one or more metadata items for a server.

Creates any metadata items that do not already exist in the server. Removes and completely replaces any metadata items that already exist in the server with the metadata items in the request.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

server_id

path

string

server_id parameter for /v2.1/servers/{server_id}/metadata/{id} API

metadata

body

object

Metadata key and value pairs. The maximum size for each metadata key and value pair is 255 bytes.

{
  "type": "object",
  "properties": {
    "metadata": {
      "type": "object",
      "description": "Metadata key and value pairs. The maximum size for each metadata key and value\npair is 255 bytes.",
      "additionalProperties": false,
      "patternProperties": {
        "^[a-zA-Z0-9-_:. ]{1,255}$": {
          "type": "string",
          "maxLength": 255
        }
      }
    }
  },
  "additionalProperties": false,
  "required": [
    "metadata"
  ]
}

Responses

200

Ok

{
  "type": "object",
  "description": "Metadata key and value pairs. The maximum size for each metadata key and value pair is 255 bytes.",
  "properties": {
    "metadata": {
      "type": "object",
      "patternProperties": {
        "^[a-zA-Z0-9-_:. ]{1,255}$": {
          "type": "string",
          "maxLength": 255
        }
      },
      "additionalProperties": false,
      "description": "Metadata key and value pairs. The maximum size for each metadata key and value\npair is 255 bytes."
    }
  }
}

Name

Location

Type

Description

metadata

body

object

Metadata key and value pairs. The maximum size for each metadata key and value pair is 255 bytes.

403

Error

404

Error

409

Error

Show Metadata Item Details

Shows details for a metadata item, by key, for a server.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Metadata key and value pairs. The maximum size for each metadata key and value pair is 255 bytes.",
  "properties": {
    "meta": {
      "maxProperties": 1,
      "type": "object",
      "patternProperties": {
        "^[a-zA-Z0-9-_:. ]{1,255}$": {
          "type": "string",
          "maxLength": 255
        }
      },
      "additionalProperties": false,
      "description": "Metadata key and value pairs. The maximum size for each metadata key and value\npair is 255 bytes."
    }
  }
}

Name

Location

Type

Description

meta

body

object

Metadata key and value pairs. The maximum size for each metadata key and value pair is 255 bytes.

404

Error

Create Or Update Metadata Item

Creates or replaces a metadata item, by key, for a server.

Creates a metadata item that does not already exist in the server. Replaces existing metadata items that match keys with the metadata item in the request.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

server_id

path

string

server_id parameter for /v2.1/servers/{server_id}/metadata/{id} API

id

path

string

id parameter for /v2.1/servers/{server_id}/metadata/{id} API

meta

body

object

{
  "type": "object",
  "properties": {
    "meta": {
      "type": "object",
      "additionalProperties": false,
      "patternProperties": {
        "^[a-zA-Z0-9-_:. ]{1,255}$": {
          "type": "string",
          "maxLength": 255
        }
      },
      "minProperties": 1,
      "maxProperties": 1
    }
  },
  "additionalProperties": false,
  "required": [
    "meta"
  ]
}

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the servers/server_id/metadata/id:put operation"
}
400

Error

403

Error

404

Error

409

Error

Delete Metadata Item

Deletes a metadata item, by key, from a server.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 204

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Responses

204

Ok

404

Error

409

Error

List Actions For Server

Lists actions for a server.

Action information of deleted instances can be returned for requests starting with microversion 2.21.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "instanceActions": {
      "type": "array",
      "items": {
        "type": "object",
        "description": "The instance action object.",
        "properties": {
          "action": {
            "type": "string",
            "description": "The name of the action."
          },
          "events": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "event": {
                  "type": "string",
                  "description": "The name of the event."
                },
                "start_time": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The date and time when the action was started. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
                },
                "finish_time": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The date and time when the event was finished."
                },
                "result": {
                  "type": "string",
                  "description": "The result of the event."
                },
                "traceback": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "he traceback stack if an error occurred in this event. Policy defaults enable only users with the administrative role to see an instance action event traceback. Cloud providers can change these permissions through the policy.json file."
                },
                "hostId": {
                  "type": "string",
                  "description": "An obfuscated hashed host ID string, or the empty string if there is no host for the event. This is a hashed value so will not actually look like a hostname, and is hashed with data from the project_id, so the same physical host as seen by two different project_ids will be different. This is useful when within the same project you need to determine if two events occurred on the same or different physical hosts.",
                  "x-openstack": {
                    "min-ver": "2.62"
                  }
                },
                "host": {
                  "type": "string",
                  "description": "The name of the host on which the event occurred. Policy defaults enable only users with the administrative role to see an instance action event host. Cloud providers can change these permissions through the policy.json file.",
                  "x-openstack": {
                    "min-ver": "2.62"
                  }
                },
                "details": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Details of the event. May be null.",
                  "x-openstack": {
                    "min-ver": "2.84"
                  }
                }
              }
            },
            "description": "The events which occurred in this action in descending order of creation.\n\n\nPolicy defaults enable only users with the administrative role or the owner\nof the server to see instance action event information. Cloud providers can\nchange these permissions through the `policy.json` file.\n\n\n**New in version 2\\.51**"
          },
          "message": {
            "type": [
              "string",
              "null"
            ],
            "description": "The related error message for when an action fails."
          },
          "project_id": {
            "type": "string",
            "description": "The ID of the project which initiated the server action."
          },
          "request_id": {
            "type": "string",
            "description": "The request id generated when execute the API of this action."
          },
          "start_time": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time when the action was started."
          },
          "user_id": {
            "type": "string",
            "description": "The ID of the user which initiated the server action."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time when the instance action or the action event of\ninstance action was updated. The date and time stamp format is\n[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`.\n\n\n**New in version 2\\.58**",
            "x-openstack": {
              "min-ver": "2.58"
            }
          }
        }
      },
      "description": "List of the actions for the given instance in descending order of creation."
    },
    "links": {
      "type": "array",
      "description": "Links pertaining to usage. See [API Guide / Links and\nReferences](https://docs.openstack.org/api-guide/compute/links_and_references.html)\nfor more info.\n\n\n**New in version 2\\.40**",
      "items": {
        "type": "object",
        "description": "Links to the resources in question. See [API Guide / Links and References](https://docs.openstack.org/api-guide/compute/links_and_references.html) for more info.",
        "properties": {
          "href": {
            "type": "string",
            "format": "uri"
          },
          "rel": {
            "type": "string"
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

instanceActions

body

array

List of the actions for the given instance in descending order of creation.

instanceActions[].action

body

string

The name of the action.

instanceActions[].events

body

array

The events which occurred in this action in descending order of creation.

Policy defaults enable only users with the administrative role or the owner of the server to see instance action event information. Cloud providers can change these permissions through the policy.json file.

New in version 2.51

instanceActions[].events[].event

body

string

The name of the event.

instanceActions[].events[].start_time

body

string

The date and time when the action was started. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

instanceActions[].events[].finish_time

body

string

The date and time when the event was finished.

instanceActions[].events[].result

body

string

The result of the event.

instanceActions[].events[].traceback

body

[‘string’, ‘null’]

he traceback stack if an error occurred in this event. Policy defaults enable only users with the administrative role to see an instance action event traceback. Cloud providers can change these permissions through the policy.json file.

instanceActions[].events[].hostId

body

string

An obfuscated hashed host ID string, or the empty string if there is no host for the event. This is a hashed value so will not actually look like a hostname, and is hashed with data from the project_id, so the same physical host as seen by two different project_ids will be different. This is useful when within the same project you need to determine if two events occurred on the same or different physical hosts.
New in version 2.62

instanceActions[].events[].host

body

string

The name of the host on which the event occurred. Policy defaults enable only users with the administrative role to see an instance action event host. Cloud providers can change these permissions through the policy.json file.
New in version 2.62

instanceActions[].events[].details

body

[‘string’, ‘null’]

Details of the event. May be null.
New in version 2.84

instanceActions[].message

body

[‘string’, ‘null’]

The related error message for when an action fails.

instanceActions[].project_id

body

string

The ID of the project which initiated the server action.

instanceActions[].request_id

body

string

The request id generated when execute the API of this action.

instanceActions[].start_time

body

string

The date and time when the action was started.

instanceActions[].user_id

body

string

The ID of the user which initiated the server action.

instanceActions[].updated_at

body

string

The date and time when the instance action or the action event of instance action was updated. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

New in version 2.58
New in version 2.58

links

body

array

Links pertaining to usage. See API Guide / Links and References for more info.

New in version 2.40

links[].href

body

string

links[].rel

body

string

400

Error

404

Error

Show Server Action Details

Shows details for a server action.

Action details of deleted instances can be returned for requests later than microversion 2.21.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "instanceAction": {
      "type": "object",
      "description": "The instance action object.",
      "properties": {
        "action": {
          "type": "string",
          "description": "The name of the action."
        },
        "events": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "event": {
                "type": "string",
                "description": "The name of the event."
              },
              "start_time": {
                "type": "string",
                "format": "date-time",
                "description": "The date and time when the action was started. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
              },
              "finish_time": {
                "type": "string",
                "format": "date-time",
                "description": "The date and time when the event was finished."
              },
              "result": {
                "type": "string",
                "description": "The result of the event."
              },
              "traceback": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "he traceback stack if an error occurred in this event. Policy defaults enable only users with the administrative role to see an instance action event traceback. Cloud providers can change these permissions through the policy.json file."
              },
              "hostId": {
                "type": "string",
                "description": "An obfuscated hashed host ID string, or the empty string if there is no host for the event. This is a hashed value so will not actually look like a hostname, and is hashed with data from the project_id, so the same physical host as seen by two different project_ids will be different. This is useful when within the same project you need to determine if two events occurred on the same or different physical hosts.",
                "x-openstack": {
                  "min-ver": "2.62"
                }
              },
              "host": {
                "type": "string",
                "description": "The name of the host on which the event occurred. Policy defaults enable only users with the administrative role to see an instance action event host. Cloud providers can change these permissions through the policy.json file.",
                "x-openstack": {
                  "min-ver": "2.62"
                }
              },
              "details": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Details of the event. May be null.",
                "x-openstack": {
                  "min-ver": "2.84"
                }
              }
            }
          },
          "description": "The events which occurred in this action in descending order of creation.\n\n\nPolicy defaults enable only users with the administrative role or the owner\nof the server to see instance action event information. Cloud providers can\nchange these permissions through the `policy.json` file.\n\n\n**New in version 2\\.51**"
        },
        "message": {
          "type": [
            "string",
            "null"
          ],
          "description": "The related error message for when an action fails."
        },
        "project_id": {
          "type": "string",
          "description": "The ID of the project which initiated the server action."
        },
        "request_id": {
          "type": "string",
          "description": "The request id generated when execute the API of this action."
        },
        "start_time": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the action was started."
        },
        "user_id": {
          "type": "string",
          "description": "The ID of the user which initiated the server action."
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the instance action or the action event of\ninstance action was updated. The date and time stamp format is\n[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`.\n\n\n**New in version 2\\.58**",
          "x-openstack": {
            "min-ver": "2.58"
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

instanceAction

body

object

The instance action object.

instanceAction.action

body

string

The name of the action.

instanceAction.events

body

array

The events which occurred in this action in descending order of creation.

Policy defaults enable only users with the administrative role or the owner of the server to see instance action event information. Cloud providers can change these permissions through the policy.json file.

New in version 2.51

instanceAction.events[].event

body

string

The name of the event.

instanceAction.events[].start_time

body

string

The date and time when the action was started. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

instanceAction.events[].finish_time

body

string

The date and time when the event was finished.

instanceAction.events[].result

body

string

The result of the event.

instanceAction.events[].traceback

body

[‘string’, ‘null’]

he traceback stack if an error occurred in this event. Policy defaults enable only users with the administrative role to see an instance action event traceback. Cloud providers can change these permissions through the policy.json file.

instanceAction.events[].hostId

body

string

An obfuscated hashed host ID string, or the empty string if there is no host for the event. This is a hashed value so will not actually look like a hostname, and is hashed with data from the project_id, so the same physical host as seen by two different project_ids will be different. This is useful when within the same project you need to determine if two events occurred on the same or different physical hosts.
New in version 2.62

instanceAction.events[].host

body

string

The name of the host on which the event occurred. Policy defaults enable only users with the administrative role to see an instance action event host. Cloud providers can change these permissions through the policy.json file.
New in version 2.62

instanceAction.events[].details

body

[‘string’, ‘null’]

Details of the event. May be null.
New in version 2.84

instanceAction.message

body

[‘string’, ‘null’]

The related error message for when an action fails.

instanceAction.project_id

body

string

The ID of the project which initiated the server action.

instanceAction.request_id

body

string

The request id generated when execute the API of this action.

instanceAction.start_time

body

string

The date and time when the action was started.

instanceAction.user_id

body

string

The ID of the user which initiated the server action.

instanceAction.updated_at

body

string

The date and time when the instance action or the action event of instance action was updated. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

New in version 2.58
New in version 2.58

404

Error

List Port Interfaces

Lists port interfaces that are attached to a server.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), NotImplemented(501)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "interfaceAttachments": {
      "type": "array",
      "items": {
        "type": "object",
        "description": "The interface attachment.",
        "properties": {
          "fixed_ips": {
            "type": "array",
            "description": "Fixed IP addresses with subnet IDs.",
            "items": {
              "type": "object",
              "properties": {
                "ip_address": {
                  "description": "The IP address.",
                  "type": "string",
                  "oneOf": [
                    {
                      "format": "ipv4"
                    },
                    {
                      "format": "ipv6"
                    }
                  ]
                },
                "subnet_id": {
                  "type": "string",
                  "format": "uuid",
                  "description": "The UUID of the subnet."
                }
              }
            }
          },
          "mac_addr": {
            "description": "The MAC address.",
            "type": "string",
            "pattern": "^([0-9a-fA-F]{2})(:[0-9a-fA-F]{2}){5}$"
          },
          "net_id": {
            "type": "string",
            "format": "uuid",
            "description": "The network ID."
          },
          "port_id": {
            "type": "string",
            "format": "uuid",
            "description": "The port ID."
          },
          "port_state": {
            "type": "string",
            "description": "The port state."
          },
          "tag": {
            "type": [
              "string",
              "null"
            ],
            "description": "The device tag applied to the virtual network interface or `null`.\n\n\n**New in version 2\\.70**",
            "x-openstack": {
              "min-ver": "2.70"
            }
          }
        }
      },
      "description": "List of the interface attachments."
    }
  }
}

Name

Location

Type

Description

interfaceAttachments

body

array

List of the interface attachments.

interfaceAttachments[].fixed_ips

body

array

Fixed IP addresses with subnet IDs.

interfaceAttachments[].fixed_ips[].ip_address

body

string

The IP address.

interfaceAttachments[].fixed_ips[].subnet_id

body

string

The UUID of the subnet.

interfaceAttachments[].mac_addr

body

string

The MAC address.

interfaceAttachments[].net_id

body

string

The network ID.

interfaceAttachments[].port_id

body

string

The port ID.

interfaceAttachments[].port_state

body

string

The port state.

interfaceAttachments[].tag

body

[‘string’, ‘null’]

The device tag applied to the virtual network interface or null.

New in version 2.70
New in version 2.70

404

Error

501

Error

Create Interface

Creates a port interface and uses it to attach a port to a server.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), computeFault(500), NotImplemented(501)

Request

Name

Location

Type

Description

server_id

path

string

server_id parameter for /v2.1/servers/{server_id}/os-interface/{id} API

interfaceAttachment

body

object

Specify the interfaceAttachment action in the request body.

interfaceAttachment.net_id

body

string

The ID of the network for which you want to create a port interface. The net_id and port_id parameters are mutually exclusive. If you do not specify the net_id parameter, the OpenStack Networking API v2.0 uses the network information cache that is associated with the instance.

interfaceAttachment.port_id

body

string

The ID of the port for which you want to create an interface. The net_id and port_id parameters are mutually exclusive. If you do not specify the port_id parameter, the OpenStack Networking API v2.0 allocates a port and creates an interface for it on the network.

interfaceAttachment.fixed_ips

body

array

Fixed IP addresses. If you request a specific fixed IP address without a net_id, the request returns a Bad Request (400) response code.

interfaceAttachment.fixed_ips[].ip_address

body

string

The IP address. It is required when fixed_ips is specified.

interfaceAttachment.fixed_ips

body

array

Fixed IP addresses. If you request a specific fixed IP address without a net_id, the request returns a Bad Request (400) response code.

interfaceAttachment.tag

body

string

A device role tag that can be applied to a network interface when attaching it to the VM. The guest OS of a server that has devices tagged in this manner can access hardware metadata about the tagged devices from the metadata API and on the config drive, if enabled.

New in version 2.49

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "interfaceAttachment": {
          "type": "object",
          "description": "Specify the `interfaceAttachment` action in the request body.",
          "properties": {
            "net_id": {
              "type": "string",
              "format": "uuid",
              "description": "The ID of the network for which you want to create a port interface. The `net_id`\nand `port_id` parameters are mutually exclusive. If you do not specify the\n`net_id` parameter, the OpenStack Networking API v2\\.0 uses the network information\ncache that is associated with the instance."
            },
            "port_id": {
              "type": "string",
              "format": "uuid",
              "description": "The ID of the port for which you want to create an interface. The `net_id`\nand `port_id` parameters are mutually exclusive. If you do not specify the\n`port_id` parameter, the OpenStack Networking API v2\\.0 allocates a port and\ncreates an interface for it on the network."
            },
            "fixed_ips": {
              "type": "array",
              "minItems": 1,
              "maxItems": 1,
              "items": {
                "type": "object",
                "properties": {
                  "ip_address": {
                    "type": "string",
                    "oneOf": [
                      {
                        "format": "ipv4"
                      },
                      {
                        "format": "ipv6"
                      }
                    ],
                    "description": "The IP address. It is required when `fixed_ips` is specified."
                  }
                },
                "required": [
                  "ip_address"
                ],
                "additionalProperties": false
              },
              "description": "Fixed IP addresses. If you request a specific fixed IP address without\na `net_id`, the request returns a `Bad Request (400)` response code."
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.48"
      }
    },
    {
      "type": "object",
      "properties": {
        "interfaceAttachment": {
          "type": "object",
          "description": "Specify the `interfaceAttachment` action in the request body.",
          "properties": {
            "net_id": {
              "type": "string",
              "format": "uuid",
              "description": "The ID of the network for which you want to create a port interface. The `net_id`\nand `port_id` parameters are mutually exclusive. If you do not specify the\n`net_id` parameter, the OpenStack Networking API v2\\.0 uses the network information\ncache that is associated with the instance."
            },
            "port_id": {
              "type": "string",
              "format": "uuid",
              "description": "The ID of the port for which you want to create an interface. The `net_id`\nand `port_id` parameters are mutually exclusive. If you do not specify the\n`port_id` parameter, the OpenStack Networking API v2\\.0 allocates a port and\ncreates an interface for it on the network."
            },
            "fixed_ips": {
              "type": "array",
              "minItems": 1,
              "maxItems": 1,
              "items": {
                "type": "object",
                "properties": {
                  "ip_address": {
                    "type": "string",
                    "oneOf": [
                      {
                        "format": "ipv4"
                      },
                      {
                        "format": "ipv6"
                      }
                    ],
                    "description": "The IP address. It is required when `fixed_ips` is specified."
                  }
                },
                "required": [
                  "ip_address"
                ],
                "additionalProperties": false
              },
              "description": "Fixed IP addresses. If you request a specific fixed IP address without\na `net_id`, the request returns a `Bad Request (400)` response code."
            },
            "tag": {
              "type": "string",
              "minLength": 1,
              "maxLength": 60,
              "pattern": "^[^,/]*$",
              "description": "A device role tag that can be applied to a network interface when attaching\nit to the VM. The guest OS of a server that has devices tagged in this\nmanner can access hardware metadata about the tagged devices from the\nmetadata API and on the config\ndrive, if enabled.\n\n\n**New in version 2\\.49**"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.49"
      }
    }
  ],
  "x-openstack": {
    "discriminator": "microversion"
  }
}

Responses

201

Ok

{
  "type": "object",
  "properties": {
    "interfaceAttachment": {
      "type": "object",
      "description": "The interface attachment.",
      "properties": {
        "fixed_ips": {
          "type": "array",
          "description": "Fixed IP addresses with subnet IDs.",
          "items": {
            "type": "object",
            "properties": {
              "ip_address": {
                "description": "The IP address.",
                "type": "string",
                "oneOf": [
                  {
                    "format": "ipv4"
                  },
                  {
                    "format": "ipv6"
                  }
                ]
              },
              "subnet_id": {
                "type": "string",
                "format": "uuid",
                "description": "The UUID of the subnet."
              }
            }
          }
        },
        "mac_addr": {
          "description": "The MAC address.",
          "type": "string",
          "pattern": "^([0-9a-fA-F]{2})(:[0-9a-fA-F]{2}){5}$"
        },
        "net_id": {
          "type": "string",
          "format": "uuid",
          "description": "The network ID."
        },
        "port_id": {
          "type": "string",
          "format": "uuid",
          "description": "The port ID."
        },
        "port_state": {
          "type": "string",
          "description": "The port state."
        },
        "tag": {
          "type": [
            "string",
            "null"
          ],
          "description": "The device tag applied to the virtual network interface or `null`.\n\n\n**New in version 2\\.70**",
          "x-openstack": {
            "min-ver": "2.70"
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

interfaceAttachment

body

object

The interface attachment.

interfaceAttachment.fixed_ips

body

array

Fixed IP addresses with subnet IDs.

interfaceAttachment.fixed_ips[].ip_address

body

string

The IP address.

interfaceAttachment.fixed_ips[].subnet_id

body

string

The UUID of the subnet.

interfaceAttachment.mac_addr

body

string

The MAC address.

interfaceAttachment.net_id

body

string

The network ID.

interfaceAttachment.port_id

body

string

The port ID.

interfaceAttachment.port_state

body

string

The port state.

interfaceAttachment.tag

body

[‘string’, ‘null’]

The device tag applied to the virtual network interface or null.

New in version 2.70
New in version 2.70

400

Error

403

Error

404

Error

409

Error

500

Error

501

Error

Show Port Interface Details

Shows details for a port interface that is attached to a server.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "interfaceAttachment": {
      "type": "object",
      "description": "The interface attachment.",
      "properties": {
        "fixed_ips": {
          "type": "array",
          "description": "Fixed IP addresses with subnet IDs.",
          "items": {
            "type": "object",
            "properties": {
              "ip_address": {
                "description": "The IP address.",
                "type": "string",
                "oneOf": [
                  {
                    "format": "ipv4"
                  },
                  {
                    "format": "ipv6"
                  }
                ]
              },
              "subnet_id": {
                "type": "string",
                "format": "uuid",
                "description": "The UUID of the subnet."
              }
            }
          }
        },
        "mac_addr": {
          "description": "The MAC address.",
          "type": "string",
          "pattern": "^([0-9a-fA-F]{2})(:[0-9a-fA-F]{2}){5}$"
        },
        "net_id": {
          "type": "string",
          "format": "uuid",
          "description": "The network ID."
        },
        "port_id": {
          "type": "string",
          "format": "uuid",
          "description": "The port ID."
        },
        "port_state": {
          "type": "string",
          "description": "The port state."
        },
        "tag": {
          "type": [
            "string",
            "null"
          ],
          "description": "The device tag applied to the virtual network interface or `null`.\n\n\n**New in version 2\\.70**",
          "x-openstack": {
            "min-ver": "2.70"
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

interfaceAttachment

body

object

The interface attachment.

interfaceAttachment.fixed_ips

body

array

Fixed IP addresses with subnet IDs.

interfaceAttachment.fixed_ips[].ip_address

body

string

The IP address.

interfaceAttachment.fixed_ips[].subnet_id

body

string

The UUID of the subnet.

interfaceAttachment.mac_addr

body

string

The MAC address.

interfaceAttachment.net_id

body

string

The network ID.

interfaceAttachment.port_id

body

string

The port ID.

interfaceAttachment.port_state

body

string

The port state.

interfaceAttachment.tag

body

[‘string’, ‘null’]

The device tag applied to the virtual network interface or null.

New in version 2.70
New in version 2.70

403

Error

404

Error

Detach Interface

Detaches a port interface from a server.

Normal response codes: 202

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409), NotImplemented(501)

Responses

202

Ok

400

Error

404

Error

409

Error

501

Error

Show Server Password

Shows the administrative password for a server.

This operation calls the metadata service to query metadata information and does not read password information from the server itself.

The password saved in the metadata service is typically encrypted using the public SSH key injected into this server, so the SSH private key is needed to read the password.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "password": {
      "type": "string",
      "format": "password",
      "description": "The password returned from metadata server."
    }
  }
}

Name

Location

Type

Description

password

body

string

The password returned from metadata server.

404

Error

Clear Admin Password

Clears the encrypted administrative password for a server, which removes it from the database.

This action does not actually change the instance server password.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 204

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

204

Ok

404

Error

List Virtual Interfaces

Lists the virtual interfaces for an instance.

Policy defaults enable only users with the administrative role or the owner of the server to perform this operation. Change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), gone(410)

Responses

200

Ok

{
  "type": "object",
  "description": "Response of the servers/server_id/os-virtual-interfaces:get operation"
}
410

Error

List volume attachments for an instance

List volume attachments for an instance.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "volumeAttachments": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "device": {
            "type": "string",
            "description": "Name of the device in the attachment object, such as, `/dev/vdb`."
          },
          "id": {
            "description": "The volume ID of the attachment.\n\n\n**Available until version 2\\.88**",
            "type": "string",
            "format": "uuid",
            "x-openstack": {
              "max-ver": "2.88"
            }
          },
          "serverId": {
            "type": "string",
            "format": "uuid",
            "description": "The UUID of the server."
          },
          "volumeId": {
            "type": "string",
            "format": "uuid",
            "description": "The UUID of the attached volume."
          },
          "tag": {
            "type": [
              "string",
              "null"
            ],
            "description": "The device tag applied to the volume block device or `null`.\n\n\n**New in version 2\\.70**",
            "x-openstack": {
              "min-ver": "2.70"
            }
          },
          "delete_on_termination": {
            "type": "boolean",
            "description": "A flag indicating if the attached volume will be deleted when the server is\ndeleted.\n\n\n**New in version 2\\.79**",
            "x-openstack": {
              "min-ver": "2.79"
            }
          },
          "attachment_id": {
            "type": "string",
            "format": "uuid",
            "description": "The UUID of the associated volume attachment in Cinder.\n\n\n**New in version 2\\.89**",
            "x-openstack": {
              "min-ver": "2.89"
            }
          },
          "bdm_uuid": {
            "type": "string",
            "format": "uuid",
            "description": "The UUID of the block device mapping record in Nova for the attachment.\n\n\n**New in version 2\\.89**",
            "x-openstack": {
              "min-ver": "2.89"
            }
          }
        },
        "description": "A dictionary representation of a volume attachment containing the fields\n`device`, `id`, `serverId` and `volumeId`."
      },
      "description": "The list of volume attachments."
    }
  }
}

Name

Location

Type

Description

volumeAttachments

body

array

The list of volume attachments.

volumeAttachments[].device

body

string

Name of the device in the attachment object, such as, /dev/vdb.

volumeAttachments[].id

body

string

The volume ID of the attachment.

Available until version 2.88
Available until version 2.88

volumeAttachments[].serverId

body

string

The UUID of the server.

volumeAttachments[].volumeId

body

string

The UUID of the attached volume.

volumeAttachments[].tag

body

[‘string’, ‘null’]

The device tag applied to the volume block device or null.

New in version 2.70
New in version 2.70

volumeAttachments[].delete_on_termination

body

boolean

A flag indicating if the attached volume will be deleted when the server is deleted.

New in version 2.79
New in version 2.79

volumeAttachments[].attachment_id

body

string

The UUID of the associated volume attachment in Cinder.

New in version 2.89
New in version 2.89

volumeAttachments[].bdm_uuid

body

string

The UUID of the block device mapping record in Nova for the attachment.

New in version 2.89
New in version 2.89

404

Error

Attach a volume to an instance

Attach a volume to an instance.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

server_id

path

string

server_id parameter for /v2.1/servers/{server_id}/os-volume_attachments/{id} API

volumeAttachment

body

object

A dictionary representation of a volume attachment containing the fields device and volumeId.

volumeAttachment.volumeId

body

string

The UUID of the volume to attach.

volumeAttachment.device

body

[‘string’, ‘null’]

Name of the device such as, /dev/vdb. Omit or set this parameter to null for auto-assignment, if supported. If you specify this parameter, the device must not exist in the guest operating system. Note that as of the 12.0.0 Liberty release, the Nova libvirt driver no longer honors a user-supplied device name. This is the same behavior as if the device name parameter is not supplied on the request.

volumeAttachment.tag

body

string

A device role tag that can be applied to a volume when attaching it to the VM. The guest OS of a server that has devices tagged in this manner can access hardware metadata about the tagged devices from the metadata API and on the config drive, if enabled.

Note

Tagged volume attachment is not supported for shelved-offloaded instances.

New in version 2.49

volumeAttachment.delete_on_termination

body

[‘boolean’, ‘string’]

To delete the attached volume when the server is destroyed, specify true. Otherwise, specify false. Default: false

New in version 2.79

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "volumeAttachment": {
          "type": "object",
          "description": "A dictionary representation of a volume attachment containing the fields\n`device` and `volumeId`.",
          "properties": {
            "volumeId": {
              "type": "string",
              "format": "uuid",
              "description": "The UUID of the volume to attach."
            },
            "device": {
              "type": [
                "string",
                "null"
              ],
              "pattern": "(^/dev/x{0,1}[a-z]{0,1}d{0,1})([a-z]+)[0-9]*$",
              "description": "Name of the device such as, `/dev/vdb`. Omit or set this parameter to null for\nauto\\-assignment, if supported. If you specify this parameter, the device must\nnot exist in the guest operating system. Note that as of the 12\\.0\\.0 Liberty release,\nthe Nova libvirt driver no longer honors a user\\-supplied device name. This is\nthe same behavior as if the device name parameter is not supplied on the request."
            }
          },
          "additionalProperties": false,
          "required": [
            "volumeId"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.48"
      },
      "required": [
        "volumeAttachment"
      ]
    },
    {
      "type": "object",
      "properties": {
        "volumeAttachment": {
          "type": "object",
          "description": "A dictionary representation of a volume attachment containing the fields\n`device` and `volumeId`.",
          "properties": {
            "volumeId": {
              "type": "string",
              "format": "uuid",
              "description": "The UUID of the volume to attach."
            },
            "device": {
              "type": [
                "string",
                "null"
              ],
              "pattern": "(^/dev/x{0,1}[a-z]{0,1}d{0,1})([a-z]+)[0-9]*$",
              "description": "Name of the device such as, `/dev/vdb`. Omit or set this parameter to null for\nauto\\-assignment, if supported. If you specify this parameter, the device must\nnot exist in the guest operating system. Note that as of the 12\\.0\\.0 Liberty release,\nthe Nova libvirt driver no longer honors a user\\-supplied device name. This is\nthe same behavior as if the device name parameter is not supplied on the request."
            },
            "tag": {
              "type": "string",
              "minLength": 1,
              "maxLength": 60,
              "pattern": "^[^,/]*$",
              "description": "A device role tag that can be applied to a volume when attaching it to the\nVM. The guest OS of a server that has devices tagged in this manner can\naccess hardware metadata about the tagged devices from the metadata API and\non the config drive, if enabled.\n\n\n\nNote\n\n\nTagged volume attachment is not supported for shelved\\-offloaded\ninstances.\n\n\n\n**New in version 2\\.49**"
            }
          },
          "additionalProperties": false,
          "required": [
            "volumeId"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.49",
        "max-ver": "2.78"
      },
      "required": [
        "volumeAttachment"
      ]
    },
    {
      "type": "object",
      "properties": {
        "volumeAttachment": {
          "type": "object",
          "description": "A dictionary representation of a volume attachment containing the fields\n`device` and `volumeId`.",
          "properties": {
            "volumeId": {
              "type": "string",
              "format": "uuid",
              "description": "The UUID of the volume to attach."
            },
            "device": {
              "type": [
                "string",
                "null"
              ],
              "pattern": "(^/dev/x{0,1}[a-z]{0,1}d{0,1})([a-z]+)[0-9]*$",
              "description": "Name of the device such as, `/dev/vdb`. Omit or set this parameter to null for\nauto\\-assignment, if supported. If you specify this parameter, the device must\nnot exist in the guest operating system. Note that as of the 12\\.0\\.0 Liberty release,\nthe Nova libvirt driver no longer honors a user\\-supplied device name. This is\nthe same behavior as if the device name parameter is not supplied on the request."
            },
            "tag": {
              "type": "string",
              "minLength": 1,
              "maxLength": 60,
              "pattern": "^[^,/]*$",
              "description": "A device role tag that can be applied to a volume when attaching it to the\nVM. The guest OS of a server that has devices tagged in this manner can\naccess hardware metadata about the tagged devices from the metadata API and\non the config drive, if enabled.\n\n\n\nNote\n\n\nTagged volume attachment is not supported for shelved\\-offloaded\ninstances.\n\n\n\n**New in version 2\\.49**"
            },
            "delete_on_termination": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "To delete the attached volume when the server is destroyed, specify `true`.\nOtherwise, specify `false`. Default: `false`\n\n\n**New in version 2\\.79**"
            }
          },
          "additionalProperties": false,
          "required": [
            "volumeId"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.79"
      },
      "required": [
        "volumeAttachment"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion"
  }
}

Responses

201

Ok

{
  "type": "object",
  "properties": {
    "volumeAttachment": {
      "type": "object",
      "properties": {
        "device": {
          "type": "string",
          "description": "Name of the device in the attachment object, such as, `/dev/vdb`."
        },
        "id": {
          "description": "The volume ID of the attachment.\n\n\n**Available until version 2\\.88**",
          "type": "string",
          "format": "uuid",
          "x-openstack": {
            "max-ver": "2.88"
          }
        },
        "serverId": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the server."
        },
        "volumeId": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the attached volume."
        },
        "tag": {
          "type": [
            "string",
            "null"
          ],
          "description": "The device tag applied to the volume block device or `null`.\n\n\n**New in version 2\\.70**",
          "x-openstack": {
            "min-ver": "2.70"
          }
        },
        "delete_on_termination": {
          "type": "boolean",
          "description": "A flag indicating if the attached volume will be deleted when the server is\ndeleted.\n\n\n**New in version 2\\.79**",
          "x-openstack": {
            "min-ver": "2.79"
          }
        },
        "attachment_id": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the associated volume attachment in Cinder.\n\n\n**New in version 2\\.89**",
          "x-openstack": {
            "min-ver": "2.89"
          }
        },
        "bdm_uuid": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the block device mapping record in Nova for the attachment.\n\n\n**New in version 2\\.89**",
          "x-openstack": {
            "min-ver": "2.89"
          }
        }
      },
      "description": "A dictionary representation of a volume attachment containing the fields\n`device`, `id`, `serverId` and `volumeId`."
    }
  }
}

Name

Location

Type

Description

volumeAttachment

body

object

A dictionary representation of a volume attachment containing the fields device, id, serverId and volumeId.

volumeAttachment.device

body

string

Name of the device in the attachment object, such as, /dev/vdb.

volumeAttachment.id

body

string

The volume ID of the attachment.

Available until version 2.88
Available until version 2.88

volumeAttachment.serverId

body

string

The UUID of the server.

volumeAttachment.volumeId

body

string

The UUID of the attached volume.

volumeAttachment.tag

body

[‘string’, ‘null’]

The device tag applied to the volume block device or null.

New in version 2.70
New in version 2.70

volumeAttachment.delete_on_termination

body

boolean

A flag indicating if the attached volume will be deleted when the server is deleted.

New in version 2.79
New in version 2.79

volumeAttachment.attachment_id

body

string

The UUID of the associated volume attachment in Cinder.

New in version 2.89
New in version 2.89

volumeAttachment.bdm_uuid

body

string

The UUID of the block device mapping record in Nova for the attachment.

New in version 2.89
New in version 2.89

400

Error

403

Error

404

Error

409

Error

Show a detail of a volume attachment

Show a detail of a volume attachment.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "volumeAttachment": {
      "type": "object",
      "properties": {
        "device": {
          "type": "string",
          "description": "Name of the device in the attachment object, such as, `/dev/vdb`."
        },
        "id": {
          "description": "The volume ID of the attachment.\n\n\n**Available until version 2\\.88**",
          "type": "string",
          "format": "uuid",
          "x-openstack": {
            "max-ver": "2.88"
          }
        },
        "serverId": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the server."
        },
        "volumeId": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the attached volume."
        },
        "tag": {
          "type": [
            "string",
            "null"
          ],
          "description": "The device tag applied to the volume block device or `null`.\n\n\n**New in version 2\\.70**",
          "x-openstack": {
            "min-ver": "2.70"
          }
        },
        "delete_on_termination": {
          "type": "boolean",
          "description": "A flag indicating if the attached volume will be deleted when the server is\ndeleted.\n\n\n**New in version 2\\.79**",
          "x-openstack": {
            "min-ver": "2.79"
          }
        },
        "attachment_id": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the associated volume attachment in Cinder.\n\n\n**New in version 2\\.89**",
          "x-openstack": {
            "min-ver": "2.89"
          }
        },
        "bdm_uuid": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the block device mapping record in Nova for the attachment.\n\n\n**New in version 2\\.89**",
          "x-openstack": {
            "min-ver": "2.89"
          }
        }
      },
      "description": "A dictionary representation of a volume attachment containing the fields\n`device`, `id`, `serverId` and `volumeId`."
    }
  }
}

Name

Location

Type

Description

volumeAttachment

body

object

A dictionary representation of a volume attachment containing the fields device, id, serverId and volumeId.

volumeAttachment.device

body

string

Name of the device in the attachment object, such as, /dev/vdb.

volumeAttachment.id

body

string

The volume ID of the attachment.

Available until version 2.88
Available until version 2.88

volumeAttachment.serverId

body

string

The UUID of the server.

volumeAttachment.volumeId

body

string

The UUID of the attached volume.

volumeAttachment.tag

body

[‘string’, ‘null’]

The device tag applied to the volume block device or null.

New in version 2.70
New in version 2.70

volumeAttachment.delete_on_termination

body

boolean

A flag indicating if the attached volume will be deleted when the server is deleted.

New in version 2.79
New in version 2.79

volumeAttachment.attachment_id

body

string

The UUID of the associated volume attachment in Cinder.

New in version 2.89
New in version 2.89

volumeAttachment.bdm_uuid

body

string

The UUID of the block device mapping record in Nova for the attachment.

New in version 2.89
New in version 2.89

404

Error

Update a volume attachment

Update a volume attachment.

Policy default role is ‘rule:system_admin_or_owner’, its scope is [system, project], which allow project members or system admins to change the fields of an attached volume of a server. Policy defaults enable only users with the administrative role to change volumeId via this operation. Cloud providers can change these permissions through the policy.json file.

Updating, or what is commonly referred to as “swapping”, volume attachments with volumes that have more than one read/write attachment, is not supported.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

server_id

path

string

server_id parameter for /v2.1/servers/{server_id}/os-volume_attachments/{id} API

id

path

string

id parameter for /v2.1/servers/{server_id}/os-volume_attachments/{id} API

volumeAttachment

body

object

A dictionary representation of a volume attachment containing the field volumeId which is the UUID of the replacement volume, and other fields to update in the attachment.

volumeAttachment.volumeId

body

string

The UUID of the volume to attach instead of the attached volume.

volumeAttachment.device

body

[‘string’, ‘null’]

Name of the device in the attachment object, such as, /dev/vdb.

New in version 2.85

volumeAttachment.tag

body

string

The device tag applied to the volume block device or null.

New in version 2.85

volumeAttachment.delete_on_termination

body

[‘boolean’, ‘string’]

A flag indicating if the attached volume will be deleted when the server is deleted.

New in version 2.85

volumeAttachment.serverId

body

string

The UUID of the server.

New in version 2.85

volumeAttachment.id

body

string

The UUID of the attachment.

New in version 2.85

{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "volumeAttachment": {
          "type": "object",
          "description": "A dictionary representation of a volume attachment containing the field\n`volumeId` which is the UUID of the replacement volume, and other fields\nto update in the attachment.",
          "properties": {
            "volumeId": {
              "type": "string",
              "format": "uuid",
              "description": "The UUID of the volume to attach instead of the attached volume."
            }
          },
          "additionalProperties": false,
          "required": [
            "volumeId"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.0",
        "max-ver": "2.84"
      },
      "required": [
        "volumeAttachment"
      ]
    },
    {
      "type": "object",
      "properties": {
        "volumeAttachment": {
          "type": "object",
          "description": "A dictionary representation of a volume attachment containing the field\n`volumeId` which is the UUID of the replacement volume, and other fields\nto update in the attachment.",
          "properties": {
            "volumeId": {
              "type": "string",
              "format": "uuid",
              "description": "The UUID of the volume to attach instead of the attached volume."
            },
            "device": {
              "type": [
                "string",
                "null"
              ],
              "pattern": "(^/dev/x{0,1}[a-z]{0,1}d{0,1})([a-z]+)[0-9]*$",
              "description": "Name of the device in the attachment object, such as, `/dev/vdb`.\n\n\n**New in version 2\\.85**"
            },
            "tag": {
              "type": "string",
              "minLength": 1,
              "maxLength": 60,
              "pattern": "^[^,/]*$",
              "description": "The device tag applied to the volume block device or `null`.\n\n\n**New in version 2\\.85**"
            },
            "delete_on_termination": {
              "type": [
                "boolean",
                "string"
              ],
              "enum": [
                true,
                "True",
                "TRUE",
                "true",
                "1",
                "ON",
                "On",
                "on",
                "YES",
                "Yes",
                "yes",
                false,
                "False",
                "FALSE",
                "false",
                "0",
                "OFF",
                "Off",
                "off",
                "NO",
                "No",
                "no"
              ],
              "description": "A flag indicating if the attached volume will be deleted when the server is\ndeleted.\n\n\n**New in version 2\\.85**"
            },
            "serverId": {
              "type": "string",
              "format": "uuid",
              "description": "The UUID of the server.\n\n\n**New in version 2\\.85**"
            },
            "id": {
              "type": "string",
              "format": "uuid",
              "description": "The UUID of the attachment.\n\n\n**New in version 2\\.85**"
            }
          },
          "additionalProperties": false,
          "required": [
            "volumeId"
          ]
        }
      },
      "additionalProperties": false,
      "x-openstack": {
        "min-ver": "2.85"
      },
      "required": [
        "volumeAttachment"
      ]
    }
  ],
  "x-openstack": {
    "discriminator": "microversion"
  }
}

Responses

202

Ok

{
  "type": "object",
  "properties": {
    "volumeAttachment": {
      "type": "object",
      "properties": {
        "device": {
          "type": "string",
          "description": "Name of the device in the attachment object, such as, `/dev/vdb`."
        },
        "id": {
          "description": "The volume ID of the attachment.\n\n\n**Available until version 2\\.88**",
          "type": "string",
          "format": "uuid",
          "x-openstack": {
            "max-ver": "2.88"
          }
        },
        "serverId": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the server."
        },
        "volumeId": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the attached volume."
        },
        "tag": {
          "type": [
            "string",
            "null"
          ],
          "description": "The device tag applied to the volume block device or `null`.\n\n\n**New in version 2\\.70**",
          "x-openstack": {
            "min-ver": "2.70"
          }
        },
        "delete_on_termination": {
          "type": "boolean",
          "description": "A flag indicating if the attached volume will be deleted when the server is\ndeleted.\n\n\n**New in version 2\\.79**",
          "x-openstack": {
            "min-ver": "2.79"
          }
        },
        "attachment_id": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the associated volume attachment in Cinder.\n\n\n**New in version 2\\.89**",
          "x-openstack": {
            "min-ver": "2.89"
          }
        },
        "bdm_uuid": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the block device mapping record in Nova for the attachment.\n\n\n**New in version 2\\.89**",
          "x-openstack": {
            "min-ver": "2.89"
          }
        }
      },
      "description": "A dictionary representation of a volume attachment containing the fields\n`device`, `id`, `serverId` and `volumeId`."
    }
  }
}

Name

Location

Type

Description

volumeAttachment

body

object

A dictionary representation of a volume attachment containing the fields device, id, serverId and volumeId.

volumeAttachment.device

body

string

Name of the device in the attachment object, such as, /dev/vdb.

volumeAttachment.id

body

string

The volume ID of the attachment.

Available until version 2.88
Available until version 2.88

volumeAttachment.serverId

body

string

The UUID of the server.

volumeAttachment.volumeId

body

string

The UUID of the attached volume.

volumeAttachment.tag

body

[‘string’, ‘null’]

The device tag applied to the volume block device or null.

New in version 2.70
New in version 2.70

volumeAttachment.delete_on_termination

body

boolean

A flag indicating if the attached volume will be deleted when the server is deleted.

New in version 2.79
New in version 2.79

volumeAttachment.attachment_id

body

string

The UUID of the associated volume attachment in Cinder.

New in version 2.89
New in version 2.89

volumeAttachment.bdm_uuid

body

string

The UUID of the block device mapping record in Nova for the attachment.

New in version 2.89
New in version 2.89

400

Error

404

Error

409

Error

Detach a volume from an instance

Detach a volume from an instance.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Responses

202

Ok

400

Error

403

Error

404

Error

409

Error

List Security Groups By Server

Lists security groups for a server.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "security_groups": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "The ID of the security group."
          },
          "name": {
            "type": "string",
            "description": "The security group name."
          },
          "description": {
            "type": "string",
            "description": "Security group description."
          },
          "tenant_id": {
            "type": "string",
            "format": "uuid",
            "description": "The UUID of the tenant in a multi\\-tenancy cloud."
          },
          "rules": {
            "type": "array",
            "description": "The list of security group rules.",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "from_port": {
                  "type": "integer"
                },
                "to_port": {
                  "type": "integer"
                },
                "ip_protocol": {
                  "type": "string"
                },
                "ip_range": {
                  "type": "object"
                },
                "group": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  }
                },
                "parent_group_id": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          }
        }
      },
      "description": "One or more security groups objects."
    }
  }
}

Name

Location

Type

Description

security_groups

body

array

One or more security groups objects.

security_groups[].id

body

string

The ID of the security group.

security_groups[].name

body

string

The security group name.

security_groups[].description

body

string

Security group description.

security_groups[].tenant_id

body

string

The UUID of the tenant in a multi-tenancy cloud.

security_groups[].rules

body

array

The list of security group rules.

security_groups[].rules[].id

body

string

security_groups[].rules[].from_port

body

integer

security_groups[].rules[].to_port

body

integer

security_groups[].rules[].ip_protocol

body

string

security_groups[].rules[].ip_range

body

object

security_groups[].rules[].group

body

object

security_groups[].rules[].group.name

body

string

security_groups[].rules[].parent_group_id

body

string

404

Error

Show Server Topology

Shows NUMA topology information for a server.

Policy defaults enable only users with the administrative role or the owners of the server to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: unauthorized(401), notfound(404), forbidden(403)

Responses

200

Ok

{
  "type": "object",
  "description": "NUMA topology information for a server",
  "properties": {
    "nodes": {
      "description": "NUMA nodes information of a server.",
      "type": "array",
      "items": {
        "type": "object",
        "description": "NUMA node information of a server",
        "properties": {
          "cpu_pinning": {
            "type": "object",
            "description": "The mapping of server cores to host physical CPU",
            "additionalProperties": {
              "type": "integer"
            }
          },
          "vcpu_set": {
            "type": "array",
            "description": "A list of IDs of the virtual CPU assigned to this NUMA node.",
            "items": {
              "type": "integer"
            }
          },
          "siblings": {
            "type": "array",
            "description": "A mapping of host cpus thread sibling.",
            "items": {
              "type": "integer"
            }
          },
          "memory_mb": {
            "type": "integer",
            "description": "The amount of memory assigned to this NUMA node in MB."
          },
          "host_node": {
            "type": "integer",
            "description": "The host NUMA node the virtual NUMA node is map to."
          },
          "pagesize_kb": {
            "type": [
              "integer",
              "null"
            ],
            "description": "The page size in KB of a server. This field is `null` if the\npage size information is not available."
          }
        }
      }
    }
  }
}

Name

Location

Type

Description

nodes

body

array

NUMA nodes information of a server.

nodes[].cpu_pinning

body

object

The mapping of server cores to host physical CPU

nodes[].vcpu_set

body

array

A list of IDs of the virtual CPU assigned to this NUMA node.

nodes[].siblings

body

array

A mapping of host cpus thread sibling.

nodes[].memory_mb

body

integer

The amount of memory assigned to this NUMA node in MB.

nodes[].host_node

body

integer

The host NUMA node the virtual NUMA node is map to.

nodes[].pagesize_kb

body

[‘integer’, ‘null’]

The page size in KB of a server. This field is null if the page size information is not available.

404

Error

server-migrations

List Migrations

Lists in-progress live migrations for a given server.

Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "List of migration objects",
  "properties": {
    "migrations": {
      "type": "array",
      "items": {
        "type": "object",
        "description": "Migration object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time when the resource was created. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time when the resource was updated. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
          },
          "dest_compute": {
            "type": "string",
            "description": "The target compute for a migration."
          },
          "dest_host": {
            "type": "string",
            "description": "The target host for a migration."
          },
          "dest_node": {
            "type": "string",
            "description": "The target node for a migration."
          },
          "id": {
            "type": "integer",
            "description": "The ID of the server migration."
          },
          "source_compute": {
            "type": "string",
            "description": "The source compute for a migration."
          },
          "source_node": {
            "type": "string",
            "description": "The source node for a migration."
          },
          "status": {
            "type": "string",
            "description": "The current status of the migration."
          },
          "project_id": {
            "type": [
              "string",
              "null"
            ],
            "description": "The ID of the project which initiated the server migration. The value\nmay be `null` for older migration records.\n\n\n**New in version 2\\.80**",
            "x-openstack": {
              "min-ver": "2.80"
            }
          },
          "user_id": {
            "type": [
              "string",
              "null"
            ],
            "description": "The ID of the user which initiated the server migration. The value\nmay be `null` for older migration records.\n\n\n**New in version 2\\.80**",
            "x-openstack": {
              "min-ver": "2.80"
            }
          },
          "uuid": {
            "type": "string",
            "format": "uuid",
            "description": "The UUID of the migration.\n\n\n**New in version 2\\.59**",
            "x-openstack": {
              "min-ver": "2.59"
            }
          },
          "disk_processed_bytes": {
            "type": "integer",
            "description": "The amount of disk, in bytes, that has been processed during the migration."
          },
          "disk_remaining_bytes": {
            "type": "integer",
            "description": "The amount of disk, in bytes, that still needs to be migrated."
          },
          "disk_total_bytes": {
            "type": "integer",
            "description": "The total amount of disk, in bytes, that needs to be migrated."
          },
          "memory_processed_bytes": {
            "type": "integer",
            "description": "The amount of memory, in bytes, that has been processed during the migration."
          },
          "memory_remaining_bytes": {
            "type": "integer",
            "description": "The amount of memory, in bytes, that still needs to be migrated."
          },
          "memory_total_bytes": {
            "type": "integer",
            "description": "The total amount of memory, in bytes, that needs to be migrated."
          },
          "server_uuid": {
            "type": "string",
            "format": "uuid",
            "description": "The UUID of the server."
          }
        }
      },
      "description": "The list of server migration objects."
    }
  }
}

Name

Location

Type

Description

migrations

body

array

The list of server migration objects.

migrations[].created_at

body

string

The date and time when the resource was created. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

migrations[].updated_at

body

string

The date and time when the resource was updated. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

migrations[].dest_compute

body

string

The target compute for a migration.

migrations[].dest_host

body

string

The target host for a migration.

migrations[].dest_node

body

string

The target node for a migration.

migrations[].id

body

integer

The ID of the server migration.

migrations[].source_compute

body

string

The source compute for a migration.

migrations[].source_node

body

string

The source node for a migration.

migrations[].status

body

string

The current status of the migration.

migrations[].project_id

body

[‘string’, ‘null’]

The ID of the project which initiated the server migration. The value may be null for older migration records.

New in version 2.80
New in version 2.80

migrations[].user_id

body

[‘string’, ‘null’]

The ID of the user which initiated the server migration. The value may be null for older migration records.

New in version 2.80
New in version 2.80

migrations[].uuid

body

string

The UUID of the migration.

New in version 2.59
New in version 2.59

migrations[].disk_processed_bytes

body

integer

The amount of disk, in bytes, that has been processed during the migration.

migrations[].disk_remaining_bytes

body

integer

The amount of disk, in bytes, that still needs to be migrated.

migrations[].disk_total_bytes

body

integer

The total amount of disk, in bytes, that needs to be migrated.

migrations[].memory_processed_bytes

body

integer

The amount of memory, in bytes, that has been processed during the migration.

migrations[].memory_remaining_bytes

body

integer

The amount of memory, in bytes, that still needs to be migrated.

migrations[].memory_total_bytes

body

integer

The total amount of memory, in bytes, that needs to be migrated.

migrations[].server_uuid

body

string

The UUID of the server.

404

Error

Show Migration Details

Show details for an in-progress live migration for a given server.

Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "properties": {
    "migration": {
      "type": "object",
      "description": "The server migration object.",
      "properties": {
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the resource was created. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time when the resource was updated. The date and time\nstamp format is [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)\n\n\n\n```\nCCYY-MM-DDThh:mm:ss\u00b1hh:mm\n\n```\n\n\nFor example, `2015-08-27T09:49:58-05:00`. The `\u00b1hh:mm`\nvalue, if included, is the time zone as an offset from UTC. In\nthe previous example, the offset value is `-05:00`."
        },
        "dest_compute": {
          "type": "string",
          "description": "The target compute for a migration."
        },
        "dest_host": {
          "type": "string",
          "description": "The target host for a migration."
        },
        "dest_node": {
          "type": "string",
          "description": "The target node for a migration."
        },
        "id": {
          "type": "integer",
          "description": "The ID of the server migration."
        },
        "source_compute": {
          "type": "string",
          "description": "The source compute for a migration."
        },
        "source_node": {
          "type": "string",
          "description": "The source node for a migration."
        },
        "status": {
          "type": "string",
          "description": "The current status of the migration."
        },
        "project_id": {
          "type": [
            "string",
            "null"
          ],
          "description": "The ID of the project which initiated the server migration. The value\nmay be `null` for older migration records.\n\n\n**New in version 2\\.80**",
          "x-openstack": {
            "min-ver": "2.80"
          }
        },
        "user_id": {
          "type": [
            "string",
            "null"
          ],
          "description": "The ID of the user which initiated the server migration. The value\nmay be `null` for older migration records.\n\n\n**New in version 2\\.80**",
          "x-openstack": {
            "min-ver": "2.80"
          }
        },
        "uuid": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the migration.\n\n\n**New in version 2\\.59**",
          "x-openstack": {
            "min-ver": "2.59"
          }
        },
        "disk_processed_bytes": {
          "type": "integer",
          "description": "The amount of disk, in bytes, that has been processed during the migration."
        },
        "disk_remaining_bytes": {
          "type": "integer",
          "description": "The amount of disk, in bytes, that still needs to be migrated."
        },
        "disk_total_bytes": {
          "type": "integer",
          "description": "The total amount of disk, in bytes, that needs to be migrated."
        },
        "memory_processed_bytes": {
          "type": "integer",
          "description": "The amount of memory, in bytes, that has been processed during the migration."
        },
        "memory_remaining_bytes": {
          "type": "integer",
          "description": "The amount of memory, in bytes, that still needs to be migrated."
        },
        "memory_total_bytes": {
          "type": "integer",
          "description": "The total amount of memory, in bytes, that needs to be migrated."
        },
        "server_uuid": {
          "type": "string",
          "format": "uuid",
          "description": "The UUID of the server."
        }
      }
    }
  }
}

Name

Location

Type

Description

migration

body

object

The server migration object.

migration.created_at

body

string

The date and time when the resource was created. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

migration.updated_at

body

string

The date and time when the resource was updated. The date and time stamp format is ISO 8601

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00. The ±hh:mm value, if included, is the time zone as an offset from UTC. In the previous example, the offset value is -05:00.

migration.dest_compute

body

string

The target compute for a migration.

migration.dest_host

body

string

The target host for a migration.

migration.dest_node

body

string

The target node for a migration.

migration.id

body

integer

The ID of the server migration.

migration.source_compute

body

string

The source compute for a migration.

migration.source_node

body

string

The source node for a migration.

migration.status

body

string

The current status of the migration.

migration.project_id

body

[‘string’, ‘null’]

The ID of the project which initiated the server migration. The value may be null for older migration records.

New in version 2.80
New in version 2.80

migration.user_id

body

[‘string’, ‘null’]

The ID of the user which initiated the server migration. The value may be null for older migration records.

New in version 2.80
New in version 2.80

migration.uuid

body

string

The UUID of the migration.

New in version 2.59
New in version 2.59

migration.disk_processed_bytes

body

integer

The amount of disk, in bytes, that has been processed during the migration.

migration.disk_remaining_bytes

body

integer

The amount of disk, in bytes, that still needs to be migrated.

migration.disk_total_bytes

body

integer

The total amount of disk, in bytes, that needs to be migrated.

migration.memory_processed_bytes

body

integer

The amount of memory, in bytes, that has been processed during the migration.

migration.memory_remaining_bytes

body

integer

The amount of memory, in bytes, that still needs to be migrated.

migration.memory_total_bytes

body

integer

The total amount of memory, in bytes, that needs to be migrated.

migration.server_uuid

body

string

The UUID of the server.

404

Error

Delete (Abort) Migration

Abort an in-progress live migration.

Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Preconditions

The server OS-EXT-STS:task_state value must be migrating.

If the server is locked, you must have administrator privileges to force the completion of the server migration.

For microversions from 2.24 to 2.64 the migration status must be running, for microversion 2.65 and greater, the migration status can also be queued and preparing.

Asynchronous Postconditions

After you make this request, you typically must keep polling the server status to determine whether the request succeeded. You may also monitor the migration using:

Troubleshooting

If the server status remains MIGRATING for an inordinate amount of time, the request may have failed. Ensure you meet the preconditions and run the request again. If the request fails again, investigate the compute back end.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Responses

202

Ok

400

Error

404

Error

409

Error

Force Migration Complete Action (force_complete Action)

Force an in-progress live migration for a given server to complete.

Specify the force_complete action in the request body.

Policy defaults enable only users with the administrative role to perform this operation. Cloud providers can change these permissions through the policy.json file.

Preconditions

The server OS-EXT-STS:vm_state value must be active and the server OS-EXT-STS:task_state value must be migrating.

If the server is locked, you must have administrator privileges to force the completion of the server migration.

The migration status must be running.

Asynchronous Postconditions

After you make this request, you typically must keep polling the server status to determine whether the request succeeded.

Troubleshooting

If the server status remains MIGRATING for an inordinate amount of time, the request may have failed. Ensure you meet the preconditions and run the request again. If the request fails again, investigate the compute back end. More details can be found in the admin guide.

Normal response codes: 202

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)

Request

Name

Location

Type

Description

server_id

path

string

server_id parameter for /v2.1/servers/{server_id}/migrations/{id}/action API

id

path

string

id parameter for /v2.1/servers/{server_id}/migrations/{id}/action API

force_complete

body

null

The action to force an in-progress live migration to complete.

{
  "type": "object",
  "description": "Force an in\\-progress live migration for a given server to complete.\n\nSpecify the `force_complete` action in the request body.\n\nPolicy defaults enable only users with the administrative role to perform\nthis operation. Cloud providers can change these permissions through the\n`policy.json` file.\n\n**Preconditions**\n\nThe server OS\\-EXT\\-STS:vm_state value must be `active` and the server\nOS\\-EXT\\-STS:task_state value must be `migrating`.\n\nIf the server is locked, you must have administrator privileges to force the\ncompletion of the server migration.\n\nThe migration status must be `running`.\n\n**Asynchronous Postconditions**\n\nAfter you make this request, you typically must keep polling the server status\nto determine whether the request succeeded.\n\n**Troubleshooting**\n\nIf the server status remains `MIGRATING` for an inordinate amount of time,\nthe request may have failed. Ensure you meet the preconditions and run the\nrequest again. If the request fails again, investigate the compute back end.\nMore details can be found in the\n[admin guide](https://docs.openstack.org/nova/latest/admin/live-migration-usage.html#what-to-do-when-the-migration-times-out).\n\nNormal response codes: 202\n\nError response codes: badRequest(400\\), unauthorized(401\\), forbidden(403\\), itemNotFound(404\\), conflict(409\\)",
  "summary": "Force Migration Complete Action (force_complete Action)",
  "properties": {
    "force_complete": {
      "type": "null",
      "description": "The action to force an in\\-progress live migration to complete."
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.22",
    "action-name": "force_complete"
  },
  "required": [
    "force_complete"
  ]
}

Responses

202

Ok

400

Error

403

Error

404

Error

409

Error

server-tags

List Tags

Lists all tags for a server.

Normal response codes: 200

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

{
  "type": "object",
  "description": "Server Tags",
  "properties": {
    "tags": {
      "type": "array",
      "description": "A list of tags. The maximum count of tags in this list is 50\\.",
      "items": {
        "type": "string"
      }
    }
  }
}

Name

Location

Type

Description

tags

body

array

A list of tags. The maximum count of tags in this list is 50.

404

Error

Replace Tags

Replaces all tags on specified server with the new set of tags.

Normal response codes: 200

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Request

Name

Location

Type

Description

server_id

path

string

server_id parameter for /v2.1/servers/{server_id}/tags/{id} API

tags

body

array

A list of tags. The maximum count of tags in this list is 50.

{
  "type": "object",
  "properties": {
    "tags": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 60,
        "pattern": "^[^,/]*$"
      },
      "maxItems": 50,
      "description": "A list of tags. The maximum count of tags in this list is 50\\."
    }
  },
  "additionalProperties": false,
  "x-openstack": {
    "min-ver": "2.26"
  },
  "required": [
    "tags"
  ],
  "title": "Server tags"
}

Responses

200

Ok

{
  "type": "object",
  "description": "Server Tags",
  "properties": {
    "tags": {
      "type": "array",
      "description": "A list of tags. The maximum count of tags in this list is 50\\.",
      "items": {
        "type": "string"
      }
    }
  }
}

Name

Location

Type

Description

tags

body

array

A list of tags. The maximum count of tags in this list is 50.

404

Error

409

Error

Delete All Tags

Deletes all tags from the specified server.

Normal response codes: 204

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

204

Ok

404

Error

409

Error

Check Tag Existence

Checks tag existence on the server. If tag exists response with 204 status code will be returned. Otherwise returns 404.

Normal response codes: 204

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

204

Ok

404

Error

Add a Single Tag

Adds a single tag to the server if server has no specified tag. Response code in this case is 201.

If the server has specified tag just returns 204.

Normal response codes: 201, 204

Error response codes: badRequest(400), unauthorized(401), forbidden(403), itemNotFound(404)

Responses

200

Ok

400

Error

404

Error

409

Error

Delete a Single Tag

Deletes a single tag from the specified server.

Normal response codes: 204

Error response codes: unauthorized(401), forbidden(403), itemNotFound(404)

Responses

204

Ok

404

Error

409

Error