openapi: 3.0.3
info:
  title: Compute API
  version: "2.96"
  description: >
    OpenStack Compute API provided by the Nova project.

    This specification covers the current v2.1 API and excludes deprecated
    endpoints.


    **Authentication**: All API calls require authentication with the OpenStack
    Identity service.


    **Microversions**: The Nova API supports microversions for backward
    compatibility.

    Use the `OpenStack-API-Version` header to specify the desired microversion.


    **Base URL**: The service URL should be discovered from the Identity service
    catalog.
  contact:
    name: OpenStack Nova Team
    url: https://docs.openstack.org/nova/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  x-gitbook-description-document:
    object: document
    data:
      schemaVersion: 9
    nodes:
      - object: block
        type: paragraph
        isVoid: false
        data: {}
        nodes:
          - object: text
            leaves:
              - object: leaf
                text: >-
                  OpenStack Compute API provided by the Nova project. This
                  specification covers the current v2.1 API and excludes
                  deprecated endpoints.
                marks: []
      - object: block
        type: paragraph
        isVoid: false
        data: {}
        nodes:
          - object: text
            leaves:
              - object: leaf
                text: Authentication
                marks:
                  - object: mark
                    type: bold
                    data: {}
              - object: leaf
                text: >-
                  : All API calls require authentication with the OpenStack
                  Identity service.
                marks: []
      - object: block
        type: paragraph
        isVoid: false
        data: {}
        nodes:
          - object: text
            leaves:
              - object: leaf
                text: Microversions
                marks:
                  - object: mark
                    type: bold
                    data: {}
              - object: leaf
                text: >-
                  : The Nova API supports microversions for backward
                  compatibility. Use the
                marks: []
              - object: leaf
                text: OpenStack-API-Version
                marks:
                  - object: mark
                    type: code
                    data: {}
              - object: leaf
                text: " header to specify the desired microversion."
                marks: []
      - object: block
        type: paragraph
        isVoid: false
        data: {}
        nodes:
          - object: text
            leaves:
              - object: leaf
                text: Base URL
                marks:
                  - object: mark
                    type: bold
                    data: {}
              - object: leaf
                text: >-
                  : The service URL should be discovered from the Identity
                  service catalog.
                marks: []
  x-gitbook-description-html: >-
    <p>OpenStack Compute API provided by the Nova project. This specification
    covers the current v2.1 API and excludes deprecated
    endpoints.</p><p><strong>Authentication</strong>: All API calls require
    authentication with the OpenStack Identity
    service.</p><p><strong>Microversions</strong>: The Nova API supports
    microversions for backward compatibility. Use the
    <code>OpenStack-API-Version</code> header to specify the desired
    microversion.</p><p><strong>Base URL</strong>: The service URL should be
    discovered from the Identity service catalog.</p>
servers:
  - url: https://{host}/nova/v2.1
    description: Nova Compute API v2.1
    variables:
      host:
        default: pcd.example.com
        description: The PCD controlplane hostname
        x-gitbook-description-html: <p>The PCD controlplane hostname</p>
    x-gitbook-description-html: <p>Nova Compute API v2.1</p>
