Compute API¶
The nova project has a RESTful HTTP service called the OpenStack Compute API. Through this API, the service provides massively scalable, on demand, self-service access to compute resources. Depending on the deployment those compute resources might be Virtual Machines, Physical Machines or Containers.
This guide covers the concepts in the OpenStack Compute API. For a full reference listing, please see: Compute API Reference.
We welcome feedback, comments, and bug reports at bugs.launchpad.net/nova.
Intended audience¶
This guide assists software developers who want to develop applications using the OpenStack Compute API. To use this information, you should have access to an account from an OpenStack Compute provider, or have access to your own deployment, and you should also be familiar with the following concepts:
OpenStack Compute service
RESTful HTTP services
HTTP/1.1
JSON data serialization formats
End User and Operator APIs¶
The Compute API includes all end user and operator API calls. The API works with keystone and oslo.policy to deliver RBAC (Role-based access control). The default policy file gives suggestions on what APIs should not be made available to most end users but this is fully configurable.
API Versions¶
Following the Mitaka release, every Nova deployment should have the following endpoints:
/ - list of available versions
/v2 - the first version of the Compute API, uses extensions (we call this Compute API v2.0)
/v2.1 - same API, except uses microversions
While this guide concentrates on documenting the v2.1 API, please note that the v2.0 is (almost) identical to first microversion of the v2.1 API and are also covered by this guide.
Contents¶
- Users
- Versions
- Microversions
- Key Compute API Concepts
- Server concepts
- Authentication
- Flavor Extra Specs and Image Properties
- Faults
- Limits
- Links and references
- Paginated collections
- Efficient polling
- Request and response formats
- Handling Down Cells
- Using ports with resource request
- Using accelerators with Cyborg
- Using SRIOV with Cyborg