OpenStack

OpenStack is a programmable infrastructure platform for managing virtual machines, containers, and bare metal at cloud scale, with a broad set of REST APIs across compute, networking, storage, identity, and image services.

OpenAPI Specification

openinfra-foundation-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: OpenStack API (OpenInfra Foundation)
  description: >-
    OpenStack is an OpenInfra Foundation project providing a programmable
    infrastructure platform. This minimal spec covers a representative subset
    of the Compute (Nova), Identity (Keystone v3), and Networking (Neutron v2)
    REST APIs.
  version: "1.0"
x-generated-from: https://docs.openstack.org/api-ref/
x-generated-by: claude-crawl-2026-05-08
servers:
  - url: https://example.openstack.local
    description: An OpenStack-compatible cloud endpoint
paths:
  /v3/auth/tokens:
    post:
      summary: Authenticate identity and generate a token
      operationId: createToken
      requestBody:
        $ref: '#/components/requestBodies/Generic'
      responses:
        '201':
          $ref: '#/components/responses/Generic'
    get:
      summary: Validate and show token information
      operationId: getToken
      responses:
        '200':
          $ref: '#/components/responses/Generic'
    delete:
      summary: Revoke a token
      operationId: deleteToken
      responses:
        '204':
          description: Token revoked
  /v3/auth/catalog:
    get:
      summary: Return service catalog for the auth token
      operationId: getServiceCatalog
      responses:
        '200':
          $ref: '#/components/responses/Generic'
  /v3/auth/projects:
    get:
      summary: List scopable projects available to the token
      operationId: listAuthProjects
      responses:
        '200':
          $ref: '#/components/responses/Generic'
  /v3/users/{user_id}/projects:
    parameters:
      - name: user_id
        in: path
        required: true
        schema:
          type: string
    get:
      summary: List projects for a specific user
      operationId: listUserProjects
      responses:
        '200':
          $ref: '#/components/responses/Generic'
  /v3/roles:
    get:
      summary: List roles
      operationId: listRoles
      responses:
        '200':
          $ref: '#/components/responses/Generic'
  /v3/domains:
    get:
      summary: List domains
      operationId: listDomains
      responses:
        '200':
          $ref: '#/components/responses/Generic'
  /v3/credentials:
    post:
      summary: Create credential
      operationId: createCredential
      requestBody:
        $ref: '#/components/requestBodies/Generic'
      responses:
        '201':
          $ref: '#/components/responses/Generic'
  /v3/groups:
    get:
      summary: List groups
      operationId: listGroups
      responses:
        '200':
          $ref: '#/components/responses/Generic'
  /v3/endpoints:
    get:
      summary: List service endpoints
      operationId: listEndpoints
      responses:
        '200':
          $ref: '#/components/responses/Generic'
  /servers:
    get:
      summary: List Nova compute servers
      operationId: listServers
      responses:
        '200':
          $ref: '#/components/responses/Generic'
    post:
      summary: Create a new compute server
      operationId: createServer
      requestBody:
        $ref: '#/components/requestBodies/Generic'
      responses:
        '202':
          $ref: '#/components/responses/Generic'
  /servers/detail:
    get:
      summary: List Nova servers with details
      operationId: listServersDetail
      responses:
        '200':
          $ref: '#/components/responses/Generic'
  /servers/{id}:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
    get:
      summary: Show Nova server details
      operationId: getServer
      responses:
        '200':
          $ref: '#/components/responses/Generic'
    put:
      summary: Update Nova server attributes
      operationId: updateServer
      requestBody:
        $ref: '#/components/requestBodies/Generic'
      responses:
        '200':
          $ref: '#/components/responses/Generic'
    delete:
      summary: Delete Nova server
      operationId: deleteServer
      responses:
        '204':
          description: Server deleted
  /servers/{id}/action:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
    post:
      summary: Execute an action on a Nova server (reboot, rebuild, resize, etc.)
      operationId: serverAction
      requestBody:
        $ref: '#/components/requestBodies/Generic'
      responses:
        '202':
          $ref: '#/components/responses/Generic'
  /v2.0/networks:
    get:
      summary: List Neutron networks
      operationId: listNetworks
      responses:
        '200':
          $ref: '#/components/responses/Generic'
    post:
      summary: Create a Neutron network
      operationId: createNetwork
      requestBody:
        $ref: '#/components/requestBodies/Generic'
      responses:
        '201':
          $ref: '#/components/responses/Generic'
  /v2.0/networks/{network_id}:
    parameters:
      - name: network_id
        in: path
        required: true
        schema:
          type: string
    get:
      summary: Get details of a specific Neutron network
      operationId: getNetwork
      responses:
        '200':
          $ref: '#/components/responses/Generic'
    put:
      summary: Update Neutron network
      operationId: updateNetwork
      requestBody:
        $ref: '#/components/requestBodies/Generic'
      responses:
        '200':
          $ref: '#/components/responses/Generic'
    delete:
      summary: Delete Neutron network
      operationId: deleteNetwork
      responses:
        '204':
          description: Network deleted
  /v2.0/extensions:
    get:
      summary: List Neutron API extensions
      operationId: listExtensions
      responses:
        '200':
          $ref: '#/components/responses/Generic'
components:
  requestBodies:
    Generic:
      required: true
      content:
        application/json:
          schema:
            type: object
            additionalProperties: true
  responses:
    Generic:
      description: Successful response
      content:
        application/json:
          schema:
            type: object
            additionalProperties: true