paths:
  /:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  versions:
                    type: array
                    items:
                      $ref: "#/components/schemas/Version"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: listVersions
      summary: List API Versions
      description: |
        Lists information about all known API versions in the deployment.
        This endpoint does not require authentication.
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: >-
                      Lists information about all known API versions in the
                      deployment. This endpoint does not require authentication.
                    marks: []
      x-gitbook-description-html: >-
        <p>Lists information about all known API versions in the deployment.
        This endpoint does not require authentication.</p>
  /servers:
    get:
      parameters:
        - $ref: "#/components/parameters/OpenStackAPIVersion"
        - name: changes-since
          description: >
            Filters the response by a date and time stamp when the server last
            changed status.

            Format: CCYY-MM-DDThh:mm:ss±hh:mm
          schema:
            format: date-time
            type: string
          in: query
          x-gitbook-description-html: >-
            <p>Filters the response by a date and time stamp when the server
            last changed status.

            Format: CCYY-MM-DDThh:mm:ss±hh:mm</p>
        - name: flavor
          description: Filters the response by a flavor UUID
          schema:
            format: uuid
            type: string
          in: query
          x-gitbook-description-html: <p>Filters the response by a flavor UUID</p>
        - name: image
          description: Filters the response by an image UUID
          schema:
            format: uuid
            type: string
          in: query
          x-gitbook-description-html: <p>Filters the response by an image UUID</p>
        - name: ip
          description: An IPv4 address to filter results by
          schema:
            format: ipv4
            type: string
          in: query
          x-gitbook-description-html: <p>An IPv4 address to filter results by</p>
        - name: ip6
          description: An IPv6 address to filter results by
          schema:
            format: ipv6
            type: string
          in: query
          x-gitbook-description-html: <p>An IPv6 address to filter results by</p>
        - name: name
          description: Filters the response by a server name
          schema:
            type: string
          in: query
          x-gitbook-description-html: <p>Filters the response by a server name</p>
        - name: reservation_id
          description: A reservation id as returned by a servers multiple create call
          schema:
            type: string
          in: query
          x-gitbook-description-html: >-
            <p>A reservation id as returned by a servers multiple create
            call</p>
        - name: status
          description: Filters the response by a server status
          schema:
            enum:
              - ACTIVE
              - BUILD
              - DELETED
              - ERROR
              - HARD_REBOOT
              - MIGRATING
              - PASSWORD
              - PAUSED
              - REBOOT
              - REBUILD
              - RESCUE
              - RESIZE
              - REVERT_RESIZE
              - SHELVED
              - SHELVED_OFFLOADED
              - SHUTOFF
              - SOFT_DELETED
              - SUSPENDED
              - UNKNOWN
              - VERIFY_RESIZE
            type: string
          in: query
          x-gitbook-description-html: <p>Filters the response by a server status</p>
        - name: tags
          description: >
            A list of tags to filter the server list by. Servers that match all
            tags

            in this list will be returned. Tags must be separated by comma.
          schema:
            type: string
          in: query
          x-gitbook-description-html: >-
            <p>A list of tags to filter the server list by. Servers that match
            all tags

            in this list will be returned. Tags must be separated by comma.</p>
        - name: tags-any
          description: >
            A list of tags to filter the server list by. Servers that match any
            tag

            in this list will be returned. Tags must be separated by comma.
          schema:
            type: string
          in: query
          x-gitbook-description-html: >-
            <p>A list of tags to filter the server list by. Servers that match
            any tag

            in this list will be returned. Tags must be separated by comma.</p>
        - name: not-tags
          description: >
            A list of tags to filter the server list by. Servers that don't
            match

            all tags in this list will be returned. Tags must be separated by
            comma.
          schema:
            type: string
          in: query
          x-gitbook-description-html: >-
            <p>A list of tags to filter the server list by. Servers that don't
            match

            all tags in this list will be returned. Tags must be separated by
            comma.</p>
        - name: not-tags-any
          description: >
            A list of tags to filter the server list by. Servers that don't
            match

            any tags in this list will be returned. Tags must be separated by
            comma.
          schema:
            type: string
          in: query
          x-gitbook-description-html: >-
            <p>A list of tags to filter the server list by. Servers that don't
            match

            any tags in this list will be returned. Tags must be separated by
            comma.</p>
        - name: limit
          description: Requests a page size of items
          schema:
            minimum: 1
            type: integer
          in: query
          x-gitbook-description-html: <p>Requests a page size of items</p>
        - name: marker
          description: The ID of the last-seen item for pagination
          schema:
            format: uuid
            type: string
          in: query
          x-gitbook-description-html: <p>The ID of the last-seen item for pagination</p>
        - name: sort_key
          description: Sorts by a server attribute
          schema:
            default: created_at
            enum:
              - access_ip_v4
              - access_ip_v6
              - auto_disk_config
              - availability_zone
              - config_drive
              - created_at
              - display_description
              - display_name
              - host
              - hostname
              - image_ref
              - instance_type_id
              - kernel_id
              - key_name
              - launch_index
              - launched_at
              - locked_by
              - node
              - power_state
              - progress
              - project_id
              - ramdisk_id
              - root_device_name
              - task_state
              - terminated_at
              - updated_at
              - user_id
              - uuid
              - vm_state
            type: string
          in: query
          x-gitbook-description-html: <p>Sorts by a server attribute</p>
        - name: sort_dir
          description: Sort direction
          schema:
            default: desc
            enum:
              - asc
              - desc
            type: string
          in: query
          x-gitbook-description-html: <p>Sort direction</p>
        - name: changes-before
          description: >
            Filters the response by a date and time stamp when the server last
            changed.

            Format: CCYY-MM-DDThh:mm:ss±hh:mm
          schema:
            format: date-time
            type: string
          in: query
          x-gitbook-description-html: >-
            <p>Filters the response by a date and time stamp when the server
            last changed.

            Format: CCYY-MM-DDThh:mm:ss±hh:mm</p>
        - name: locked
          description: Specify the locked status to filter servers
          schema:
            type: boolean
          in: query
          x-gitbook-description-html: <p>Specify the locked status to filter servers</p>
        - name: availability_zone
          description: Filter the server list result by server availability zone
          schema:
            type: string
          in: query
          x-gitbook-description-html: <p>Filter the server list result by server availability zone</p>
        - name: config_drive
          description: Filter the server list result by the config drive setting
          schema:
            type: string
          in: query
          x-gitbook-description-html: <p>Filter the server list result by the config drive setting</p>
        - name: key_name
          description: Filter the server list result by keypair name
          schema:
            type: string
          in: query
          x-gitbook-description-html: <p>Filter the server list result by keypair name</p>
        - name: created_at
          description: >
            Filter the server list result by a date and time stamp when server
            was created.

            Format: CCYY-MM-DDThh:mm:ss±hh:mm
          schema:
            format: date-time
            type: string
          in: query
          x-gitbook-description-html: >-
            <p>Filter the server list result by a date and time stamp when
            server was created.

            Format: CCYY-MM-DDThh:mm:ss±hh:mm</p>
        - name: launched_at
          description: >
            Filter the server list result by a date and time stamp when the
            instance was launched.

            Format: CCYY-MM-DDThh:mm:ss±hh:mm
          schema:
            format: date-time
            type: string
          in: query
          x-gitbook-description-html: >-
            <p>Filter the server list result by a date and time stamp when the
            instance was launched.

            Format: CCYY-MM-DDThh:mm:ss±hh:mm</p>
        - name: terminated_at
          description: >
            Filter the server list result by a date and time stamp when instance
            was terminated.

            Format: CCYY-MM-DDThh:mm:ss±hh:mm
          schema:
            format: date-time
            type: string
          in: query
          x-gitbook-description-html: >-
            <p>Filter the server list result by a date and time stamp when
            instance was terminated.

            Format: CCYY-MM-DDThh:mm:ss±hh:mm</p>
        - name: user_id
          description: Filter the list of servers by the given user ID
          schema:
            type: string
          in: query
          x-gitbook-description-html: <p>Filter the list of servers by the given user ID</p>
        - name: power_state
          description: Filter the server list result by server power state
          schema:
            enum:
              - 0
              - 1
              - 3
              - 4
              - 6
              - 7
            type: integer
          in: query
          x-gitbook-description-html: <p>Filter the server list result by server power state</p>
        - name: task_state
          description: Filter the server list result by task state
          schema:
            type: string
          in: query
          x-gitbook-description-html: <p>Filter the server list result by task state</p>
        - name: vm_state
          description: Filter the server list result by vm state
          schema:
            enum:
              - active
              - building
              - paused
              - suspended
              - stopped
              - rescued
              - resized
              - soft-delete
              - deleted
              - error
              - shelved
              - shelved_offloaded
            type: string
          in: query
          x-gitbook-description-html: <p>Filter the server list result by vm state</p>
        - name: progress
          description: Filter the server list result by the progress of the server (0-100)
          schema:
            maximum: 100
            minimum: 0
            type: integer
          in: query
          x-gitbook-description-html: >-
            <p>Filter the server list result by the progress of the server
            (0-100)</p>
        - name: hostname
          description: Filter the server list result by the host name of server
          schema:
            type: string
          in: query
          x-gitbook-description-html: <p>Filter the server list result by the host name of server</p>
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  servers:
                    type: array
                    items:
                      $ref: "#/components/schemas/ServerSummary"
                  servers_links:
                    type: array
                    items:
                      $ref: "#/components/schemas/Link"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
        "400":
          $ref: "#/components/responses/BadRequest"
        "401":
          $ref: "#/components/responses/Unauthorized"
        "403":
          $ref: "#/components/responses/Forbidden"
      operationId: listServers
      summary: List Servers
      description: >
        Lists IDs, names, and links for servers. By default, servers are
        filtered

        using the project ID associated with the authenticated request.
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: >-
                      Lists IDs, names, and links for servers. By default,
                      servers are filtered using the project ID associated with
                      the authenticated request.
                    marks: []
      x-gitbook-description-html: >-
        <p>Lists IDs, names, and links for servers. By default, servers are
        filtered using the project ID associated with the authenticated
        request.</p>
    post:
      requestBody:
        content:
          application/json:
            schema:
              required:
                - server
              type: object
              properties:
                server:
                  $ref: "#/components/schemas/CreateServerRequest"
                OS-SCH-HNT:scheduler_hints:
                  $ref: "#/components/schemas/SchedulerHints"
        required: true
      parameters:
        - $ref: "#/components/parameters/OpenStackAPIVersion"
      responses:
        "202":
          headers:
            Location:
              schema:
                format: uri
                type: string
              description: The location URL of the server
              x-gitbook-description-html: <p>The location URL of the server</p>
          content:
            application/json:
              schema:
                type: object
                properties:
                  server:
                    $ref: "#/components/schemas/ServerResponse"
          description: Server creation accepted
          x-gitbook-description-html: <p>Server creation accepted</p>
        "400":
          $ref: "#/components/responses/BadRequest"
        "401":
          $ref: "#/components/responses/Unauthorized"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "409":
          $ref: "#/components/responses/Conflict"
      operationId: createServer
      summary: Create Server
      description: >
        Creates a server. The progress of this operation depends on various
        factors

        including image location, network I/O, host load, and selected flavor.
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: >-
                      Creates a server. The progress of this operation depends
                      on various factors including image location, network I/O,
                      host load, and selected flavor.
                    marks: []
      x-gitbook-description-html: >-
        <p>Creates a server. The progress of this operation depends on various
        factors including image location, network I/O, host load, and selected
        flavor.</p>
  /servers/detail:
    get:
      parameters:
        - $ref: "#/components/parameters/OpenStackAPIVersion"
        - name: changes-since
          schema:
            format: date-time
            type: string
          in: query
        - name: flavor
          schema:
            format: uuid
            type: string
          in: query
        - name: image
          schema:
            format: uuid
            type: string
          in: query
        - name: ip
          schema:
            format: ipv4
            type: string
          in: query
        - name: ip6
          schema:
            format: ipv6
            type: string
          in: query
        - name: name
          schema:
            type: string
          in: query
        - name: status
          schema:
            enum:
              - ACTIVE
              - BUILD
              - DELETED
              - ERROR
              - HARD_REBOOT
              - MIGRATING
              - PASSWORD
              - PAUSED
              - REBOOT
              - REBUILD
              - RESCUE
              - RESIZE
              - REVERT_RESIZE
              - SHELVED
              - SHELVED_OFFLOADED
              - SHUTOFF
              - SOFT_DELETED
              - SUSPENDED
              - UNKNOWN
              - VERIFY_RESIZE
            type: string
          in: query
        - name: limit
          schema:
            minimum: 1
            type: integer
          in: query
        - name: marker
          schema:
            format: uuid
            type: string
          in: query
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  servers:
                    type: array
                    items:
                      $ref: "#/components/schemas/ServerDetailed"
                  servers_links:
                    type: array
                    items:
                      $ref: "#/components/schemas/Link"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
        "400":
          $ref: "#/components/responses/BadRequest"
        "401":
          $ref: "#/components/responses/Unauthorized"
        "403":
          $ref: "#/components/responses/Forbidden"
      operationId: listServersDetailed
      summary: List Servers (Detailed)
      description: >
        For each server, shows server details including config drive, extended
        status,

        and server usage information.
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: >-
                      For each server, shows server details including config
                      drive, extended status, and server usage information.
                    marks: []
      x-gitbook-description-html: >-
        <p>For each server, shows server details including config drive,
        extended status, and server usage information.</p>
  /servers/{server_id}:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  server:
                    $ref: "#/components/schemas/ServerDetailed"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
        "401":
          $ref: "#/components/responses/Unauthorized"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
      operationId: getServer
      summary: Show Server Details
      description: >
        Shows details for a server, including configuration drive, extended
        status,

        and server usage information.
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: >-
                      Shows details for a server, including configuration drive,
                      extended status, and server usage information.
                    marks: []
      x-gitbook-description-html: >-
        <p>Shows details for a server, including configuration drive, extended
        status, and server usage information.</p>
    put:
      requestBody:
        content:
          application/json:
            schema:
              required:
                - server
              type: object
              properties:
                server:
                  $ref: "#/components/schemas/UpdateServerRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  server:
                    $ref: "#/components/schemas/ServerDetailed"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
        "400":
          $ref: "#/components/responses/BadRequest"
        "401":
          $ref: "#/components/responses/Unauthorized"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
      operationId: updateServer
      summary: Update Server
      description: Updates the editable attributes of a server
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Updates the editable attributes of a server
                    marks: []
      x-gitbook-description-html: <p>Updates the editable attributes of a server</p>
    delete:
      responses:
        "204":
          description: Server deleted successfully
          x-gitbook-description-html: <p>Server deleted successfully</p>
        "401":
          $ref: "#/components/responses/Unauthorized"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "409":
          $ref: "#/components/responses/Conflict"
      operationId: deleteServer
      summary: Delete Server
      description: Deletes a server
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Deletes a server
                    marks: []
      x-gitbook-description-html: <p>Deletes a server</p>
    parameters:
      - $ref: "#/components/parameters/ServerId"
      - $ref: "#/components/parameters/OpenStackAPIVersion"
  /servers/{server_id}/action:
    post:
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: "#/components/schemas/RebootAction"
                - $ref: "#/components/schemas/RebuildAction"
                - $ref: "#/components/schemas/ResizeAction"
                - $ref: "#/components/schemas/ConfirmResizeAction"
                - $ref: "#/components/schemas/RevertResizeAction"
                - $ref: "#/components/schemas/CreateImageAction"
                - $ref: "#/components/schemas/ChangePasswordAction"
                - $ref: "#/components/schemas/StartAction"
                - $ref: "#/components/schemas/StopAction"
                - $ref: "#/components/schemas/ShelveAction"
                - $ref: "#/components/schemas/UnshelveAction"
                - $ref: "#/components/schemas/SuspendAction"
                - $ref: "#/components/schemas/ResumeAction"
                - $ref: "#/components/schemas/PauseAction"
                - $ref: "#/components/schemas/UnpauseAction"
                - $ref: "#/components/schemas/LockAction"
                - $ref: "#/components/schemas/UnlockAction"
                - $ref: "#/components/schemas/RescueAction"
                - $ref: "#/components/schemas/UnrescueAction"
                - $ref: "#/components/schemas/EvacuateAction"
                - $ref: "#/components/schemas/MigrateAction"
                - $ref: "#/components/schemas/LiveMigrateAction"
                - $ref: "#/components/schemas/CreateBackupAction"
                - $ref: "#/components/schemas/TriggerCrashDumpAction"
        required: true
      responses:
        "200":
          description: Action performed successfully (may contain response data)
          x-gitbook-description-html: <p>Action performed successfully (may contain response data)</p>
        "202":
          description: Action accepted
          x-gitbook-description-html: <p>Action accepted</p>
        "204":
          description: Action performed successfully (no content)
          x-gitbook-description-html: <p>Action performed successfully (no content)</p>
        "400":
          $ref: "#/components/responses/BadRequest"
        "401":
          $ref: "#/components/responses/Unauthorized"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          $ref: "#/components/responses/NotFound"
        "409":
          $ref: "#/components/responses/Conflict"
      operationId: performServerAction
      summary: Perform Server Action
      description: >
        Performs various actions on a server such as reboot, rebuild, resize,
        etc.
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: >-
                      Performs various actions on a server such as reboot,
                      rebuild, resize, etc.
                    marks: []
      x-gitbook-description-html: >-
        <p>Performs various actions on a server such as reboot, rebuild, resize,
        etc.</p>
    parameters:
      - $ref: "#/components/parameters/ServerId"
      - $ref: "#/components/parameters/OpenStackAPIVersion"
  /servers/{server_id}/metadata:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  metadata:
                    type: object
                    additionalProperties:
                      type: string
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: listServerMetadata
      summary: List Server Metadata
      description: Lists all metadata for a server
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Lists all metadata for a server
                    marks: []
      x-gitbook-description-html: <p>Lists all metadata for a server</p>
    put:
      requestBody:
        content:
          application/json:
            schema:
              required:
                - metadata
              type: object
              properties:
                metadata:
                  type: object
                  additionalProperties:
                    type: string
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  metadata:
                    type: object
                    additionalProperties:
                      type: string
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: setServerMetadata
      summary: Set Server Metadata
      description: Sets metadata for a server, replacing all existing metadata
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: >-
                      Sets metadata for a server, replacing all existing
                      metadata
                    marks: []
      x-gitbook-description-html: <p>Sets metadata for a server, replacing all existing metadata</p>
    post:
      requestBody:
        content:
          application/json:
            schema:
              required:
                - metadata
              type: object
              properties:
                metadata:
                  type: object
                  additionalProperties:
                    type: string
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  metadata:
                    type: object
                    additionalProperties:
                      type: string
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: updateServerMetadata
      summary: Update Server Metadata
      description: Updates metadata for a server, merging with existing metadata
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: >-
                      Updates metadata for a server, merging with existing
                      metadata
                    marks: []
      x-gitbook-description-html: <p>Updates metadata for a server, merging with existing metadata</p>
    parameters:
      - $ref: "#/components/parameters/ServerId"
      - $ref: "#/components/parameters/OpenStackAPIVersion"
  /servers/{server_id}/metadata/{key}:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  meta:
                    type: object
                    additionalProperties:
                      type: string
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: getServerMetadataItem
      summary: Get Server Metadata Item
      description: Gets a specific metadata item for a server
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Gets a specific metadata item for a server
                    marks: []
      x-gitbook-description-html: <p>Gets a specific metadata item for a server</p>
    put:
      requestBody:
        content:
          application/json:
            schema:
              required:
                - meta
              type: object
              properties:
                meta:
                  type: object
                  additionalProperties:
                    type: string
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  meta:
                    type: object
                    additionalProperties:
                      type: string
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: setServerMetadataItem
      summary: Set Server Metadata Item
      description: Sets a specific metadata item for a server
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Sets a specific metadata item for a server
                    marks: []
      x-gitbook-description-html: <p>Sets a specific metadata item for a server</p>
    delete:
      responses:
        "204":
          description: Metadata item deleted successfully
          x-gitbook-description-html: <p>Metadata item deleted successfully</p>
      operationId: deleteServerMetadataItem
      summary: Delete Server Metadata Item
      description: Deletes a specific metadata item from a server
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Deletes a specific metadata item from a server
                    marks: []
      x-gitbook-description-html: <p>Deletes a specific metadata item from a server</p>
    parameters:
      - $ref: "#/components/parameters/ServerId"
      - $ref: "#/components/parameters/OpenStackAPIVersion"
      - name: key
        description: The metadata key
        schema:
          type: string
        in: path
        required: true
        x-gitbook-description-html: <p>The metadata key</p>
  /servers/{server_id}/tags:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  tags:
                    type: array
                    items:
                      type: string
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: listServerTags
      summary: List Server Tags
      description: Lists all tags for a server
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Lists all tags for a server
                    marks: []
      x-gitbook-description-html: <p>Lists all tags for a server</p>
    put:
      requestBody:
        content:
          application/json:
            schema:
              required:
                - tags
              type: object
              properties:
                tags:
                  maxItems: 50
                  type: array
                  items:
                    type: string
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  tags:
                    type: array
                    items:
                      type: string
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: replaceServerTags
      summary: Replace Server Tags
      description: Replaces all tags for a server
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Replaces all tags for a server
                    marks: []
      x-gitbook-description-html: <p>Replaces all tags for a server</p>
    delete:
      responses:
        "204":
          description: All tags deleted successfully
          x-gitbook-description-html: <p>All tags deleted successfully</p>
      operationId: deleteAllServerTags
      summary: Delete All Server Tags
      description: Deletes all tags from a server
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Deletes all tags from a server
                    marks: []
      x-gitbook-description-html: <p>Deletes all tags from a server</p>
    parameters:
      - $ref: "#/components/parameters/ServerId"
      - $ref: "#/components/parameters/OpenStackAPIVersion"
  /servers/{server_id}/tags/{tag}:
    get:
      responses:
        "204":
          description: Tag exists
          x-gitbook-description-html: <p>Tag exists</p>
        "404":
          $ref: "#/components/responses/NotFound"
      operationId: checkServerTag
      summary: Check Server Tag Exists
      description: Checks if a tag exists on a server
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Checks if a tag exists on a server
                    marks: []
      x-gitbook-description-html: <p>Checks if a tag exists on a server</p>
    put:
      responses:
        "201":
          description: Tag added successfully
          x-gitbook-description-html: <p>Tag added successfully</p>
        "204":
          description: Tag already exists
          x-gitbook-description-html: <p>Tag already exists</p>
      operationId: addServerTag
      summary: Add Server Tag
      description: Adds a single tag to a server
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Adds a single tag to a server
                    marks: []
      x-gitbook-description-html: <p>Adds a single tag to a server</p>
    delete:
      responses:
        "204":
          description: Tag deleted successfully
          x-gitbook-description-html: <p>Tag deleted successfully</p>
      operationId: deleteServerTag
      summary: Delete Server Tag
      description: Deletes a single tag from a server
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Deletes a single tag from a server
                    marks: []
      x-gitbook-description-html: <p>Deletes a single tag from a server</p>
    parameters:
      - $ref: "#/components/parameters/ServerId"
      - $ref: "#/components/parameters/OpenStackAPIVersion"
      - name: tag
        description: The tag to add or remove
        schema:
          type: string
        in: path
        required: true
        x-gitbook-description-html: <p>The tag to add or remove</p>
  /flavors:
    get:
      parameters:
        - $ref: "#/components/parameters/OpenStackAPIVersion"
        - name: limit
          description: Requests a page size of items
          schema:
            minimum: 1
            type: integer
          in: query
          x-gitbook-description-html: <p>Requests a page size of items</p>
        - name: marker
          description: The ID of the last-seen item for pagination
          schema:
            type: string
          in: query
          x-gitbook-description-html: <p>The ID of the last-seen item for pagination</p>
        - name: sort_key
          description: Sorts by a flavor attribute
          schema:
            default: created_at
            enum:
              - created_at
              - flavorid
              - name
              - updated_at
            type: string
          in: query
          x-gitbook-description-html: <p>Sorts by a flavor attribute</p>
        - name: sort_dir
          description: Sort direction
          schema:
            default: asc
            enum:
              - asc
              - desc
            type: string
          in: query
          x-gitbook-description-html: <p>Sort direction</p>
        - name: min_disk
          description: Filters the response by a minimum disk space in GiB
          schema:
            type: integer
          in: query
          x-gitbook-description-html: <p>Filters the response by a minimum disk space in GiB</p>
        - name: min_ram
          description: Filters the response by a minimum RAM in MiB
          schema:
            type: integer
          in: query
          x-gitbook-description-html: <p>Filters the response by a minimum RAM in MiB</p>
        - name: is_public
          description: Filters the response by whether the flavor is public or private
          schema:
            type: boolean
          in: query
          x-gitbook-description-html: >-
            <p>Filters the response by whether the flavor is public or
            private</p>
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  flavors:
                    type: array
                    items:
                      $ref: "#/components/schemas/FlavorSummary"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: listFlavors
      summary: List Flavors
      description: Lists flavors with details
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Lists flavors with details
                    marks: []
      x-gitbook-description-html: <p>Lists flavors with details</p>
  /flavors/detail:
    get:
      parameters:
        - $ref: "#/components/parameters/OpenStackAPIVersion"
        - name: limit
          schema:
            minimum: 1
            type: integer
          in: query
        - name: marker
          schema:
            type: string
          in: query
        - name: sort_key
          schema:
            default: created_at
            enum:
              - created_at
              - flavorid
              - name
              - updated_at
            type: string
          in: query
        - name: sort_dir
          schema:
            default: asc
            enum:
              - asc
              - desc
            type: string
          in: query
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  flavors:
                    type: array
                    items:
                      $ref: "#/components/schemas/FlavorDetailed"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: listFlavorsDetailed
      summary: List Flavors (Detailed)
      description: Lists flavors with full details
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Lists flavors with full details
                    marks: []
      x-gitbook-description-html: <p>Lists flavors with full details</p>
  /flavors/{flavor_id}:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  flavor:
                    $ref: "#/components/schemas/FlavorDetailed"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
        "404":
          $ref: "#/components/responses/NotFound"
      operationId: getFlavor
      summary: Show Flavor Details
      description: Shows details for a flavor
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Shows details for a flavor
                    marks: []
      x-gitbook-description-html: <p>Shows details for a flavor</p>
    parameters:
      - name: flavor_id
        description: The UUID or name of the flavor
        schema:
          type: string
        in: path
        required: true
        x-gitbook-description-html: <p>The UUID or name of the flavor</p>
      - $ref: "#/components/parameters/OpenStackAPIVersion"
  /os-keypairs:
    get:
      parameters:
        - $ref: "#/components/parameters/OpenStackAPIVersion"
        - name: limit
          schema:
            minimum: 1
            type: integer
          in: query
        - name: marker
          schema:
            type: string
          in: query
        - name: user_id
          description: Filter the list by user ID (admin only)
          schema:
            type: string
          in: query
          x-gitbook-description-html: <p>Filter the list by user ID (admin only)</p>
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  keypairs:
                    type: array
                    items:
                      $ref: "#/components/schemas/KeypairSummary"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: listKeypairs
      summary: List Keypairs
      description: Lists keypairs that are associated with the project
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Lists keypairs that are associated with the project
                    marks: []
      x-gitbook-description-html: <p>Lists keypairs that are associated with the project</p>
    post:
      requestBody:
        content:
          application/json:
            schema:
              required:
                - keypair
              type: object
              properties:
                keypair:
                  $ref: "#/components/schemas/CreateKeypairRequest"
        required: true
      parameters:
        - $ref: "#/components/parameters/OpenStackAPIVersion"
      responses:
        "201":
          content:
            application/json:
              schema:
                type: object
                properties:
                  keypair:
                    $ref: "#/components/schemas/KeypairDetailed"
          description: Keypair created successfully
          x-gitbook-description-html: <p>Keypair created successfully</p>
      operationId: createKeypair
      summary: Create/Import Keypair
      description: Creates or imports a keypair
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Creates or imports a keypair
                    marks: []
      x-gitbook-description-html: <p>Creates or imports a keypair</p>
  /os-keypairs/{keypair_name}:
    get:
      parameters:
        - name: user_id
          description: User ID for the keypair (admin only)
          schema:
            type: string
          in: query
          x-gitbook-description-html: <p>User ID for the keypair (admin only)</p>
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  keypair:
                    $ref: "#/components/schemas/KeypairDetailed"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: getKeypair
      summary: Show Keypair Details
      description: Shows details for a keypair
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Shows details for a keypair
                    marks: []
      x-gitbook-description-html: <p>Shows details for a keypair</p>
    delete:
      parameters:
        - name: user_id
          description: User ID for the keypair (admin only)
          schema:
            type: string
          in: query
          x-gitbook-description-html: <p>User ID for the keypair (admin only)</p>
      responses:
        "202":
          description: Keypair deletion accepted (for backward compatibility)
          x-gitbook-description-html: <p>Keypair deletion accepted (for backward compatibility)</p>
        "204":
          description: Keypair deleted successfully
          x-gitbook-description-html: <p>Keypair deleted successfully</p>
      operationId: deleteKeypair
      summary: Delete Keypair
      description: Deletes a keypair
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Deletes a keypair
                    marks: []
      x-gitbook-description-html: <p>Deletes a keypair</p>
    parameters:
      - name: keypair_name
        description: The name of the keypair
        schema:
          type: string
        in: path
        required: true
        x-gitbook-description-html: <p>The name of the keypair</p>
      - $ref: "#/components/parameters/OpenStackAPIVersion"
  /limits:
    get:
      parameters:
        - $ref: "#/components/parameters/OpenStackAPIVersion"
        - name: tenant_id
          description: Project ID to get limits for (admin only)
          schema:
            type: string
          in: query
          x-gitbook-description-html: <p>Project ID to get limits for (admin only)</p>
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  limits:
                    $ref: "#/components/schemas/Limits"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: getLimits
      summary: Show Rate and Absolute Limits
      description: Shows rate and absolute limits for the project
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Shows rate and absolute limits for the project
                    marks: []
      x-gitbook-description-html: <p>Shows rate and absolute limits for the project</p>
  /os-availability-zone:
    get:
      parameters:
        - $ref: "#/components/parameters/OpenStackAPIVersion"
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  availabilityZoneInfo:
                    type: array
                    items:
                      $ref: "#/components/schemas/AvailabilityZone"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: listAvailabilityZones
      summary: List Availability Zones
      description: Lists availability zones
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Lists availability zones
                    marks: []
      x-gitbook-description-html: <p>Lists availability zones</p>
  /os-availability-zone/detail:
    get:
      parameters:
        - $ref: "#/components/parameters/OpenStackAPIVersion"
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  availabilityZoneInfo:
                    type: array
                    items:
                      $ref: "#/components/schemas/AvailabilityZoneDetailed"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: listAvailabilityZonesDetailed
      summary: List Availability Zones (Detailed)
      description: Lists availability zones with detailed information (admin only)
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: >-
                      Lists availability zones with detailed information (admin
                      only)
                    marks: []
      x-gitbook-description-html: <p>Lists availability zones with detailed information (admin only)</p>
  /os-hypervisors:
    get:
      parameters:
        - $ref: "#/components/parameters/OpenStackAPIVersion"
        - name: limit
          schema:
            minimum: 1
            type: integer
          in: query
        - name: marker
          schema:
            type: string
          in: query
        - name: hypervisor_hostname_pattern
          description: Filter hypervisors by hostname pattern
          schema:
            type: string
          in: query
          x-gitbook-description-html: <p>Filter hypervisors by hostname pattern</p>
        - name: with_servers
          description: Include servers running on each hypervisor
          schema:
            type: boolean
          in: query
          x-gitbook-description-html: <p>Include servers running on each hypervisor</p>
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  hypervisors:
                    type: array
                    items:
                      $ref: "#/components/schemas/HypervisorSummary"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: listHypervisors
      summary: List Hypervisors
      description: Lists hypervisors (admin only)
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Lists hypervisors (admin only)
                    marks: []
      x-gitbook-description-html: <p>Lists hypervisors (admin only)</p>
  /os-hypervisors/detail:
    get:
      parameters:
        - $ref: "#/components/parameters/OpenStackAPIVersion"
        - name: limit
          schema:
            minimum: 1
            type: integer
          in: query
        - name: marker
          schema:
            type: string
          in: query
        - name: hypervisor_hostname_pattern
          schema:
            type: string
          in: query
        - name: with_servers
          schema:
            type: boolean
          in: query
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  hypervisors:
                    type: array
                    items:
                      $ref: "#/components/schemas/HypervisorDetailed"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: listHypervisorsDetailed
      summary: List Hypervisors (Detailed)
      description: Lists hypervisors with detailed information (admin only)
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Lists hypervisors with detailed information (admin only)
                    marks: []
      x-gitbook-description-html: <p>Lists hypervisors with detailed information (admin only)</p>
  /os-hypervisors/{hypervisor_id}:
    get:
      parameters:
        - name: with_servers
          description: Include servers running on the hypervisor
          schema:
            type: boolean
          in: query
          x-gitbook-description-html: <p>Include servers running on the hypervisor</p>
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  hypervisor:
                    $ref: "#/components/schemas/HypervisorDetailed"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: getHypervisor
      summary: Show Hypervisor Details
      description: Shows details for a hypervisor (admin only)
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Shows details for a hypervisor (admin only)
                    marks: []
      x-gitbook-description-html: <p>Shows details for a hypervisor (admin only)</p>
    parameters:
      - name: hypervisor_id
        description: The ID or UUID of the hypervisor
        schema:
          type: string
        in: path
        required: true
        x-gitbook-description-html: <p>The ID or UUID of the hypervisor</p>
      - $ref: "#/components/parameters/OpenStackAPIVersion"
  /os-hypervisors/{hypervisor_id}/uptime:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  hypervisor:
                    $ref: "#/components/schemas/HypervisorUptime"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: getHypervisorUptime
      summary: Show Hypervisor Uptime
      description: Shows uptime for a hypervisor (admin only)
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Shows uptime for a hypervisor (admin only)
                    marks: []
      x-gitbook-description-html: <p>Shows uptime for a hypervisor (admin only)</p>
    parameters:
      - name: hypervisor_id
        description: The ID or UUID of the hypervisor
        schema:
          type: string
        in: path
        required: true
        x-gitbook-description-html: <p>The ID or UUID of the hypervisor</p>
      - $ref: "#/components/parameters/OpenStackAPIVersion"
  /os-services:
    get:
      parameters:
        - $ref: "#/components/parameters/OpenStackAPIVersion"
        - name: host
          description: Filter services by host name
          schema:
            type: string
          in: query
          x-gitbook-description-html: <p>Filter services by host name</p>
        - name: binary
          description: Filter services by binary name
          schema:
            type: string
          in: query
          x-gitbook-description-html: <p>Filter services by binary name</p>
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  services:
                    type: array
                    items:
                      $ref: "#/components/schemas/Service"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: listServices
      summary: List Services
      description: Lists services (admin only)
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Lists services (admin only)
                    marks: []
      x-gitbook-description-html: <p>Lists services (admin only)</p>
  /os-services/{service_id}:
    put:
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: "#/components/schemas/EnableServiceRequest"
                - $ref: "#/components/schemas/DisableServiceRequest"
                - $ref: "#/components/schemas/ForceDownServiceRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  service:
                    $ref: "#/components/schemas/Service"
          description: Service updated successfully
          x-gitbook-description-html: <p>Service updated successfully</p>
      operationId: updateService
      summary: Update Service
      description: Updates a service (admin only)
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Updates a service (admin only)
                    marks: []
      x-gitbook-description-html: <p>Updates a service (admin only)</p>
    delete:
      responses:
        "204":
          description: Service deleted successfully
          x-gitbook-description-html: <p>Service deleted successfully</p>
      operationId: deleteService
      summary: Delete Service
      description: Deletes a service (admin only)
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Deletes a service (admin only)
                    marks: []
      x-gitbook-description-html: <p>Deletes a service (admin only)</p>
    parameters:
      - name: service_id
        description: The UUID of the service
        schema:
          format: uuid
          type: string
        in: path
        required: true
        x-gitbook-description-html: <p>The UUID of the service</p>
      - $ref: "#/components/parameters/OpenStackAPIVersion"
  /os-aggregates:
    get:
      parameters:
        - $ref: "#/components/parameters/OpenStackAPIVersion"
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  aggregates:
                    type: array
                    items:
                      $ref: "#/components/schemas/Aggregate"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: listAggregates
      summary: List Host Aggregates
      description: Lists host aggregates (admin only)
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Lists host aggregates (admin only)
                    marks: []
      x-gitbook-description-html: <p>Lists host aggregates (admin only)</p>
    post:
      requestBody:
        content:
          application/json:
            schema:
              required:
                - aggregate
              type: object
              properties:
                aggregate:
                  $ref: "#/components/schemas/CreateAggregateRequest"
        required: true
      parameters:
        - $ref: "#/components/parameters/OpenStackAPIVersion"
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  aggregate:
                    $ref: "#/components/schemas/Aggregate"
          description: Aggregate created successfully
          x-gitbook-description-html: <p>Aggregate created successfully</p>
      operationId: createAggregate
      summary: Create Host Aggregate
      description: Creates a host aggregate (admin only)
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Creates a host aggregate (admin only)
                    marks: []
      x-gitbook-description-html: <p>Creates a host aggregate (admin only)</p>
  /os-aggregates/{aggregate_id}:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  aggregate:
                    $ref: "#/components/schemas/Aggregate"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: getAggregate
      summary: Show Host Aggregate Details
      description: Shows details for a host aggregate (admin only)
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Shows details for a host aggregate (admin only)
                    marks: []
      x-gitbook-description-html: <p>Shows details for a host aggregate (admin only)</p>
    put:
      requestBody:
        content:
          application/json:
            schema:
              required:
                - aggregate
              type: object
              properties:
                aggregate:
                  $ref: "#/components/schemas/UpdateAggregateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  aggregate:
                    $ref: "#/components/schemas/Aggregate"
          description: Aggregate updated successfully
          x-gitbook-description-html: <p>Aggregate updated successfully</p>
      operationId: updateAggregate
      summary: Update Host Aggregate
      description: Updates a host aggregate (admin only)
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Updates a host aggregate (admin only)
                    marks: []
      x-gitbook-description-html: <p>Updates a host aggregate (admin only)</p>
    delete:
      responses:
        "200":
          description: Aggregate deleted successfully (for backward compatibility)
          x-gitbook-description-html: <p>Aggregate deleted successfully (for backward compatibility)</p>
      operationId: deleteAggregate
      summary: Delete Host Aggregate
      description: Deletes a host aggregate (admin only)
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Deletes a host aggregate (admin only)
                    marks: []
      x-gitbook-description-html: <p>Deletes a host aggregate (admin only)</p>
    parameters:
      - name: aggregate_id
        description: The ID of the aggregate
        schema:
          type: string
        in: path
        required: true
        x-gitbook-description-html: <p>The ID of the aggregate</p>
      - $ref: "#/components/parameters/OpenStackAPIVersion"
  /os-aggregates/{aggregate_id}/action:
    post:
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: "#/components/schemas/AddHostAction"
                - $ref: "#/components/schemas/RemoveHostAction"
                - $ref: "#/components/schemas/SetMetadataAction"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  aggregate:
                    $ref: "#/components/schemas/Aggregate"
          description: Action performed successfully
          x-gitbook-description-html: <p>Action performed successfully</p>
      operationId: performAggregateAction
      summary: Perform Host Aggregate Action
      description: Performs actions on a host aggregate (admin only)
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Performs actions on a host aggregate (admin only)
                    marks: []
      x-gitbook-description-html: <p>Performs actions on a host aggregate (admin only)</p>
    parameters:
      - name: aggregate_id
        description: The ID of the aggregate
        schema:
          type: string
        in: path
        required: true
        x-gitbook-description-html: <p>The ID of the aggregate</p>
      - $ref: "#/components/parameters/OpenStackAPIVersion"
  /os-server-groups:
    get:
      parameters:
        - $ref: "#/components/parameters/OpenStackAPIVersion"
        - name: all_projects
          description: Shows server groups for all projects (admin only)
          schema:
            type: boolean
          in: query
          x-gitbook-description-html: <p>Shows server groups for all projects (admin only)</p>
        - name: limit
          schema:
            minimum: 1
            type: integer
          in: query
        - name: offset
          schema:
            minimum: 0
            type: integer
          in: query
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  server_groups:
                    type: array
                    items:
                      $ref: "#/components/schemas/ServerGroup"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: listServerGroups
      summary: List Server Groups
      description: Lists server groups
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Lists server groups
                    marks: []
      x-gitbook-description-html: <p>Lists server groups</p>
    post:
      requestBody:
        content:
          application/json:
            schema:
              required:
                - server_group
              type: object
              properties:
                server_group:
                  $ref: "#/components/schemas/CreateServerGroupRequest"
        required: true
      parameters:
        - $ref: "#/components/parameters/OpenStackAPIVersion"
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  server_group:
                    $ref: "#/components/schemas/ServerGroup"
          description: Server group created successfully
          x-gitbook-description-html: <p>Server group created successfully</p>
      operationId: createServerGroup
      summary: Create Server Group
      description: Creates a server group
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Creates a server group
                    marks: []
      x-gitbook-description-html: <p>Creates a server group</p>
  /os-server-groups/{server_group_id}:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  server_group:
                    $ref: "#/components/schemas/ServerGroup"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: getServerGroup
      summary: Show Server Group Details
      description: Shows details for a server group
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Shows details for a server group
                    marks: []
      x-gitbook-description-html: <p>Shows details for a server group</p>
    delete:
      responses:
        "204":
          description: Server group deleted successfully
          x-gitbook-description-html: <p>Server group deleted successfully</p>
      operationId: deleteServerGroup
      summary: Delete Server Group
      description: Deletes a server group
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Deletes a server group
                    marks: []
      x-gitbook-description-html: <p>Deletes a server group</p>
    parameters:
      - name: server_group_id
        description: The UUID of the server group
        schema:
          format: uuid
          type: string
        in: path
        required: true
        x-gitbook-description-html: <p>The UUID of the server group</p>
      - $ref: "#/components/parameters/OpenStackAPIVersion"
  /os-quota-sets/{project_id}:
    get:
      parameters:
        - name: user_id
          description: User ID to get quotas for (admin only)
          schema:
            type: string
          in: query
          x-gitbook-description-html: <p>User ID to get quotas for (admin only)</p>
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  quota_set:
                    $ref: "#/components/schemas/QuotaSet"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: getQuotas
      summary: Show Quotas
      description: Shows quotas for a project
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Shows quotas for a project
                    marks: []
      x-gitbook-description-html: <p>Shows quotas for a project</p>
    put:
      requestBody:
        content:
          application/json:
            schema:
              required:
                - quota_set
              type: object
              properties:
                quota_set:
                  $ref: "#/components/schemas/UpdateQuotaSetRequest"
        required: true
      parameters:
        - name: user_id
          description: User ID to update quotas for
          schema:
            type: string
          in: query
          x-gitbook-description-html: <p>User ID to update quotas for</p>
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  quota_set:
                    $ref: "#/components/schemas/QuotaSet"
          description: Quotas updated successfully
          x-gitbook-description-html: <p>Quotas updated successfully</p>
      operationId: updateQuotas
      summary: Update Quotas
      description: Updates quotas for a project (admin only)
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Updates quotas for a project (admin only)
                    marks: []
      x-gitbook-description-html: <p>Updates quotas for a project (admin only)</p>
    delete:
      parameters:
        - name: user_id
          description: User ID to revert quotas for
          schema:
            type: string
          in: query
          x-gitbook-description-html: <p>User ID to revert quotas for</p>
      responses:
        "202":
          description: Quotas reverted successfully
          x-gitbook-description-html: <p>Quotas reverted successfully</p>
      operationId: revertQuotas
      summary: Revert Quotas to Defaults
      description: Reverts quotas for a project to default values (admin only)
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: >-
                      Reverts quotas for a project to default values (admin
                      only)
                    marks: []
      x-gitbook-description-html: <p>Reverts quotas for a project to default values (admin only)</p>
    parameters:
      - name: project_id
        description: The UUID of the project
        schema:
          format: uuid
          type: string
        in: path
        required: true
        x-gitbook-description-html: <p>The UUID of the project</p>
      - $ref: "#/components/parameters/OpenStackAPIVersion"
  /os-quota-sets/{project_id}/defaults:
    get:
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  quota_set:
                    $ref: "#/components/schemas/QuotaSet"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: getDefaultQuotas
      summary: Show Default Quotas
      description: Shows default quotas for a project
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Shows default quotas for a project
                    marks: []
      x-gitbook-description-html: <p>Shows default quotas for a project</p>
    parameters:
      - name: project_id
        description: The UUID of the project
        schema:
          format: uuid
          type: string
        in: path
        required: true
        x-gitbook-description-html: <p>The UUID of the project</p>
      - $ref: "#/components/parameters/OpenStackAPIVersion"
  /os-quota-sets/{project_id}/detail:
    get:
      parameters:
        - name: user_id
          description: User ID to get quotas for (admin only)
          schema:
            type: string
          in: query
          x-gitbook-description-html: <p>User ID to get quotas for (admin only)</p>
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  quota_set:
                    $ref: "#/components/schemas/QuotaSetDetailed"
          description: Successful response
          x-gitbook-description-html: <p>Successful response</p>
      operationId: getQuotasDetail
      summary: Show Quotas with Usage
      description: Shows quotas for a project with usage information
      x-gitbook-description-document:
        object: document
        data:
          schemaVersion: 9
        nodes:
          - object: block
            type: paragraph
            isVoid: false
            data: {}
            nodes:
              - object: text
                leaves:
                  - object: leaf
                    text: Shows quotas for a project with usage information
                    marks: []
      x-gitbook-description-html: <p>Shows quotas for a project with usage information</p>
    parameters:
      - name: project_id
        description: The UUID of the project
        schema:
          format: uuid
          type: string
        in: path
        required: true
        x-gitbook-description-html: <p>The UUID of the project</p>
      - $ref: "#/components/parameters/OpenStackAPIVersion"
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        computeFault:
          type: object
          properties:
            code:
              type: integer
            message:
              type: string
            details:
              type: string
    Version:
      type: object
      properties:
        id:
          description: A common name for the version
          type: string
          x-gitbook-description-html: <p>A common name for the version</p>
        status:
          description: The status of this API version
          enum:
            - CURRENT
            - DEPRECATED
          type: string
          x-gitbook-description-html: <p>The status of this API version</p>
        version:
          description: The maximum microversion supported (empty for legacy v2.0)
          type: string
          x-gitbook-description-html: <p>The maximum microversion supported (empty for legacy v2.0)</p>
        min_version:
          description: The minimum microversion supported (empty for legacy v2.0)
          type: string
          x-gitbook-description-html: <p>The minimum microversion supported (empty for legacy v2.0)</p>
        updated:
          format: date-time
          description: The date and time when the version was updated
          type: string
          x-gitbook-description-html: <p>The date and time when the version was updated</p>
        links:
          type: array
          items:
            $ref: "#/components/schemas/Link"
    Link:
      type: object
      properties:
        href:
          format: uri
          type: string
        rel:
          enum:
            - self
            - bookmark
            - next
            - prev
          type: string
        type:
          type: string
    ServerSummary:
      type: object
      properties:
        id:
          format: uuid
          description: The UUID of the server
          type: string
          x-gitbook-description-html: <p>The UUID of the server</p>
        name:
          description: The server name
          type: string
          x-gitbook-description-html: <p>The server name</p>
        links:
          type: array
          items:
            $ref: "#/components/schemas/Link"
    ServerDetailed:
      allOf:
        - $ref: "#/components/schemas/ServerSummary"
        - type: object
          properties:
            accessIPv4:
              format: ipv4
              description: IPv4 address that should be used to access this server
              type: string
              x-gitbook-description-html: <p>IPv4 address that should be used to access this server</p>
            accessIPv6:
              format: ipv6
              description: IPv6 address that should be used to access this server
              type: string
              x-gitbook-description-html: <p>IPv6 address that should be used to access this server</p>
            addresses:
              description: The addresses for the server
              type: object
              additionalProperties:
                type: array
                items:
                  $ref: "#/components/schemas/NetworkAddress"
              x-gitbook-description-html: <p>The addresses for the server</p>
            config_drive:
              description: Indicates whether a config drive was used
              type: string
              x-gitbook-description-html: <p>Indicates whether a config drive was used</p>
            created:
              format: date-time
              description: The date and time when the resource was created
              type: string
              x-gitbook-description-html: <p>The date and time when the resource was created</p>
            flavor:
              oneOf:
                - $ref: "#/components/schemas/FlavorReference"
                - $ref: "#/components/schemas/FlavorDetailed"
            hostId:
              description: An ID string representing the host (hashed)
              type: string
              x-gitbook-description-html: <p>An ID string representing the host (hashed)</p>
            image:
              $ref: "#/components/schemas/ImageReference"
            key_name:
              nullable: true
              description: The name of associated key pair
              type: string
              x-gitbook-description-html: <p>The name of associated key pair</p>
            metadata:
              description: Server metadata key-value pairs
              type: object
              additionalProperties:
                type: string
              x-gitbook-description-html: <p>Server metadata key-value pairs</p>
            status:
              description: The server status
              enum:
                - ACTIVE
                - BUILD
                - DELETED
                - ERROR
                - HARD_REBOOT
                - MIGRATING
                - PASSWORD
                - PAUSED
                - REBOOT
                - REBUILD
                - RESCUE
                - RESIZE
                - REVERT_RESIZE
                - SHELVED
                - SHELVED_OFFLOADED
                - SHUTOFF
                - SOFT_DELETED
                - SUSPENDED
                - UNKNOWN
                - VERIFY_RESIZE
              type: string
              x-gitbook-description-html: <p>The server status</p>
            tenant_id:
              format: uuid
              description: The UUID of the tenant
              type: string
              x-gitbook-description-html: <p>The UUID of the tenant</p>
            user_id:
              format: uuid
              description: The user ID of the user who owns the server
              type: string
              x-gitbook-description-html: <p>The user ID of the user who owns the server</p>
            updated:
              format: date-time
              description: The date and time when the resource was updated
              type: string
              x-gitbook-description-html: <p>The date and time when the resource was updated</p>
            OS-DCF:diskConfig:
              description: Disk configuration
              enum:
                - AUTO
                - MANUAL
              type: string
              x-gitbook-description-html: <p>Disk configuration</p>
            OS-EXT-AZ:availability_zone:
              description: The availability zone name
              type: string
              x-gitbook-description-html: <p>The availability zone name</p>
            OS-EXT-SRV-ATTR:host:
              nullable: true
              description: The name of the compute host (admin only)
              type: string
              x-gitbook-description-html: <p>The name of the compute host (admin only)</p>
            OS-EXT-SRV-ATTR:hostname:
              nullable: true
              description: The hostname of the instance
              type: string
              x-gitbook-description-html: <p>The hostname of the instance</p>
            OS-EXT-SRV-ATTR:hypervisor_hostname:
              nullable: true
              description: The hypervisor host name (admin only)
              type: string
              x-gitbook-description-html: <p>The hypervisor host name (admin only)</p>
            OS-EXT-SRV-ATTR:instance_name:
              nullable: true
              description: The instance name (admin only)
              type: string
              x-gitbook-description-html: <p>The instance name (admin only)</p>
            OS-EXT-SRV-ATTR:kernel_id:
              nullable: true
              description: The UUID of the kernel image when using an AMI
              type: string
              x-gitbook-description-html: <p>The UUID of the kernel image when using an AMI</p>
            OS-EXT-SRV-ATTR:launch_index:
              nullable: true
              description: The sequence in which the servers were launched
              type: integer
              x-gitbook-description-html: <p>The sequence in which the servers were launched</p>
            OS-EXT-SRV-ATTR:ramdisk_id:
              nullable: true
              description: The UUID of the ramdisk image when using an AMI
              type: string
              x-gitbook-description-html: <p>The UUID of the ramdisk image when using an AMI</p>
            OS-EXT-SRV-ATTR:reservation_id:
              nullable: true
              description: The reservation id for the server
              type: string
              x-gitbook-description-html: <p>The reservation id for the server</p>
            OS-EXT-SRV-ATTR:root_device_name:
              nullable: true
              description: The root device name for the instance
              type: string
              x-gitbook-description-html: <p>The root device name for the instance</p>
            OS-EXT-SRV-ATTR:user_data:
              nullable: true
              description: The user_data the instance was created with
              type: string
              x-gitbook-description-html: <p>The user_data the instance was created with</p>
            OS-EXT-STS:power_state:
              description: >
                The power state of the instance:

                0: NOSTATE, 1: RUNNING, 3: PAUSED, 4: SHUTDOWN, 6: CRASHED, 7:
                SUSPENDED
              enum:
                - 0
                - 1
                - 3
                - 4
                - 6
                - 7
              type: integer
              x-gitbook-description-html: >-
                <p>The power state of the instance:

                0: NOSTATE, 1: RUNNING, 3: PAUSED, 4: SHUTDOWN, 6: CRASHED, 7:
                SUSPENDED</p>
            OS-EXT-STS:task_state:
              nullable: true
              description: The task state of the instance
              type: string
              x-gitbook-description-html: <p>The task state of the instance</p>
            OS-EXT-STS:vm_state:
              description: The VM state
              type: string
              x-gitbook-description-html: <p>The VM state</p>
            os-extended-volumes:volumes_attached:
              description: The attached volumes
              type: array
              items:
                $ref: "#/components/schemas/AttachedVolume"
              x-gitbook-description-html: <p>The attached volumes</p>
            OS-SRV-USG:launched_at:
              nullable: true
              format: date-time
              description: The date and time when the server was launched
              type: string
              x-gitbook-description-html: <p>The date and time when the server was launched</p>
            OS-SRV-USG:terminated_at:
              nullable: true
              format: date-time
              description: The date and time when the server was deleted
              type: string
              x-gitbook-description-html: <p>The date and time when the server was deleted</p>
            fault:
              $ref: "#/components/schemas/ServerFault"
            locked:
              description: True if the instance is locked
              type: boolean
              x-gitbook-description-html: <p>True if the instance is locked</p>
            locked_reason:
              nullable: true
              description: The reason behind locking a server
              type: string
              x-gitbook-description-html: <p>The reason behind locking a server</p>
            host_status:
              nullable: true
              description: The host status (admin only)
              enum:
                - UP
                - DOWN
                - MAINTENANCE
                - UNKNOWN
                - ""
              type: string
              x-gitbook-description-html: <p>The host status (admin only)</p>
            description:
              nullable: true
              description: The description of the server
              type: string
              x-gitbook-description-html: <p>The description of the server</p>
            tags:
              description: A list of tags
              maxItems: 50
              type: array
              items:
                type: string
              x-gitbook-description-html: <p>A list of tags</p>
            trusted_image_certificates:
              nullable: true
              description: A list of trusted certificate IDs
              maxItems: 50
              type: array
              items:
                format: uuid
                type: string
              x-gitbook-description-html: <p>A list of trusted certificate IDs</p>
            progress:
              nullable: true
              description: A percentage value of the operation progress
              maximum: 100
              minimum: 0
              type: integer
              x-gitbook-description-html: <p>A percentage value of the operation progress</p>
            security_groups:
              description: One or more security groups
              type: array
              items:
                $ref: "#/components/schemas/SecurityGroup"
              x-gitbook-description-html: <p>One or more security groups</p>
            pinned_availability_zone:
              nullable: true
              description: The availability zone requested during server creation
              type: string
              x-gitbook-description-html: <p>The availability zone requested during server creation</p>
            scheduler_hints:
              nullable: true
              description: >-
                The dictionary of hints sent to the scheduler during server
                creation time
              type: object
              x-gitbook-description-html: >-
                <p>The dictionary of hints sent to the scheduler during server
                creation time</p>
    NetworkAddress:
      type: object
      properties:
        addr:
          description: The IP address
          type: string
          x-gitbook-description-html: <p>The IP address</p>
        version:
          description: The IP version
          enum:
            - 4
            - 6
          type: integer
          x-gitbook-description-html: <p>The IP version</p>
        OS-EXT-IPS:type:
          description: The type of address
          enum:
            - fixed
            - floating
          type: string
          x-gitbook-description-html: <p>The type of address</p>
        OS-EXT-IPS-MAC:mac_addr:
          description: The MAC address
          type: string
          x-gitbook-description-html: <p>The MAC address</p>
    FlavorReference:
      type: object
      properties:
        id:
          description: The ID of the flavor
          type: string
          x-gitbook-description-html: <p>The ID of the flavor</p>
        links:
          type: array
          items:
            $ref: "#/components/schemas/Link"
    FlavorSummary:
      type: object
      properties:
        id:
          description: The ID of the flavor
          type: string
          x-gitbook-description-html: <p>The ID of the flavor</p>
        name:
          description: The flavor name
          type: string
          x-gitbook-description-html: <p>The flavor name</p>
        links:
          type: array
          items:
            $ref: "#/components/schemas/Link"
    FlavorDetailed:
      allOf:
        - $ref: "#/components/schemas/FlavorSummary"
        - type: object
          properties:
            disk:
              description: The size of the root disk in GiB
              type: integer
              x-gitbook-description-html: <p>The size of the root disk in GiB</p>
            ephemeral:
              description: The size of the ephemeral disk in GiB
              type: integer
              x-gitbook-description-html: <p>The size of the ephemeral disk in GiB</p>
            ram:
              description: The amount of RAM in MiB
              type: integer
              x-gitbook-description-html: <p>The amount of RAM in MiB</p>
            swap:
              description: The size of a dedicated swap disk in MiB
              type: integer
              x-gitbook-description-html: <p>The size of a dedicated swap disk in MiB</p>
            vcpus:
              description: The number of virtual CPUs
              type: integer
              x-gitbook-description-html: <p>The number of virtual CPUs</p>
            original_name:
              description: The display name of a flavor
              type: string
              x-gitbook-description-html: <p>The display name of a flavor</p>
            extra_specs:
              description: A dictionary of the flavor's extra-specs key-and-value pairs
              type: object
              additionalProperties:
                type: string
              x-gitbook-description-html: >-
                <p>A dictionary of the flavor's extra-specs key-and-value
                pairs</p>
            OS-FLV-DISABLED:disabled:
              description: Whether the flavor is disabled
              type: boolean
              x-gitbook-description-html: <p>Whether the flavor is disabled</p>
            OS-FLV-EXT-DATA:ephemeral:
              description: The size of the ephemeral disk
              type: integer
              x-gitbook-description-html: <p>The size of the ephemeral disk</p>
            os-flavor-access:is_public:
              description: Whether the flavor is public
              type: boolean
              x-gitbook-description-html: <p>Whether the flavor is public</p>
            rxtx_factor:
              description: The receive/transmit factor
              type: number
              x-gitbook-description-html: <p>The receive/transmit factor</p>
    ImageReference:
      type: object
      properties:
        id:
          format: uuid
          description: The UUID of the image
          type: string
          x-gitbook-description-html: <p>The UUID of the image</p>
        links:
          type: array
          items:
            $ref: "#/components/schemas/Link"
        properties:
          description: Image properties
          type: object
          x-gitbook-description-html: <p>Image properties</p>
    AttachedVolume:
      type: object
      properties:
        id:
          format: uuid
          description: The attached volume ID
          type: string
          x-gitbook-description-html: <p>The attached volume ID</p>
        delete_on_termination:
          description: Whether the volume will be deleted when the server is deleted
          type: boolean
          x-gitbook-description-html: <p>Whether the volume will be deleted when the server is deleted</p>
    ServerFault:
      type: object
      properties:
        code:
          description: The error response code
          type: integer
          x-gitbook-description-html: <p>The error response code</p>
        message:
          description: The error message
          type: string
          x-gitbook-description-html: <p>The error message</p>
        details:
          description: The stack trace
          type: string
          x-gitbook-description-html: <p>The stack trace</p>
        created:
          format: date-time
          description: The date and time when the exception was raised
          type: string
          x-gitbook-description-html: <p>The date and time when the exception was raised</p>
    SecurityGroup:
      type: object
      properties:
        name:
          description: The security group name
          type: string
          x-gitbook-description-html: <p>The security group name</p>
    CreateServerRequest:
      required:
        - name
        - flavorRef
      type: object
      properties:
        name:
          description: The server name
          type: string
          x-gitbook-description-html: <p>The server name</p>
        imageRef:
          format: uuid
          description: The UUID of the image (not required for boot from volume)
          type: string
          x-gitbook-description-html: <p>The UUID of the image (not required for boot from volume)</p>
        flavorRef:
          description: The flavor reference (UUID or full URL)
          type: string
          x-gitbook-description-html: <p>The flavor reference (UUID or full URL)</p>
        adminPass:
          description: The administrative password of the server
          type: string
          x-gitbook-description-html: <p>The administrative password of the server</p>
        networks:
          oneOf:
            - description: Special network allocation values
              enum:
                - auto
                - none
              type: string
              x-gitbook-description-html: <p>Special network allocation values</p>
            - description: A list of networks
              type: array
              items:
                $ref: "#/components/schemas/ServerNetwork"
              x-gitbook-description-html: <p>A list of networks</p>
        block_device_mapping_v2:
          description: Block device mapping for boot from volume
          type: array
          items:
            $ref: "#/components/schemas/BlockDeviceMappingV2"
          x-gitbook-description-html: <p>Block device mapping for boot from volume</p>
        availability_zone:
          description: The availability zone from which to launch the server
          type: string
          x-gitbook-description-html: <p>The availability zone from which to launch the server</p>
        user_data:
          format: byte
          description: Configuration information or scripts (Base64 encoded)
          type: string
          x-gitbook-description-html: <p>Configuration information or scripts (Base64 encoded)</p>
        metadata:
          description: Metadata key and value pairs
          type: object
          additionalProperties:
            type: string
          x-gitbook-description-html: <p>Metadata key and value pairs</p>
        personality:
          description: File path and contents to inject (deprecated in 2.57)
          type: array
          items:
            $ref: "#/components/schemas/PersonalityFile"
          x-gitbook-description-html: <p>File path and contents to inject (deprecated in 2.57)</p>
        security_groups:
          description: One or more security groups
          type: array
          items:
            type: object
            properties:
              name:
                type: string
          x-gitbook-description-html: <p>One or more security groups</p>
        key_name:
          description: Key pair name
          type: string
          x-gitbook-description-html: <p>Key pair name</p>
        config_drive:
          description: Indicates whether a config drive enables metadata injection
          type: boolean
          x-gitbook-description-html: <p>Indicates whether a config drive enables metadata injection</p>
        OS-DCF:diskConfig:
          description: Controls how the API partitions the disk
          enum:
            - AUTO
            - MANUAL
          type: string
          x-gitbook-description-html: <p>Controls how the API partitions the disk</p>
        accessIPv4:
          format: ipv4
          description: IPv4 address that should be used to access this server
          type: string
          x-gitbook-description-html: <p>IPv4 address that should be used to access this server</p>
        accessIPv6:
          format: ipv6
          description: IPv6 address that should be used to access this server
          type: string
          x-gitbook-description-html: <p>IPv6 address that should be used to access this server</p>
        description:
          description: A free form description of the server
          type: string
          x-gitbook-description-html: <p>A free form description of the server</p>
        hostname:
          description: The hostname to configure for the instance
          type: string
          x-gitbook-description-html: <p>The hostname to configure for the instance</p>
        tags:
          description: A list of tags
          maxItems: 50
          type: array
          items:
            type: string
          x-gitbook-description-html: <p>A list of tags</p>
        trusted_image_certificates:
          description: A list of trusted certificate IDs
          maxItems: 50
          type: array
          items:
            format: uuid
            type: string
          x-gitbook-description-html: <p>A list of trusted certificate IDs</p>
        host:
          description: The name of the compute service host (admin only)
          type: string
          x-gitbook-description-html: <p>The name of the compute service host (admin only)</p>
        hypervisor_hostname:
          description: The hostname of the hypervisor (admin only)
          type: string
          x-gitbook-description-html: <p>The hostname of the hypervisor (admin only)</p>
    ServerNetwork:
      type: object
      properties:
        uuid:
          format: uuid
          description: The UUID of the network
          type: string
          x-gitbook-description-html: <p>The UUID of the network</p>
        port:
          format: uuid
          description: The UUID of an existing port
          type: string
          x-gitbook-description-html: <p>The UUID of an existing port</p>
        fixed_ip:
          format: ipv4
          description: A fixed IPv4 address for the NIC
          type: string
          x-gitbook-description-html: <p>A fixed IPv4 address for the NIC</p>
        tag:
          description: A device role tag for the network interface
          type: string
          x-gitbook-description-html: <p>A device role tag for the network interface</p>
    BlockDeviceMappingV2:
      required:
        - boot_index
      type: object
      properties:
        boot_index:
          description: The boot order of the device
          minimum: 0
          type: integer
          x-gitbook-description-html: <p>The boot order of the device</p>
        uuid:
          format: uuid
          description: The UUID of the source resource
          type: string
          x-gitbook-description-html: <p>The UUID of the source resource</p>
        source_type:
          description: The source type of the block device
          enum:
            - volume
            - image
            - snapshot
            - blank
          type: string
          x-gitbook-description-html: <p>The source type of the block device</p>
        destination_type:
          description: Where the block device mapping will reside
          enum:
            - volume
            - local
          type: string
          x-gitbook-description-html: <p>Where the block device mapping will reside</p>
        delete_on_termination:
          description: Whether to delete the volume when the server is destroyed
          default: false
          type: boolean
          x-gitbook-description-html: <p>Whether to delete the volume when the server is destroyed</p>
        device_name:
          description: A path to the device for the volume
          type: string
          x-gitbook-description-html: <p>A path to the device for the volume</p>
        device_type:
          description: The device type
          enum:
            - disk
            - cdrom
            - floppy
            - lun
          type: string
          x-gitbook-description-html: <p>The device type</p>
        disk_bus:
          description: Disk bus type
          enum:
            - ide
            - usb
            - virtio
            - scsi
            - sata
            - uml
            - xen
            - lxc
          type: string
          x-gitbook-description-html: <p>Disk bus type</p>
        guest_format:
          description: Guest server disk file system format
          type: string
          x-gitbook-description-html: <p>Guest server disk file system format</p>
        no_device:
          description: Whether this is a no device mapping
          type: boolean
          x-gitbook-description-html: <p>Whether this is a no device mapping</p>
        volume_size:
          description: The size of the volume in GiB
          maximum: 2147483647
          minimum: 1
          type: integer
          x-gitbook-description-html: <p>The size of the volume in GiB</p>
        tag:
          description: A device role tag for the block device
          type: string
          x-gitbook-description-html: <p>A device role tag for the block device</p>
        volume_type:
          description: The volume type
          type: string
          x-gitbook-description-html: <p>The volume type</p>
    PersonalityFile:
      required:
        - path
        - contents
      type: object
      properties:
        path:
          description: The file path
          maxLength: 255
          type: string
          x-gitbook-description-html: <p>The file path</p>
        contents:
          format: byte
          description: The file contents (Base64 encoded)
          type: string
          x-gitbook-description-html: <p>The file contents (Base64 encoded)</p>
    SchedulerHints:
      description: The dictionary of data to send to the scheduler
      type: object
      properties:
        build_near_host_ip:
          format: ipv4
          description: Schedule the server on a host in the network
          type: string
          x-gitbook-description-html: <p>Schedule the server on a host in the network</p>
        cidr:
          description: >-
            Schedule the server on a host in the network specified with an IP
            address
          type: string
          x-gitbook-description-html: >-
            <p>Schedule the server on a host in the network specified with an IP
            address</p>
        different_cell:
          oneOf:
            - type: string
            - type: array
              items:
                type: string
          description: Schedule the server in a cell that is not specified
          x-gitbook-description-html: <p>Schedule the server in a cell that is not specified</p>
        different_host:
          oneOf:
            - format: uuid
              type: string
            - type: array
              items:
                format: uuid
                type: string
          description: Schedule the server on a different host from a set of servers
          x-gitbook-description-html: <p>Schedule the server on a different host from a set of servers</p>
        group:
          format: uuid
          description: The server group UUID
          type: string
          x-gitbook-description-html: <p>The server group UUID</p>
        query:
          description: Schedule the server by using a custom filter in JSON format
          type: string
          x-gitbook-description-html: <p>Schedule the server by using a custom filter in JSON format</p>
        same_host:
          oneOf:
            - format: uuid
              type: string
            - type: array
              items:
                format: uuid
                type: string
          description: Schedule the server on the same host as another server
          x-gitbook-description-html: <p>Schedule the server on the same host as another server</p>
        target_cell:
          description: A target cell name
          type: string
          x-gitbook-description-html: <p>A target cell name</p>
      x-gitbook-description-html: <p>The dictionary of data to send to the scheduler</p>
    ServerResponse:
      type: object
      properties:
        id:
          format: uuid
          description: The UUID of the server
          type: string
          x-gitbook-description-html: <p>The UUID of the server</p>
        links:
          type: array
          items:
            $ref: "#/components/schemas/Link"
        OS-DCF:diskConfig:
          description: Disk configuration
          enum:
            - AUTO
            - MANUAL
          type: string
          x-gitbook-description-html: <p>Disk configuration</p>
        adminPass:
          description: The administrative password for the server
          type: string
          x-gitbook-description-html: <p>The administrative password for the server</p>
        security_groups:
          type: array
          items:
            $ref: "#/components/schemas/SecurityGroup"
    UpdateServerRequest:
      type: object
      properties:
        name:
          description: The server name
          type: string
          x-gitbook-description-html: <p>The server name</p>
        description:
          description: A free form description of the server
          type: string
          x-gitbook-description-html: <p>A free form description of the server</p>
        hostname:
          description: The hostname to configure for the instance
          type: string
          x-gitbook-description-html: <p>The hostname to configure for the instance</p>
        accessIPv4:
          format: ipv4
          description: IPv4 address that should be used to access this server
          type: string
          x-gitbook-description-html: <p>IPv4 address that should be used to access this server</p>
        accessIPv6:
          format: ipv6
          description: IPv6 address that should be used to access this server
          type: string
          x-gitbook-description-html: <p>IPv6 address that should be used to access this server</p>
    RebootAction:
      required:
        - reboot
      type: object
      properties:
        reboot:
          required:
            - type
          type: object
          properties:
            type:
              description: The type of reboot
              enum:
                - HARD
                - SOFT
              type: string
              x-gitbook-description-html: <p>The type of reboot</p>
    RebuildAction:
      required:
        - rebuild
      type: object
      properties:
        rebuild:
          required:
            - imageRef
          type: object
          properties:
            imageRef:
              format: uuid
              description: The UUID of the image to rebuild from
              type: string
              x-gitbook-description-html: <p>The UUID of the image to rebuild from</p>
            name:
              description: The server name
              type: string
              x-gitbook-description-html: <p>The server name</p>
            adminPass:
              description: The administrative password
              type: string
              x-gitbook-description-html: <p>The administrative password</p>
            metadata:
              description: Metadata key and value pairs
              type: object
              additionalProperties:
                type: string
              x-gitbook-description-html: <p>Metadata key and value pairs</p>
            personality:
              description: File path and contents to inject (deprecated in 2.57)
              type: array
              items:
                $ref: "#/components/schemas/PersonalityFile"
              x-gitbook-description-html: <p>File path and contents to inject (deprecated in 2.57)</p>
            user_data:
              format: byte
              description: Configuration information or scripts (Base64 encoded)
              type: string
              x-gitbook-description-html: <p>Configuration information or scripts (Base64 encoded)</p>
            key_name:
              description: Key pair name
              type: string
              x-gitbook-description-html: <p>Key pair name</p>
            description:
              description: A free form description of the server
              type: string
              x-gitbook-description-html: <p>A free form description of the server</p>
            trusted_image_certificates:
              description: A list of trusted certificate IDs
              maxItems: 50
              type: array
              items:
                format: uuid
                type: string
              x-gitbook-description-html: <p>A list of trusted certificate IDs</p>
    ResizeAction:
      required:
        - resize
      type: object
      properties:
        resize:
          required:
            - flavorRef
          type: object
          properties:
            flavorRef:
              description: The flavor reference (UUID or full URL)
              type: string
              x-gitbook-description-html: <p>The flavor reference (UUID or full URL)</p>
            OS-DCF:diskConfig:
              description: Controls how the API partitions the disk
              enum:
                - AUTO
                - MANUAL
              type: string
              x-gitbook-description-html: <p>Controls how the API partitions the disk</p>
    ConfirmResizeAction:
      required:
        - confirmResize
      type: object
      properties:
        confirmResize:
          nullable: true
          description: Confirm resize action
          type: object
          x-gitbook-description-html: <p>Confirm resize action</p>
    RevertResizeAction:
      required:
        - revertResize
      type: object
      properties:
        revertResize:
          nullable: true
          description: Revert resize action
          type: object
          x-gitbook-description-html: <p>Revert resize action</p>
    CreateImageAction:
      required:
        - createImage
      type: object
      properties:
        createImage:
          required:
            - name
          type: object
          properties:
            name:
              description: The name of the image to create
              type: string
              x-gitbook-description-html: <p>The name of the image to create</p>
            metadata:
              description: Metadata for the image
              type: object
              additionalProperties:
                type: string
              x-gitbook-description-html: <p>Metadata for the image</p>
    ChangePasswordAction:
      required:
        - changePassword
      type: object
      properties:
        changePassword:
          required:
            - adminPass
          type: object
          properties:
            adminPass:
              description: The new administrative password
              type: string
              x-gitbook-description-html: <p>The new administrative password</p>
    StartAction:
      required:
        - os-start
      type: object
      properties:
        os-start:
          nullable: true
          description: Start server action
          type: object
          x-gitbook-description-html: <p>Start server action</p>
    StopAction:
      required:
        - os-stop
      type: object
      properties:
        os-stop:
          nullable: true
          description: Stop server action
          type: object
          x-gitbook-description-html: <p>Stop server action</p>
    ShelveAction:
      required:
        - shelve
      type: object
      properties:
        shelve:
          nullable: true
          description: Shelve server action
          type: object
          x-gitbook-description-html: <p>Shelve server action</p>
    UnshelveAction:
      required:
        - unshelve
      type: object
      properties:
        unshelve:
          nullable: true
          description: Unshelve server action
          type: object
          x-gitbook-description-html: <p>Unshelve server action</p>
    SuspendAction:
      required:
        - suspend
      type: object
      properties:
        suspend:
          nullable: true
          description: Suspend server action
          type: object
          x-gitbook-description-html: <p>Suspend server action</p>
    ResumeAction:
      required:
        - resume
      type: object
      properties:
        resume:
          nullable: true
          description: Resume server action
          type: object
          x-gitbook-description-html: <p>Resume server action</p>
    PauseAction:
      required:
        - pause
      type: object
      properties:
        pause:
          nullable: true
          description: Pause server action
          type: object
          x-gitbook-description-html: <p>Pause server action</p>
    UnpauseAction:
      required:
        - unpause
      type: object
      properties:
        unpause:
          nullable: true
          description: Unpause server action
          type: object
          x-gitbook-description-html: <p>Unpause server action</p>
    LockAction:
      required:
        - lock
      type: object
      properties:
        lock:
          type: object
          properties:
            locked_reason:
              description: The reason for locking the server
              type: string
              x-gitbook-description-html: <p>The reason for locking the server</p>
    UnlockAction:
      required:
        - unlock
      type: object
      properties:
        unlock:
          nullable: true
          description: Unlock server action
          type: object
          x-gitbook-description-html: <p>Unlock server action</p>
    RescueAction:
      required:
        - rescue
      type: object
      properties:
        rescue:
          type: object
          properties:
            adminPass:
              description: The password for the rescue instance
              type: string
              x-gitbook-description-html: <p>The password for the rescue instance</p>
            rescue_image_ref:
              format: uuid
              description: The UUID of the image to use for rescue
              type: string
              x-gitbook-description-html: <p>The UUID of the image to use for rescue</p>
    UnrescueAction:
      required:
        - unrescue
      type: object
      properties:
        unrescue:
          nullable: true
          description: Unrescue server action
          type: object
          x-gitbook-description-html: <p>Unrescue server action</p>
    EvacuateAction:
      required:
        - evacuate
      type: object
      properties:
        evacuate:
          type: object
          properties:
            host:
              description: The name or ID of the host to evacuate to
              type: string
              x-gitbook-description-html: <p>The name or ID of the host to evacuate to</p>
            adminPass:
              description: The administrative password for the evacuated instance
              type: string
              x-gitbook-description-html: <p>The administrative password for the evacuated instance</p>
            onSharedStorage:
              description: Whether the instance is on shared storage
              type: boolean
              x-gitbook-description-html: <p>Whether the instance is on shared storage</p>
            force:
              description: Force the evacuation
              default: false
              type: boolean
              x-gitbook-description-html: <p>Force the evacuation</p>
    MigrateAction:
      required:
        - migrate
      type: object
      properties:
        migrate:
          type: object
          properties:
            host:
              description: The destination host for the migration
              type: string
              x-gitbook-description-html: <p>The destination host for the migration</p>
    LiveMigrateAction:
      required:
        - os-migrateLive
      type: object
      properties:
        os-migrateLive:
          required:
            - host
          type: object
          properties:
            host:
              nullable: true
              description: The destination host for the live migration
              type: string
              x-gitbook-description-html: <p>The destination host for the live migration</p>
            block_migration:
              oneOf:
                - type: boolean
                - enum:
                    - auto
                  type: string
              description: Whether to use block migration
              x-gitbook-description-html: <p>Whether to use block migration</p>
            disk_over_commit:
              description: Whether to allow disk over commit
              type: boolean
              x-gitbook-description-html: <p>Whether to allow disk over commit</p>
            force:
              description: Force the live migration
              default: false
              type: boolean
              x-gitbook-description-html: <p>Force the live migration</p>
    CreateBackupAction:
      required:
        - createBackup
      type: object
      properties:
        createBackup:
          required:
            - name
            - backup_type
            - rotation
          type: object
          properties:
            name:
              description: The name of the backup image
              type: string
              x-gitbook-description-html: <p>The name of the backup image</p>
            backup_type:
              description: The backup type (e.g., daily)
              type: string
              x-gitbook-description-html: <p>The backup type (e.g., daily)</p>
            rotation:
              description: The number of backups to keep
              minimum: 0
              type: integer
              x-gitbook-description-html: <p>The number of backups to keep</p>
            metadata:
              description: Metadata for the backup image
              type: object
              additionalProperties:
                type: string
              x-gitbook-description-html: <p>Metadata for the backup image</p>
    TriggerCrashDumpAction:
      required:
        - trigger_crash_dump
      type: object
      properties:
        trigger_crash_dump:
          nullable: true
          description: Trigger crash dump action
          type: object
          x-gitbook-description-html: <p>Trigger crash dump action</p>
    KeypairSummary:
      type: object
      properties:
        keypair:
          type: object
          properties:
            name:
              description: The keypair name
              type: string
              x-gitbook-description-html: <p>The keypair name</p>
            type:
              description: The type of the keypair
              enum:
                - ssh
                - x509
              type: string
              x-gitbook-description-html: <p>The type of the keypair</p>
            public_key:
              description: The public key
              type: string
              x-gitbook-description-html: <p>The public key</p>
            fingerprint:
              description: The keypair fingerprint
              type: string
              x-gitbook-description-html: <p>The keypair fingerprint</p>
    KeypairDetailed:
      allOf:
        - $ref: "#/components/schemas/KeypairSummary"
        - type: object
          properties:
            keypair:
              type: object
              properties:
                user_id:
                  format: uuid
                  description: The user ID
                  type: string
                  x-gitbook-description-html: <p>The user ID</p>
                created_at:
                  format: date-time
                  description: The date and time when the resource was created
                  type: string
                  x-gitbook-description-html: <p>The date and time when the resource was created</p>
                deleted:
                  description: Whether the keypair is deleted
                  type: boolean
                  x-gitbook-description-html: <p>Whether the keypair is deleted</p>
                deleted_at:
                  nullable: true
                  format: date-time
                  description: The date and time when the keypair was deleted
                  type: string
                  x-gitbook-description-html: <p>The date and time when the keypair was deleted</p>
                id:
                  description: The keypair ID
                  type: integer
                  x-gitbook-description-html: <p>The keypair ID</p>
                is_deleted:
                  description: Whether the keypair is deleted
                  type: boolean
                  x-gitbook-description-html: <p>Whether the keypair is deleted</p>
                updated_at:
                  nullable: true
                  format: date-time
                  description: The date and time when the resource was updated
                  type: string
                  x-gitbook-description-html: <p>The date and time when the resource was updated</p>
    CreateKeypairRequest:
      required:
        - name
      type: object
      properties:
        name:
          description: The name of the keypair
          type: string
          x-gitbook-description-html: <p>The name of the keypair</p>
        type:
          description: The type of the keypair
          default: ssh
          enum:
            - ssh
            - x509
          type: string
          x-gitbook-description-html: <p>The type of the keypair</p>
        public_key:
          description: The public key to import
          type: string
          x-gitbook-description-html: <p>The public key to import</p>
        user_id:
          format: uuid
          description: The user ID (admin only)
          type: string
          x-gitbook-description-html: <p>The user ID (admin only)</p>
    Limits:
      type: object
      properties:
        rate:
          description: Rate limits
          type: array
          items:
            $ref: "#/components/schemas/RateLimit"
          x-gitbook-description-html: <p>Rate limits</p>
        absolute:
          $ref: "#/components/schemas/AbsoluteLimits"
    RateLimit:
      type: object
      properties:
        uri:
          description: The URI pattern
          type: string
          x-gitbook-description-html: <p>The URI pattern</p>
        regex:
          description: The URI regex pattern
          type: string
          x-gitbook-description-html: <p>The URI regex pattern</p>
        limit:
          type: array
          items:
            $ref: "#/components/schemas/RateLimitValue"
    RateLimitValue:
      type: object
      properties:
        value:
          description: The maximum number of requests
          type: integer
          x-gitbook-description-html: <p>The maximum number of requests</p>
        verb:
          description: The HTTP method
          type: string
          x-gitbook-description-html: <p>The HTTP method</p>
        remaining:
          description: The remaining number of requests
          type: integer
          x-gitbook-description-html: <p>The remaining number of requests</p>
        unit:
          description: The time unit
          type: string
          x-gitbook-description-html: <p>The time unit</p>
        next-available:
          format: date-time
          description: When the limit resets
          type: string
          x-gitbook-description-html: <p>When the limit resets</p>
    AbsoluteLimits:
      type: object
      properties:
        maxServerMeta:
          description: Maximum number of metadata key-value pairs per server
          type: integer
          x-gitbook-description-html: <p>Maximum number of metadata key-value pairs per server</p>
        maxTotalInstances:
          description: Maximum number of instances
          type: integer
          x-gitbook-description-html: <p>Maximum number of instances</p>
        maxTotalCores:
          description: Maximum number of CPU cores
          type: integer
          x-gitbook-description-html: <p>Maximum number of CPU cores</p>
        maxTotalRAMSize:
          description: Maximum amount of RAM in MiB
          type: integer
          x-gitbook-description-html: <p>Maximum amount of RAM in MiB</p>
        maxTotalKeypairs:
          description: Maximum number of keypairs
          type: integer
          x-gitbook-description-html: <p>Maximum number of keypairs</p>
        maxServerGroups:
          description: Maximum number of server groups
          type: integer
          x-gitbook-description-html: <p>Maximum number of server groups</p>
        maxServerGroupMembers:
          description: Maximum number of members per server group
          type: integer
          x-gitbook-description-html: <p>Maximum number of members per server group</p>
        totalInstancesUsed:
          description: Number of instances currently used
          type: integer
          x-gitbook-description-html: <p>Number of instances currently used</p>
        totalCoresUsed:
          description: Number of cores currently used
          type: integer
          x-gitbook-description-html: <p>Number of cores currently used</p>
        totalRAMUsed:
          description: Amount of RAM currently used in MiB
          type: integer
          x-gitbook-description-html: <p>Amount of RAM currently used in MiB</p>
        totalServerGroupsUsed:
          description: Number of server groups currently used
          type: integer
          x-gitbook-description-html: <p>Number of server groups currently used</p>
    AvailabilityZone:
      type: object
      properties:
        zoneName:
          description: The availability zone name
          type: string
          x-gitbook-description-html: <p>The availability zone name</p>
        zoneState:
          type: object
          properties:
            available:
              description: Whether the zone is available
              type: boolean
              x-gitbook-description-html: <p>Whether the zone is available</p>
    AvailabilityZoneDetailed:
      allOf:
        - $ref: "#/components/schemas/AvailabilityZone"
        - type: object
          properties:
            hosts:
              description: The hosts in the availability zone
              type: object
              additionalProperties:
                type: object
                additionalProperties:
                  $ref: "#/components/schemas/ServiceState"
              x-gitbook-description-html: <p>The hosts in the availability zone</p>
    ServiceState:
      type: object
      properties:
        available:
          description: Whether the service is available
          type: boolean
          x-gitbook-description-html: <p>Whether the service is available</p>
        active:
          description: Whether the service is active
          type: boolean
          x-gitbook-description-html: <p>Whether the service is active</p>
        updated_at:
          format: date-time
          description: When the service was last updated
          type: string
          x-gitbook-description-html: <p>When the service was last updated</p>
    HypervisorSummary:
      type: object
      properties:
        id:
          description: The hypervisor ID
          type: string
          x-gitbook-description-html: <p>The hypervisor ID</p>
        hypervisor_hostname:
          description: The hypervisor hostname
          type: string
          x-gitbook-description-html: <p>The hypervisor hostname</p>
        links:
          type: array
          items:
            $ref: "#/components/schemas/Link"
    HypervisorDetailed:
      allOf:
        - $ref: "#/components/schemas/HypervisorSummary"
        - type: object
          properties:
            status:
              description: The hypervisor status
              enum:
                - enabled
                - disabled
              type: string
              x-gitbook-description-html: <p>The hypervisor status</p>
            state:
              description: The hypervisor state
              enum:
                - up
                - down
              type: string
              x-gitbook-description-html: <p>The hypervisor state</p>
            host_ip:
              format: ipv4
              description: The IP address of the hypervisor
              type: string
              x-gitbook-description-html: <p>The IP address of the hypervisor</p>
            free_disk_gb:
              description: Free disk space in GiB
              type: integer
              x-gitbook-description-html: <p>Free disk space in GiB</p>
            free_ram_mb:
              description: Free RAM in MiB
              type: integer
              x-gitbook-description-html: <p>Free RAM in MiB</p>
            hypervisor_type:
              description: The hypervisor type
              type: string
              x-gitbook-description-html: <p>The hypervisor type</p>
            hypervisor_version:
              description: The hypervisor version
              type: integer
              x-gitbook-description-html: <p>The hypervisor version</p>
            local_gb:
              description: Total disk space in GiB
              type: integer
              x-gitbook-description-html: <p>Total disk space in GiB</p>
            local_gb_used:
              description: Used disk space in GiB
              type: integer
              x-gitbook-description-html: <p>Used disk space in GiB</p>
            memory_mb:
              description: Total RAM in MiB
              type: integer
              x-gitbook-description-html: <p>Total RAM in MiB</p>
            memory_mb_used:
              description: Used RAM in MiB
              type: integer
              x-gitbook-description-html: <p>Used RAM in MiB</p>
            running_vms:
              description: Number of running VMs
              type: integer
              x-gitbook-description-html: <p>Number of running VMs</p>
            vcpus:
              description: Total virtual CPUs
              type: integer
              x-gitbook-description-html: <p>Total virtual CPUs</p>
            vcpus_used:
              description: Used virtual CPUs
              type: integer
              x-gitbook-description-html: <p>Used virtual CPUs</p>
            cpu_info:
              description: CPU information (JSON object)
              type: object
              x-gitbook-description-html: <p>CPU information (JSON object)</p>
            disk_available_least:
              description: Least available disk space in GiB
              type: integer
              x-gitbook-description-html: <p>Least available disk space in GiB</p>
            service:
              $ref: "#/components/schemas/Service"
            servers:
              description: Servers running on the hypervisor
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  uuid:
                    format: uuid
                    type: string
              x-gitbook-description-html: <p>Servers running on the hypervisor</p>
    HypervisorUptime:
      type: object
      properties:
        id:
          description: The hypervisor ID
          type: string
          x-gitbook-description-html: <p>The hypervisor ID</p>
        hypervisor_hostname:
          description: The hypervisor hostname
          type: string
          x-gitbook-description-html: <p>The hypervisor hostname</p>
        uptime:
          description: The uptime information
          type: string
          x-gitbook-description-html: <p>The uptime information</p>
    Service:
      type: object
      properties:
        id:
          format: uuid
          description: The service UUID
          type: string
          x-gitbook-description-html: <p>The service UUID</p>
        binary:
          description: The service binary name
          type: string
          x-gitbook-description-html: <p>The service binary name</p>
        host:
          description: The host name
          type: string
          x-gitbook-description-html: <p>The host name</p>
        zone:
          description: The availability zone
          type: string
          x-gitbook-description-html: <p>The availability zone</p>
        status:
          description: The service status
          enum:
            - enabled
            - disabled
          type: string
          x-gitbook-description-html: <p>The service status</p>
        state:
          description: The service state
          enum:
            - up
            - down
          type: string
          x-gitbook-description-html: <p>The service state</p>
        updated_at:
          format: date-time
          description: When the service was last updated
          type: string
          x-gitbook-description-html: <p>When the service was last updated</p>
        disabled_reason:
          nullable: true
          description: The reason the service was disabled
          type: string
          x-gitbook-description-html: <p>The reason the service was disabled</p>
        forced_down:
          description: Whether the service was forced down
          type: boolean
          x-gitbook-description-html: <p>Whether the service was forced down</p>
    EnableServiceRequest:
      type: object
      properties:
        status:
          enum:
            - enabled
          type: string
        disabled_reason:
          nullable: true
          type: string
    DisableServiceRequest:
      type: object
      properties:
        status:
          enum:
            - disabled
          type: string
        disabled_reason:
          type: string
    ForceDownServiceRequest:
      type: object
      properties:
        forced_down:
          type: boolean
    Aggregate:
      type: object
      properties:
        id:
          description: The aggregate ID
          type: string
          x-gitbook-description-html: <p>The aggregate ID</p>
        uuid:
          format: uuid
          description: The aggregate UUID
          type: string
          x-gitbook-description-html: <p>The aggregate UUID</p>
        name:
          description: The aggregate name
          type: string
          x-gitbook-description-html: <p>The aggregate name</p>
        availability_zone:
          nullable: true
          description: The availability zone
          type: string
          x-gitbook-description-html: <p>The availability zone</p>
        hosts:
          description: The list of hosts
          type: array
          items:
            type: string
          x-gitbook-description-html: <p>The list of hosts</p>
        metadata:
          description: The aggregate metadata
          type: object
          additionalProperties:
            type: string
          x-gitbook-description-html: <p>The aggregate metadata</p>
        created_at:
          format: date-time
          description: When the aggregate was created
          type: string
          x-gitbook-description-html: <p>When the aggregate was created</p>
        updated_at:
          format: date-time
          description: When the aggregate was updated
          type: string
          x-gitbook-description-html: <p>When the aggregate was updated</p>
        deleted_at:
          nullable: true
          format: date-time
          description: When the aggregate was deleted
          type: string
          x-gitbook-description-html: <p>When the aggregate was deleted</p>
        deleted:
          description: Whether the aggregate is deleted
          type: boolean
          x-gitbook-description-html: <p>Whether the aggregate is deleted</p>
    CreateAggregateRequest:
      required:
        - name
      type: object
      properties:
        name:
          description: The aggregate name
          type: string
          x-gitbook-description-html: <p>The aggregate name</p>
        availability_zone:
          description: The availability zone
          type: string
          x-gitbook-description-html: <p>The availability zone</p>
    UpdateAggregateRequest:
      type: object
      properties:
        name:
          description: The aggregate name
          type: string
          x-gitbook-description-html: <p>The aggregate name</p>
        availability_zone:
          description: The availability zone
          type: string
          x-gitbook-description-html: <p>The availability zone</p>
    AddHostAction:
      required:
        - add_host
      type: object
      properties:
        add_host:
          required:
            - host
          type: object
          properties:
            host:
              description: The host name
              type: string
              x-gitbook-description-html: <p>The host name</p>
    RemoveHostAction:
      required:
        - remove_host
      type: object
      properties:
        remove_host:
          required:
            - host
          type: object
          properties:
            host:
              description: The host name
              type: string
              x-gitbook-description-html: <p>The host name</p>
    SetMetadataAction:
      required:
        - set_metadata
      type: object
      properties:
        set_metadata:
          required:
            - metadata
          type: object
          properties:
            metadata:
              description: The metadata to set
              type: object
              additionalProperties:
                type: string
              x-gitbook-description-html: <p>The metadata to set</p>
    ServerGroup:
      type: object
      properties:
        id:
          format: uuid
          description: The server group UUID
          type: string
          x-gitbook-description-html: <p>The server group UUID</p>
        name:
          description: The server group name
          type: string
          x-gitbook-description-html: <p>The server group name</p>
        policies:
          description: The list of policies
          type: array
          items:
            enum:
              - anti-affinity
              - affinity
              - soft-anti-affinity
              - soft-affinity
            type: string
          x-gitbook-description-html: <p>The list of policies</p>
        policy:
          description: The policy (deprecated, use policies)
          enum:
            - anti-affinity
            - affinity
            - soft-anti-affinity
            - soft-affinity
          type: string
          x-gitbook-description-html: <p>The policy (deprecated, use policies)</p>
        rules:
          description: The policy rules
          type: object
          additionalProperties:
            type: string
          x-gitbook-description-html: <p>The policy rules</p>
        members:
          description: The list of server UUIDs in the group
          type: array
          items:
            format: uuid
            type: string
          x-gitbook-description-html: <p>The list of server UUIDs in the group</p>
        project_id:
          format: uuid
          description: The project UUID
          type: string
          x-gitbook-description-html: <p>The project UUID</p>
        user_id:
          format: uuid
          description: The user UUID
          type: string
          x-gitbook-description-html: <p>The user UUID</p>
    CreateServerGroupRequest:
      required:
        - name
        - policies
      type: object
      properties:
        name:
          description: The server group name
          type: string
          x-gitbook-description-html: <p>The server group name</p>
        policies:
          description: The list of policies
          maxItems: 1
          minItems: 1
          type: array
          items:
            enum:
              - anti-affinity
              - affinity
              - soft-anti-affinity
              - soft-affinity
            type: string
          x-gitbook-description-html: <p>The list of policies</p>
        policy:
          description: The policy (deprecated, use policies)
          enum:
            - anti-affinity
            - affinity
            - soft-anti-affinity
            - soft-affinity
          type: string
          x-gitbook-description-html: <p>The policy (deprecated, use policies)</p>
        rules:
          description: The policy rules
          type: object
          additionalProperties:
            type: string
          x-gitbook-description-html: <p>The policy rules</p>
    QuotaSet:
      type: object
      properties:
        id:
          format: uuid
          description: The project UUID
          type: string
          x-gitbook-description-html: <p>The project UUID</p>
        cores:
          description: The number of allowed server cores
          type: integer
          x-gitbook-description-html: <p>The number of allowed server cores</p>
        instances:
          description: The number of allowed servers
          type: integer
          x-gitbook-description-html: <p>The number of allowed servers</p>
        key_pairs:
          description: The number of allowed key pairs
          type: integer
          x-gitbook-description-html: <p>The number of allowed key pairs</p>
        metadata_items:
          description: The number of allowed metadata items per server
          type: integer
          x-gitbook-description-html: <p>The number of allowed metadata items per server</p>
        ram:
          description: The amount of allowed server RAM in MiB
          type: integer
          x-gitbook-description-html: <p>The amount of allowed server RAM in MiB</p>
        server_groups:
          description: The number of allowed server groups
          type: integer
          x-gitbook-description-html: <p>The number of allowed server groups</p>
        server_group_members:
          description: The number of allowed members per server group
          type: integer
          x-gitbook-description-html: <p>The number of allowed members per server group</p>
    QuotaSetDetailed:
      type: object
      properties:
        id:
          format: uuid
          description: The project UUID
          type: string
          x-gitbook-description-html: <p>The project UUID</p>
        cores:
          $ref: "#/components/schemas/QuotaDetail"
        instances:
          $ref: "#/components/schemas/QuotaDetail"
        key_pairs:
          $ref: "#/components/schemas/QuotaDetail"
        metadata_items:
          $ref: "#/components/schemas/QuotaDetail"
        ram:
          $ref: "#/components/schemas/QuotaDetail"
        server_groups:
          $ref: "#/components/schemas/QuotaDetail"
        server_group_members:
          $ref: "#/components/schemas/QuotaDetail"
    QuotaDetail:
      type: object
      properties:
        limit:
          description: The quota limit
          type: integer
          x-gitbook-description-html: <p>The quota limit</p>
        in_use:
          description: The current usage
          type: integer
          x-gitbook-description-html: <p>The current usage</p>
        reserved:
          description: The reserved amount
          type: integer
          x-gitbook-description-html: <p>The reserved amount</p>
    UpdateQuotaSetRequest:
      type: object
      properties:
        cores:
          description: The number of allowed server cores (-1 for unlimited)
          minimum: -1
          type: integer
          x-gitbook-description-html: <p>The number of allowed server cores (-1 for unlimited)</p>
        instances:
          description: The number of allowed servers (-1 for unlimited)
          minimum: -1
          type: integer
          x-gitbook-description-html: <p>The number of allowed servers (-1 for unlimited)</p>
        key_pairs:
          description: The number of allowed key pairs (-1 for unlimited)
          minimum: -1
          type: integer
          x-gitbook-description-html: <p>The number of allowed key pairs (-1 for unlimited)</p>
        metadata_items:
          description: The number of allowed metadata items per server (-1 for unlimited)
          minimum: -1
          type: integer
          x-gitbook-description-html: >-
            <p>The number of allowed metadata items per server (-1 for
            unlimited)</p>
        ram:
          description: The amount of allowed server RAM in MiB (-1 for unlimited)
          minimum: -1
          type: integer
          x-gitbook-description-html: <p>The amount of allowed server RAM in MiB (-1 for unlimited)</p>
        server_groups:
          description: The number of allowed server groups (-1 for unlimited)
          minimum: -1
          type: integer
          x-gitbook-description-html: <p>The number of allowed server groups (-1 for unlimited)</p>
        server_group_members:
          description: The number of allowed members per server group (-1 for unlimited)
          minimum: -1
          type: integer
          x-gitbook-description-html: >-
            <p>The number of allowed members per server group (-1 for
            unlimited)</p>
        force:
          description: Whether to force the quota update
          default: false
          type: boolean
          x-gitbook-description-html: <p>Whether to force the quota update</p>
  responses:
    BadRequest:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorResponse"
      description: Bad Request
      x-gitbook-description-html: <p>Bad Request</p>
    Unauthorized:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorResponse"
      description: Unauthorized
      x-gitbook-description-html: <p>Unauthorized</p>
    Forbidden:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorResponse"
      description: Forbidden
      x-gitbook-description-html: <p>Forbidden</p>
    NotFound:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorResponse"
      description: Not Found
      x-gitbook-description-html: <p>Not Found</p>
    Conflict:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorResponse"
      description: Conflict
      x-gitbook-description-html: <p>Conflict</p>
  parameters:
    OpenStackAPIVersion:
      name: OpenStack-API-Version
      description: >
        Specifies the API microversion. Format: "compute X.Y" where X.Y is the
        microversion.

        If not specified, the minimum supported version (2.1) is used.
      schema:
        pattern: ^compute \d+\.\d+
        type: string
        example: compute 2.96
      in: header
      x-gitbook-description-html: >-
        <p>Specifies the API microversion. Format: "compute X.Y" where X.Y is
        the microversion.

        If not specified, the minimum supported version (2.1) is used.</p>
    ServerId:
      name: server_id
      description: The UUID of the server
      schema:
        format: uuid
        type: string
      in: path
      required: true
      x-gitbook-description-html: <p>The UUID of the server</p>
  securitySchemes:
    keystoneAuth:
      scheme: bearer
      type: http
      description: OpenStack Keystone token authentication
      x-gitbook-description-html: <p>OpenStack Keystone token authentication</p>
security:
  - keystoneAuth: []
