openapi: 3.1.0
info:
description: |-
This is a reference for the OpenStack Placement API. To learn more about
OpenStack Placement API concepts, please refer to the
[Placement Introduction](https://docs.openstack.org/placement/latest/).
title: OpenStack Placement API
version: '1.39'
paths:
/:
get:
description: |-
Fetch information about all known major versions of the placement API,
including information about the minimum and maximum microversions.
Normal Response Codes: 200
operationId: :get
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RootHomeResponse'
description: Ok
summary: List Versions
tags:
- version
/allocation_candidates:
get:
description: |-
Returns a dictionary representing a collection of allocation requests
and resource provider summaries. Each allocation request has
information to form a `PUT /allocations/{consumer_uuid}` request to claim
resources against a related set of resource providers. Additional parameters
might be required, see [Update allocations](#update-allocations). As several allocation
requests are available it’s necessary to select one. To make a
decision, resource provider summaries are provided with the
inventory/capacity information. For example, this information is used by
nova-scheduler’s FilterScheduler to make decisions about on which compute host
to build a server.
You can also find additional case studies of the request parameters in the
[Modeling with Provider Trees](https://docs.openstack.org/placement/latest/usage/provider-tree.html) document.
Normal Response Codes: 200
Error response codes: badRequest(400)
operationId: allocation_candidates:get
parameters:
- $ref: '#/components/parameters/group_policy'
- $ref: '#/components/parameters/in_tree'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/member_of'
- $ref: '#/components/parameters/required'
- $ref: '#/components/parameters/resources'
- $ref: '#/components/parameters/root_required'
- $ref: '#/components/parameters/same_subtree'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Allocation_CandidatesList_Allocation_CandidatesResponse'
description: Ok
summary: List allocation candidates
tags:
- allocation_candidates
x-openstack:
min-ver: '1.10'
/allocations:
post:
description: |-
Create, update or delete allocations for multiple consumers in a single
request. This allows a client to atomically set or swap allocations for
multiple consumers as may be required during a migration or move type
operation.
The allocations for an individual consumer uuid mentioned in the request
can be removed by setting the allocations to an empty object (see the
example below).
**Available as of microversion 1.13.**
Normal response codes: 204
Error response codes: badRequest(400), conflict(409)
operationId: allocations:post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AllocationsSet_AllocationsRequest'
responses:
'201':
description: Ok
summary: Manage allocations
tags:
- allocations
x-openstack:
min-ver: '1.13'
/allocations/{consumer_uuid}:
delete:
description: |-
Delete all allocation records for the consumer identified by
{consumer_uuid} on all resource providers it is consuming.
Normal Response Codes: 204
Error response codes: itemNotFound(404)
operationId: allocations/consumer_uuid:delete
responses:
'204':
description: Ok
summary: Delete allocations
tags:
- allocations
get:
description: |-
List all allocation records for the consumer identified by
{consumer_uuid} on all the resource providers it is consuming.
Normal Response Codes: 200
operationId: allocations/consumer_uuid:get
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AllocationList_For_ConsumerResponse'
description: Ok
summary: List allocations
tags:
- allocations
parameters:
- $ref: '#/components/parameters/allocations_consumer_uuid'
put:
description: |-
Create or update one or more allocation records representing the consumption of
one or more classes of resources from one or more resource providers by
the consumer identified by {consumer_uuid}.
If allocations already exist for this consumer, they are replaced.
Normal Response Codes: 204
Error response codes: badRequest(400), itemNotFound(404), conflict(409)
operationId: allocations/consumer_uuid:put
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AllocationSet_Allocations_For_ConsumerRequest'
responses:
'200':
description: Ok
summary: Update allocations
tags:
- allocations
x-openstack:
min-ver: '1.0'
/reshaper:
post:
description: |-
Atomically migrate resource provider inventories and associated allocations.
This is used when some of the inventory needs to move from one resource
provider to another, such as when a class of inventory moves from a parent
provider to a new child provider.
Normal Response Codes: 204
Error Response Codes: badRequest(400), conflict(409)
operationId: reshaper:post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ReshaperReshapeRequest'
responses:
'201':
description: Ok
summary: Reshaper
tags:
- reshaper
x-openstack:
min-ver: '1.30'
/resource_classes:
get:
description: |-
Return a list of all resource classes.
Normal Response Codes: 200
operationId: resource_classes:get
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ClassesList_Resource_ClassesResponse'
description: Ok
summary: List resource classes
tags:
- resource_classes
x-openstack:
min-ver: '1.2'
post:
description: |-
Create a new resource class. The new class must be a *custom* resource class,
prefixed with CUSTOM_ and distinct from the standard resource classes.
Normal Response Codes: 201
Error response codes: badRequest(400), conflict(409)
A 400 BadRequest response code will be returned if the resource class
does not have prefix CUSTOM_.
A 409 Conflict response code will
be returned if another resource class exists with the provided name.
operationId: resource_classes:post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ClassesCreate_Resource_ClassRequest'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ClassesCreate_Resource_ClassResponse'
description: Ok
summary: Create resource class
tags:
- resource_classes
x-openstack:
min-ver: '1.2'
/resource_classes/{name}:
delete:
description: |-
Delete the resource class identified by {name}.
Normal Response Codes: 204
Error response codes: badRequest(400), itemNotFound(404), conflict(409)
A 400 BadRequest response code will be returned if trying
to delete a standard resource class.
A 409 Conflict response code will be returned if there exist
inventories for the resource class.
operationId: resource_classes/name:delete
responses:
'204':
description: Ok
summary: Delete resource class
tags:
- resource_classes
x-openstack:
min-ver: '1.2'
get:
description: |-
Return a representation of the resource class identified by {name}.
Normal Response Codes: 200
Error response codes: itemNotFound(404)
operationId: resource_classes/name:get
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ClassGet_Resource_ClassResponse'
description: Ok
summary: Show resource class
tags:
- resource_classes
x-openstack:
min-ver: '1.2'
parameters:
- $ref: '#/components/parameters/resource_classes_name'
put:
description: |-
Create or validate the existence of single resource class identified by {name}.
Normal Response Codes: 201, 204
A 201 Created response code will be returned if the new resource class
is successfully created.
A 204 No Content response code will be returned if the resource class
already exists.
Error response codes: badRequest(400)
operationId: resource_classes/name:put
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ClassUpdate_Resource_ClassRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ClassUpdate_Resource_ClassResponse'
description: Ok
summary: Update resource class
tags:
- resource_classes
x-openstack:
min-ver: '1.2'
/resource_providers:
get:
description: |-
List an optionally filtered collection of resource providers.
Normal Response Codes: 200
Error response codes: badRequest(400)
A 400 BadRequest response code will be returned
if a resource class specified in `resources` request parameter
does not exist.
operationId: resource_providers:get
parameters:
- $ref: '#/components/parameters/in_tree'
- $ref: '#/components/parameters/member_of'
- $ref: '#/components/parameters/name'
- $ref: '#/components/parameters/required'
- $ref: '#/components/parameters/resources'
- $ref: '#/components/parameters/uuid'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProvidersList_Resource_ProvidersResponse'
description: Ok
summary: List resource providers
tags:
- resource_providers
post:
description: |-
Create a new resource provider.
Normal Response Codes: 201 (microversions 1.0 - 1.19), 200 (microversions
1.20 - )
Error response codes: conflict(409)
A 409 Conflict response code will
be returned if another resource provider exists with the provided name
or uuid.
operationId: resource_providers:post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProvidersCreate_Resource_ProviderRequest'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProvidersCreate_Resource_ProviderResponse'
description: Ok
summary: Create resource provider
tags:
- resource_providers
/resource_providers/{uuid}:
delete:
description: |-
Delete the resource provider identified by {uuid}.
This will also disassociate aggregates and delete inventories.
Normal Response Codes: 204
Error response codes: itemNotFound(404), conflict(409)
A 409 Conflict response code will be returned if there exist
allocations records for any of the inventories that would be deleted
as a result of removing the resource provider.
This error code will be also returned if there are existing child resource
providers under the parent resource provider being deleted.
operationId: resource_providers/uuid:delete
responses:
'204':
description: Ok
summary: Delete resource provider
tags:
- resource_providers
get:
description: |-
Return a representation of the resource provider identified by {uuid}.
Normal Response Codes: 200
Error response codes: itemNotFound(404)
operationId: resource_providers/uuid:get
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProviderGet_Resource_ProviderResponse'
description: Ok
summary: Show resource provider
tags:
- resource_providers
parameters:
- $ref: '#/components/parameters/resource_providers_uuid'
put:
description: |-
Update the name of the resource provider identified by {uuid}.
Normal Response Codes: 200
Error response codes: badRequest(400), itemNotFound(404), conflict(409)
A 409 Conflict response code will be returned if another resource
provider exists with the provided name.
operationId: resource_providers/uuid:put
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProviderUpdate_Resource_ProviderRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProviderUpdate_Resource_ProviderResponse'
description: Ok
summary: Update resource provider
tags:
- resource_providers
/resource_providers/{uuid}/aggregates:
get:
description: |-
Return a list of aggregates associated with the resource provider
identified by {uuid}.
Normal Response Codes: 200
Error response codes: itemNotFound(404) if the provider does not exist. (If the
provider has no aggregates, the result is 200 with an empty aggregate list.)
operationId: resource_providers/uuid/aggregates:get
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProvidersAggregatesGet_AggregatesResponse'
description: Ok
summary: List resource provider aggregates
tags:
- resource_providers
x-openstack:
min-ver: '1.1'
parameters:
- $ref: '#/components/parameters/resource_providers_aggregates_uuid'
put:
description: |-
Associate a list of aggregates with the resource provider identified by {uuid}.
Normal Response Codes: 200
Error response codes: badRequest(400), itemNotFound(404), conflict(409)
operationId: resource_providers/uuid/aggregates:put
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProvidersAggregatesSet_AggregatesRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProvidersAggregatesSet_AggregatesResponse'
description: Ok
summary: Update resource provider aggregates
tags:
- resource_providers
x-openstack:
min-ver: '1.1'
/resource_providers/{uuid}/allocations:
get:
description: |-
Return a representation of all allocations made against this resource
provider, keyed by consumer uuid. Each allocation includes one or more
classes of resource and the amount consumed.
Normal Response Codes: 200
Error response codes: itemNotFound(404)
operationId: resource_providers/uuid/allocations:get
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProvidersAllocationsList_For_Resource_ProviderResponse'
description: Ok
summary: List resource provider allocations
tags:
- resource_providers
parameters:
- $ref: '#/components/parameters/resource_providers_allocations_uuid'
/resource_providers/{uuid}/inventories:
delete:
description: |-
Deletes all inventory records for the resource provider identified by {uuid}.
**Troubleshooting**
The request returns an HTTP 409 when there are allocations against
the provider or if the provider’s inventory is updated by another
thread while attempting the operation.
Normal Response Codes: 204
Error response codes: itemNotFound(404), conflict(409)
operationId: resource_providers/uuid/inventories:delete
responses:
'204':
description: Ok
summary: Delete resource provider inventories
tags:
- resource_providers
x-openstack:
min-ver: '1.5'
get:
description: |-
Normal Response Codes: 200
Error response codes: itemNotFound(404)
operationId: resource_providers/uuid/inventories:get
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProvidersInventoriesGet_InventoriesResponse'
description: Ok
summary: List resource provider inventories
tags:
- resource_providers
parameters:
- $ref: '#/components/parameters/resource_providers_inventories_uuid'
post:
description: |-
POST to create one inventory.
On success return a 201 response, a location header pointing
to the newly created inventory and an application/json representation
of the inventory.
operationId: resource_providers/uuid/inventories:post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProvidersInventoriesCreate_InventoryRequest'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProvidersInventoriesCreate_InventoryResponse'
description: Ok
tags:
- resource_providers
put:
description: |-
Replaces the set of inventory records for the resource provider identified by {uuid}.
Normal Response Codes: 200
Error response codes: badRequest(400), itemNotFound(404), conflict(409)
operationId: resource_providers/uuid/inventories:put
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProvidersInventoriesSet_InventoriesRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProvidersInventoriesSet_InventoriesResponse'
description: Ok
summary: Update resource provider inventories
tags:
- resource_providers
/resource_providers/{uuid}/inventories/{resource_class}:
delete:
description: |-
Delete the inventory record of the {resource_class} for
the resource provider identified by {uuid}.
See [Troubleshooting](?expanded=delete-resource-provider-inventories-detail#delete-resource-provider-inventories) section in `Delete resource provider
inventories` for a description. In addition, the request returns
HTTP 409 when there are allocations for the specified resource
provider and resource class.
Normal Response Codes: 204
Error response codes: itemNotFound(404), conflict(409)
operationId: resource_providers/uuid/inventories/resource_class:delete
responses:
'204':
description: Ok
summary: Delete resource provider inventory
tags:
- resource_providers
get:
description: |-
Normal Response Codes: 200
Error response codes: itemNotFound(404)
operationId: resource_providers/uuid/inventories/resource_class:get
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProvidersInventoryGet_InventoryResponse'
description: Ok
summary: Show resource provider inventory
tags:
- resource_providers
parameters:
- $ref: '#/components/parameters/resource_providers_inventories_resource_class'
- $ref: '#/components/parameters/resource_providers_inventories_uuid'
put:
description: |-
Replace the inventory record of the {resource_class} for the resource
provider identified by {uuid}.
Normal Response Codes: 200
Error response codes: badRequest(400), itemNotFound(404), conflict(409)
operationId: resource_providers/uuid/inventories/resource_class:put
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProvidersInventoryUpdate_InventoryRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProvidersInventoryUpdate_InventoryResponse'
description: Ok
summary: Update resource provider inventory
tags:
- resource_providers
/resource_providers/{uuid}/traits:
delete:
description: |-
Dissociate all the traits from the resource provider identified by {uuid}.
Normal Response Codes: 204
Error response codes: itemNotFound(404), conflict(409)
operationId: resource_providers/uuid/traits:delete
responses:
'204':
description: Ok
summary: Delete resource provider traits
tags:
- resource_providers
x-openstack:
min-ver: '1.6'
get:
description: |-
Return a list of traits for the resource provider identified by {uuid}.
Normal Response Codes: 200
Error response codes: itemNotFound(404)
operationId: resource_providers/uuid/traits:get
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProvidersTraitsList_Traits_For_Resource_ProviderResponse'
description: Ok
summary: List resource provider traits
tags:
- resource_providers
x-openstack:
min-ver: '1.6'
parameters:
- $ref: '#/components/parameters/resource_providers_traits_uuid'
put:
description: |-
Associate traits with the resource provider identified by {uuid}.
All the associated traits will be replaced by the traits specified in
the request body.
Normal Response Codes: 200
Error response codes: badRequest(400), itemNotFound(404), conflict(409)
operationId: resource_providers/uuid/traits:put
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProvidersTraitsUpdate_Traits_For_Resource_ProviderRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProvidersTraitsUpdate_Traits_For_Resource_ProviderResponse'
description: Ok
summary: Update resource provider traits
tags:
- resource_providers
x-openstack:
min-ver: '1.6'
/resource_providers/{uuid}/usages:
get:
description: |-
Return a report of usage information for resources associated with
the resource provider identified by {uuid}. The value is a dictionary
of resource classes paired with the sum of the allocations of that
resource class for this resource provider.
Normal Response Codes: 200
Error response codes: itemNotFound(404)
operationId: resource_providers/uuid/usages:get
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Resource_ProvidersUsagesList_UsagesResponse'
description: Ok
summary: List resource provider usages
tags:
- resource_providers
parameters:
- $ref: '#/components/parameters/resource_providers_usages_uuid'
/traits:
get:
description: |-
Return a list of valid trait strings according to parameters specified.
Normal Response Codes: 200
operationId: traits:get
parameters:
- $ref: '#/components/parameters/associated'
- $ref: '#/components/parameters/name'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TraitsList_TraitsResponse'
description: Ok
summary: List traits
tags:
- traits
x-openstack:
min-ver: '1.6'
/traits/{name}:
delete:
description: |-
Delete the trait specified be {name}. Note that only custom traits can be
deleted.
Normal Response Codes: 204
Error response codes: badRequest(400), itemNotFound(404), conflict(409)
operationId: traits/name:delete
responses:
'204':
description: Ok
summary: Delete traits
tags:
- traits
x-openstack:
min-ver: '1.6'
get:
description: |-
Check if a trait name exists in this cloud.
Normal Response Codes: 204
Error response codes: itemNotFound(404)
operationId: traits/name:get
responses:
'200':
description: Ok
summary: Show traits
tags:
- traits
x-openstack:
min-ver: '1.6'
parameters:
- $ref: '#/components/parameters/traits_name'
put:
description: |-
Insert a new custom trait. If traits already exists 204 will be returned.
There are two kinds of traits: the standard traits and the custom traits.
The standard traits are interoperable across different OpenStack cloud
deployments. The definition of standard traits comes from the os-traits
library. The standard traits are read-only in the placement API which means
that the user can’t modify any standard traits through API.
The custom traits are used by admin users to manage the non-standard
qualitative information of resource providers.
Normal Response Codes: 201, 204
Error response codes: badRequest(400)
operationId: traits/name:put
responses:
'200':
description: Ok
summary: Update traits
tags:
- traits
x-openstack:
min-ver: '1.6'
/usages:
get:
description: |-
Return a report of usage information for resources associated with the
project identified by project_id and user identified by
user_id. The value is a dictionary of resource classes paired with
the sum of the allocations of that resource class for provided
parameters.
Normal Response Codes: 200
Error response codes: badRequest(400)
operationId: usages:get
parameters:
- $ref: '#/components/parameters/consumer_type'
- $ref: '#/components/parameters/project_id'
- $ref: '#/components/parameters/user_id'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UsagesGet_Total_UsagesResponse'
description: Ok
summary: List usages
tags:
- usages
x-openstack:
min-ver: '1.9'
components:
parameters:
allocations_consumer_uuid:
description: consumer_uuid parameter for /allocations/{consumer_uuid} API
in: path
name: consumer_uuid
required: true
schema:
type: string
associated:
description: If this parameter has a true value, the returned traits will
be those that are associated with at least one resource provider.
Available values for the parameter are true and false.
in: query
name: associated
schema:
enum:
- 'false'
- 'true'
type:
- boolean
- string
x-openstack:
is-flag: true
consumer_type:
description: A string that consists of numbers, A-Z, and _ describing the
consumer type by which to filter usage results. For example, to retrieve
only usage information for ‘INSTANCE’ type consumers a parameter of
consumer_type=INSTANCE should be provided. The all query parameter may
be specified to group all results under one key, all. The unknown query
parameter may be specified to group all results under one key, unknown.
in: query
name: consumer_type
schema:
type: string
x-openstack:
min-ver: '1.38'
group_policy:
description: When more than one resourcesN query parameter is supplied,
group_policy is required to indicate how the groups should interact.
With group_policy=none, separate groupings - with or without a suffix -
may or may not be satisfied by the same provider. With
group_policy=isolate, suffixed groups are guaranteed to be satisfied by
different providers - though there may still be overlap with the
suffixless group.
in: query
name: group_policy
schema:
type: string
x-openstack:
min-ver: '1.25'
in_tree:
description: A string representing a resource provider uuid. When
supplied, it will filter the returned allocation candidates to only
those resource providers that are in the same tree with the given
resource provider.
in: query
name: in_tree
schema:
type: string
x-openstack:
min-ver: '1.14'
limit:
description: A positive integer used to limit the maximum number of
allocation candidates returned in the response.
in: query
name: limit
schema:
type: integer
x-openstack:
min-ver: '1.16'
member_of:
description: "A string representing an aggregate uuid; or the prefix in: followed
by a comma-separated list of strings representing aggregate uuids. The resource
providers in the allocation request in the response must directly or via the
root provider be associated with the aggregate or aggregates identified by
uuid:\n``member_of=5e08ea53-c4c6-448e-9334-ac4953de3cfa``, ``member_of=in:42896e0d-205d-4fe3-bd1e-100924931787,5e08ea53-c4c6-448e-9334-ac4953de3cfa``\n\
Starting from microversion 1.24 specifying multiple member_of query string
parameters is possible. Multiple member_of parameters will result in filtering
providers that are directly or via root provider associated with aggregates
listed in all of the member_of query string values. For example, to get the
providers that are associated with aggregate A as well as associated with
any of aggregates B or C, the user could issue the following query: ``member_of=AGGA_UUID&member_of=in:AGGB_UUID,AGGC_UUID``\n\
Starting from microversion 1.32 specifying forbidden aggregates is supported
in the member_of query string parameter. Forbidden aggregates are prefixed
with a !. This negative expression can also be used in multiple member_of
parameters: ``member_of=AGGA_UUID&member_of=!AGGB_UUID`` would translate logically
to “Candidate resource providers must be in AGGA and not in AGGB.” We do NOT
support ! on the values within in:, but we support !in:. Both of the following
two example queries return candidate resource providers that are NOT in AGGA,
AGGB, or AGGC: ``member_of=!in:AGGA_UUID,AGGB_UUID,AGGC_UUID``, ``member_of=!AGGA_UUID&member_of=!AGGB_UUID&member_of=!AGGC_UUID``\n\
We do not check if the same aggregate uuid is in both positive and negative
expression to return 400 BadRequest. We still return 200 for such cases. For
example: ``member_of=AGGA_UUID&member_of=!AGGA_UUID`` would return empty allocation_requests
and provider_summaries, while: ``member_of=in:AGGA_UUID,AGGB_UUID&member_of=!AGGA_UUID``
would return resource providers that are NOT in AGGA but in AGGB."
explode: true
in: query
name: member_of
schema:
items:
type: string
type: array
style: form
x-openstack:
min-ver: '1.3'
name:
description: The name of a resource provider to filter the list.
in: query
name: name
schema:
type: string
project_id:
description: The uuid of a project.
in: query
name: project_id
required: true
schema:
format: uuid
type: string
x-openstack:
resource_link: identity/v3/project.id
required:
description: "A comma-separated list of traits that a provider must have:\n\
\ ``required=HW_CPU_X86_AVX,HW_CPU_X86_SSE``\n Allocation requests in the
response will be for resource providers that have capacity for all requested
resources and the set of those resource providers will collectively contain
all of the required traits. These traits may be satisfied by any provider
in the same non-sharing tree or associated via aggregate as far as that provider
also contributes resource to the request. Starting from microversion 1.22
traits which are forbidden from any resource provider contributing resources
to the request may be expressed by prefixing a trait with a `!`.\nStarting
from microversion 1.39 the required query parameter can be repeated. The trait
lists from the repeated parameters are AND-ed together. So:\n``required=T1,!T2&required=T3``
means T1 and not T2 and T3.\n Also starting from microversion 1.39 the required
parameter supports the syntax:\n``required=in:T1,T2,T3`` which means T1 or
T2 or T3.\nMixing forbidden traits into an in: prefixed value is not supported
and rejected. But mixing a normal trait list and an in: prefixed trait list
in two query params within the same request is supported. So: ``required=in:T3,T4&required=T1,!T2``
is supported and it means T1 and not T2 and (T3 or T4)."
explode: true
in: query
name: required
schema:
items:
type: string
type: array
style: form
x-openstack:
min-ver: '1.18'
resource_classes_name:
description: name parameter for /resource_classes/{name} API
in: path
name: name
required: true
schema:
type: string
resource_providers_aggregates_uuid:
description: uuid parameter for /resource_providers/{uuid}/aggregates API
in: path
name: uuid
required: true
schema:
type: string
resource_providers_allocations_uuid:
description: uuid parameter for /resource_providers/{uuid}/allocations API
in: path
name: uuid
required: true
schema:
type: string
resource_providers_inventories_resource_class:
description: resource_class parameter for
/resource_providers/{uuid}/inventories/{resource_class} API
in: path
name: resource_class
required: true
schema:
type: string
resource_providers_inventories_uuid:
description: uuid parameter for
/resource_providers/{uuid}/inventories/{resource_class} API
in: path
name: uuid
required: true
schema:
type: string
resource_providers_traits_uuid:
description: uuid parameter for /resource_providers/{uuid}/traits API
in: path
name: uuid
required: true
schema:
type: string
resource_providers_usages_uuid:
description: uuid parameter for /resource_providers/{uuid}/usages API
in: path
name: uuid
required: true
schema:
type: string
resource_providers_uuid:
description: uuid parameter for /resource_providers/{uuid} API
in: path
name: uuid
required: true
schema:
type: string
resources:
description: 'A comma-separated list of strings indicating an amount of resource
of a specified class that providers in each allocation request must collectively
have the capacity and availability to serve: ``resources=VCPU:4,DISK_GB:64,MEMORY_MB:2048``
These resources may be satisfied by any provider in the same non-sharing tree
or associated via aggregate.'
in: query
name: resources
schema:
type: string
x-openstack:
min-ver: '1.4'
root_required:
description: 'A comma-separated list of trait requirements that the root provider
of the (non-sharing) tree must satisfy: ``root_required=COMPUTE_SUPPORTS_MULTI_ATTACH,!CUSTOM_WINDOWS_LICENSED``
Allocation requests in the response will be limited to those whose (non-sharing)
tree’s root provider satisfies the specified trait requirements. Traits which
are forbidden (must not be present on the root provider) are expressed by
prefixing the trait with a !.'
in: query
name: root_required
schema:
type: string
x-openstack:
min-ver: '1.35'
same_subtree:
description: A comma-separated list of request group suffix strings ($S).
Each must exactly match a suffix on a granular group somewhere else in
the request. Importantly, the identified request groups need not have a
resources[$S]. If this is provided, at least one of the resource
providers satisfying a specified request group must be an ancestor of
the rest. The same_subtree query parameter can be repeated and each
repeat group is treated independently.
in: query
name: same_subtree
schema:
type: string
x-openstack:
min-ver: '1.36'
traits_name:
description: name parameter for /traits/{name} API
in: path
name: name
required: true
schema:
type: string
user_id:
description: The uuid of a user.
in: query
name: user_id
schema:
format: uuid
type: string
x-openstack:
resource_link: identity/v3/user.id
uuid:
description: The uuid of a resource provider.
in: query
name: uuid
schema:
type: string
schemas:
AllocationList_For_ConsumerResponse:
additionalProperties: false
properties:
allocations:
additionalProperties: false
description: |-
A dictionary of allocations keyed by resource provider uuid.
minProperties: 0
patternProperties:
^[0-9a-fA-F-]{36}$:
additionalProperties: false
properties:
generation:
type: integer
resources:
additionalProperties: false
minProperties: 1
patternProperties:
^[A-Z0-9_]+$:
minimum: 1
type: integer
type: object
required:
- resources
type: object
type: object
consumer_generation:
additionalProperties: false
description: |-
The generation of the consumer. Will be absent when listing allocations for a consumer uuid that has no allocations.
**New in version 1.28**
type:
- integer
- 'null'
consumer_type:
description: |-
A string that consists of numbers, `A-Z`, and `_` describing what kind of consumer is creating, or has created, allocations using a quantity of inventory. The string is determined by the client when writing allocations and it is up to the client to ensure correct choices amongst collaborating services. For example, the compute service may choose to type some consumers ‘INSTANCE’ and others ‘MIGRATION’.
**New in version 1.38**
maxLength: 255
minLength: 1
pattern: ^[A-Z0-9_]+$
type: string
mappings:
minProperties: 1
patternProperties:
'[a-zA-Z0-9_-]{1,64}':
items:
format: uuid
type: string
minItems: 1
type: array
type: object
project_id:
description: |-
The uuid of a project. Will be absent when listing allocations for a consumer uuid that has no allocations.
**New in version 1.12**
maxLength: 255
minLength: 1
type: string
user_id:
description: |-
The uuid of a user. Will be absent when listing allocations for a consumer uuid that has no allocations.
**New in version 1.12**
maxLength: 255
minLength: 1
type: string
required:
- allocations
type: object
AllocationSet_Allocations_For_ConsumerRequest:
oneOf:
- additionalProperties: false
properties:
allocations:
items:
additionalProperties: false
properties:
resource_provider:
additionalProperties: false
properties:
uuid:
format: uuid
type: string
required:
- uuid
type: object
resources:
additionalProperties: false
minProperties: 1
patternProperties:
^[A-Z0-9_]+$:
minimum: 1
type: integer
type: object
required:
- resource_provider
- resources
type: object
minItems: 1
type: array
project_id:
maxLength: 255
minLength: 1
type: string
user_id:
maxLength: 255
minLength: 1
type: string
required:
- allocations
- project_id
- user_id
type: object
x-openstack:
max-ver: '1.11'
min-ver: '1.8'
- additionalProperties: false
properties:
allocations:
items:
additionalProperties: false
properties:
resource_provider:
additionalProperties: false
properties:
uuid:
format: uuid
type: string
required:
- uuid
type: object
resources:
additionalProperties: false
minProperties: 1
patternProperties:
^[A-Z0-9_]+$:
minimum: 1
type: integer
type: object
required:
- resource_provider
- resources
type: object
minItems: 1
type: array
required:
- allocations
type: object
x-openstack:
max-ver: '1.7'
min-ver: '1.0'
- additionalProperties: false
properties:
allocations:
additionalProperties: false
minProperties: 0
patternProperties:
^[0-9a-fA-F-]{36}$:
additionalProperties: false
properties:
generation:
type: integer
resources:
additionalProperties: false
minProperties: 1
patternProperties:
^[A-Z0-9_]+$:
minimum: 1
type: integer
type: object
required:
- resources
type: object
type: object
consumer_generation:
additionalProperties: false
type:
- integer
- 'null'
consumer_type:
maxLength: 255
minLength: 1
pattern: ^[A-Z0-9_]+$
type: string
mappings:
minProperties: 1
patternProperties:
'[a-zA-Z0-9_-]{1,64}':
items:
format: uuid
type: string
minItems: 1
type: array
type: object
project_id:
maxLength: 255
minLength: 1
type: string
user_id:
maxLength: 255
minLength: 1
type: string
required:
- allocations
- consumer_generation
- consumer_type
- project_id
- user_id
type: object
x-openstack:
min-ver: '1.38'
- additionalProperties: false
properties:
allocations:
additionalProperties: false
minProperties: 0
patternProperties:
^[0-9a-fA-F-]{36}$:
additionalProperties: false
properties:
generation:
type: integer
resources:
additionalProperties: false
minProperties: 1
patternProperties:
^[A-Z0-9_]+$:
minimum: 1
type: integer
type: object
required:
- resources
type: object
type: object
consumer_generation:
additionalProperties: false
type:
- integer
- 'null'
project_id:
maxLength: 255
minLength: 1
type: string
user_id:
maxLength: 255
minLength: 1
type: string
required:
- allocations
- consumer_generation
- project_id
- user_id
type: object
x-openstack:
max-ver: '1.36'
min-ver: '1.28'
- additionalProperties: false
properties:
allocations:
additionalProperties: false
minProperties: 1
patternProperties:
^[0-9a-fA-F-]{36}$:
additionalProperties: false
properties:
generation:
type: integer
resources:
additionalProperties: false
minProperties: 1
patternProperties:
^[A-Z0-9_]+$:
minimum: 1
type: integer
type: object
required:
- resources
type: object
type: object
project_id:
maxLength: 255
minLength: 1
type: string
user_id:
maxLength: 255
minLength: 1
type: string
required:
- allocations
- project_id
- user_id
type: object
x-openstack:
max-ver: '1.27'
min-ver: '1.12'
x-openstack:
discriminator: microversion
Allocation_CandidatesList_Allocation_CandidatesResponse:
properties:
allocation_requests:
description: A list of objects that contain a serialized HTTP body
that a client may subsequently use in a call to PUT
/allocations/{consumer_uuid} to claim resources against a related
set of resource providers.
items:
additionalProperties: false
properties:
allocations:
patternProperties:
^[0-9a-fA-F-]{36}$:
properties:
resources:
patternProperties:
^[A-Z0-9_]+$:
type: integer
type: object
type: object
type: object
mappings:
patternProperties:
'[a-zA-Z0-9_-]*':
items:
type: string
type: array
type: object
x-openstack:
min-ver: '1.34'
required:
- allocations
type: object
type: array
provider_summaries:
patternProperties:
^[0-9a-fA-F-]{36}$:
properties:
parent_provider_uuid:
type:
- 'null'
- string
x-openstack:
min-ver: '1.29'
resources:
patternProperties:
^[A-Z0-9_]+$:
properties:
capacity:
description: The amount of the resource that the
provider can accommodate.
type: integer
used:
description: The amount of the resource that has been
already allocated.
type: integer
type: object
type: object
root_provider_uuid:
type:
- 'null'
- string
x-openstack:
min-ver: '1.29'
traits:
items:
type: string
type: array
x-openstack:
min-ver: '1.17'
required:
- resources
type: object
type: object
type: object
AllocationsSet_AllocationsRequest:
oneOf:
- additionalProperties: false
minProperties: 1
patternProperties:
^[0-9a-fA-F-]{36}$:
additionalProperties: false
properties:
allocations:
additionalProperties: false
minProperties: 0
patternProperties:
^[0-9a-fA-F-]{36}$:
additionalProperties: false
properties:
generation:
type: integer
resources:
additionalProperties: false
minProperties: 1
patternProperties:
^[A-Z0-9_]+$:
minimum: 1
type: integer
type: object
required:
- resources
type: object
type: object
consumer_generation:
additionalProperties: false
type:
- integer
- 'null'
consumer_type:
maxLength: 255
minLength: 1
pattern: ^[A-Z0-9_]+$
type: string
mappings:
minProperties: 1
patternProperties:
'[a-zA-Z0-9_-]{1,64}':
items:
format: uuid
type: string
minItems: 1
type: array
type: object
project_id:
maxLength: 255
minLength: 1
type: string
user_id:
maxLength: 255
minLength: 1
type: string
required:
- allocations
- consumer_generation
- consumer_type
- project_id
- user_id
type: object
type: object
x-openstack:
min-ver: '1.38'
- additionalProperties: false
minProperties: 1
patternProperties:
^[0-9a-fA-F-]{36}$:
additionalProperties: false
properties:
allocations:
additionalProperties: false
minProperties: 0
patternProperties:
^[0-9a-fA-F-]{36}$:
additionalProperties: false
properties:
generation:
type: integer
resources:
additionalProperties: false
minProperties: 1
patternProperties:
^[A-Z0-9_]+$:
minimum: 1
type: integer
type: object
required:
- resources
type: object
type: object
consumer_generation:
additionalProperties: false
type:
- integer
- 'null'
mappings:
minProperties: 1
patternProperties:
'[a-zA-Z0-9_-]{1,64}':
items:
format: uuid
type: string
minItems: 1
type: array
type: object
project_id:
maxLength: 255
minLength: 1
type: string
user_id:
maxLength: 255
minLength: 1
type: string
required:
- allocations
- consumer_generation
- project_id
- user_id
type: object
type: object
x-openstack:
max-ver: '1.37'
min-ver: '1.34'
- additionalProperties: false
minProperties: 1
patternProperties:
^[0-9a-fA-F-]{36}$:
additionalProperties: false
properties:
allocations:
additionalProperties: false
minProperties: 0
patternProperties:
^[0-9a-fA-F-]{36}$:
additionalProperties: false
properties:
generation:
type: integer
resources:
additionalProperties: false
minProperties: 1
patternProperties:
^[A-Z0-9_]+$:
minimum: 1
type: integer
type: object
required:
- resources
type: object
type: object
consumer_generation:
additionalProperties: false
type:
- integer
- 'null'
project_id:
maxLength: 255
minLength: 1
type: string
user_id:
maxLength: 255
minLength: 1
type: string
required:
- allocations
- consumer_generation
- project_id
- user_id
type: object
type: object
x-openstack:
max-ver: '1.33'
min-ver: '1.28'
- additionalProperties: false
minProperties: 1
patternProperties:
^[0-9a-fA-F-]{36}$:
additionalProperties: false
properties:
allocations:
additionalProperties: false
minProperties: 0
patternProperties:
^[0-9a-fA-F-]{36}$:
additionalProperties: false
properties:
generation:
type: integer
resources:
additionalProperties: false
minProperties: 1
patternProperties:
^[A-Z0-9_]+$:
minimum: 1
type: integer
type: object
required:
- resources
type: object
type: object
project_id:
maxLength: 255
minLength: 1
type: string
user_id:
maxLength: 255
minLength: 1
type: string
required:
- allocations
- project_id
- user_id
type: object
type: object
x-openstack:
max-ver: '1.27'
min-ver: '1.13'
x-openstack:
discriminator: microversion
ReshaperReshapeRequest:
oneOf:
- additionalProperties: false
properties:
allocations:
additionalProperties: false
description: |-
A dictionary of multiple allocations, keyed by consumer uuid. Each collection of allocations describes the full set of allocations for each consumer. Each consumer allocations dict is itself a dictionary of resource allocations keyed by resource provider uuid. An empty dictionary indicates no change in existing allocations, whereas an empty `allocations` dictionary **within** a consumer dictionary indicates that all allocations for that consumer should be deleted.
minProperties: 0
patternProperties:
^[0-9a-fA-F-]{36}$:
additionalProperties: false
properties:
allocations:
additionalProperties: false
description: A dictionary of resource allocations keyed by
resource provider uuid. If this is an empty object,
allocations for this consumer will be removed.
minProperties: 0
patternProperties:
^[0-9a-fA-F-]{36}$:
additionalProperties: false
properties:
generation:
type: integer
resources:
additionalProperties: false
description: A dictionary of resource records
keyed by resource class name.
minProperties: 1
patternProperties:
^[A-Z0-9_]+$:
minimum: 1
type: integer
type: object
required:
- resources
type: object
type: object
consumer_generation:
description: The generation of the consumer. Should be set
to null when indicating that the caller expects the
consumer does not yet exist.
type:
- integer
- 'null'
consumer_type:
description: A string that consists of numbers, A-Z, and _
describing what kind of consumer is creating, or has
created, allocations using a quantity of inventory. The
string is determined by the client when writing
allocations and it is up to the client to ensure correct
choices amongst collaborating services. For example, the
compute service may choose to type some consumers
‘INSTANCE’ and others ‘MIGRATION’.
maxLength: 255
minLength: 1
pattern: ^[A-Z0-9_]+$
type: string
mappings:
description: A dictionary associating request group
suffixes with a list of uuids identifying the resource
providers that satisfied each group. The empty string
and [a-zA-Z0-9_-]+ are valid suffixes. This field may be
sent when writing allocations back to the server but
will be ignored; this preserves symmetry between read
and write representations.
minProperties: 1
patternProperties:
'[a-zA-Z0-9_-]{1,64}':
items:
format: uuid
type: string
minItems: 1
type: array
type: object
project_id:
description: The uuid of a project.
maxLength: 255
minLength: 1
type: string
user_id:
description: The uuid of a user.
maxLength: 255
minLength: 1
type: string
required:
- allocations
- consumer_generation
- consumer_type
- project_id
- user_id
type: object
type: object
inventories:
additionalProperties: false
description: |-
A dictionary of multiple inventories, keyed by resource provider uuid. Each inventory describes the desired full inventory for each resource provider. An empty dictionary causes the inventory for that provider to be deleted.
minProperties: 1
patternProperties:
^[0-9a-fA-F-]{36}$:
additionalProperties: false
properties:
inventories:
description: A dictionary of inventories keyed by resource
classes.
patternProperties:
^[A-Z0-9_]+$:
additionalProperties: false
properties:
allocation_ratio:
type: number
max_unit:
minimum: 1
type: integer
min_unit:
minimum: 1
type: integer
reserved:
minimum: 0
type: integer
resource_provider_generation:
type: integer
step_size:
minimum: 1
type: integer
total:
minimum: 1
type: integer
required:
- total
type: object
type: object
resource_provider_generation:
description: A consistent view marker that assists with
the management of concurrent resource provider updates.
type: integer
required:
- inventories
- resource_provider_generation
type: object
type: object
required:
- allocations
- inventories
type: object
x-openstack:
min-ver: '1.38'
- additionalProperties: false
properties:
allocations:
additionalProperties: false
description: |-
A dictionary of multiple allocations, keyed by consumer uuid. Each collection of allocations describes the full set of allocations for each consumer. Each consumer allocations dict is itself a dictionary of resource allocations keyed by resource provider uuid. An empty dictionary indicates no change in existing allocations, whereas an empty `allocations` dictionary **within** a consumer dictionary indicates that all allocations for that consumer should be deleted.
minProperties: 0
patternProperties:
^[0-9a-fA-F-]{36}$:
additionalProperties: false
properties:
allocations:
additionalProperties: false
description: A dictionary of resource allocations keyed by
resource provider uuid. If this is an empty object,
allocations for this consumer will be removed.
minProperties: 0
patternProperties:
^[0-9a-fA-F-]{36}$:
additionalProperties: false
properties:
generation:
type: integer
resources:
additionalProperties: false
description: A dictionary of resource records
keyed by resource class name.
minProperties: 1
patternProperties:
^[A-Z0-9_]+$:
minimum: 1
type: integer
type: object
required:
- resources
type: object
type: object
consumer_generation:
description: The generation of the consumer. Should be set
to null when indicating that the caller expects the
consumer does not yet exist.
type:
- integer
- 'null'
mappings:
description: A dictionary associating request group
suffixes with a list of uuids identifying the resource
providers that satisfied each group. The empty string
and [a-zA-Z0-9_-]+ are valid suffixes. This field may be
sent when writing allocations back to the server but
will be ignored; this preserves symmetry between read
and write representations.
minProperties: 1
patternProperties:
'[a-zA-Z0-9_-]{1,64}':
items:
format: uuid
type: string
minItems: 1
type: array
type: object
project_id:
description: The uuid of a project.
maxLength: 255
minLength: 1
type: string
user_id:
description: The uuid of a user.
maxLength: 255
minLength: 1
type: string
required:
- allocations
- consumer_generation
- project_id
- user_id
type: object
type: object
inventories:
additionalProperties: false
description: |-
A dictionary of multiple inventories, keyed by resource provider uuid. Each inventory describes the desired full inventory for each resource provider. An empty dictionary causes the inventory for that provider to be deleted.
minProperties: 1
patternProperties:
^[0-9a-fA-F-]{36}$:
additionalProperties: false
properties:
inventories:
description: A dictionary of inventories keyed by resource
classes.
patternProperties:
^[A-Z0-9_]+$:
additionalProperties: false
properties:
allocation_ratio:
type: number
max_unit:
minimum: 1
type: integer
min_unit:
minimum: 1
type: integer
reserved:
minimum: 0
type: integer
resource_provider_generation:
type: integer
step_size:
minimum: 1
type: integer
total:
minimum: 1
type: integer
required:
- total
type: object
type: object
resource_provider_generation:
description: A consistent view marker that assists with
the management of concurrent resource provider updates.
type: integer
required:
- inventories
- resource_provider_generation
type: object
type: object
required:
- allocations
- inventories
type: object
x-openstack:
max-ver: '1.37'
min-ver: '1.34'
x-openstack:
discriminator: microversion
Resource_ClassGet_Resource_ClassResponse:
additionalProperties: false
properties:
links:
description: |-
A list of links associated with one resource class.
items:
properties:
href:
format: uri
type: string
rel:
type: string
type: object
readOnly: true
type: array
name:
description: |-
The name of one resource class.
type: string
type: object
Resource_ClassUpdate_Resource_ClassRequest:
oneOf:
- type: 'null'
x-openstack:
min-ver: '1.7'
x-openstack:
discriminator: microversion
Resource_ClassUpdate_Resource_ClassResponse:
additionalProperties: false
properties:
links:
description: |-
A list of links associated with one resource class.
items:
properties:
href:
format: uri
type: string
rel:
type: string
type: object
readOnly: true
type: array
name:
description: |-
The name of one resource class.
type: string
type: object
Resource_ClassesCreate_Resource_ClassRequest:
additionalProperties: false
properties:
links:
description: |-
A list of links associated with one resource class.
items:
properties:
href:
format: uri
type: string
rel:
type: string
type: object
readOnly: true
type: array
name:
description: |-
The name of one resource class.
type: string
type: object
Resource_ClassesCreate_Resource_ClassResponse:
additionalProperties: false
properties:
links:
description: |-
A list of links associated with one resource class.
items:
properties:
href:
format: uri
type: string
rel:
type: string
type: object
readOnly: true
type: array
name:
description: |-
The name of one resource class.
type: string
type: object
Resource_ClassesList_Resource_ClassesResponse:
additionalProperties: false
properties:
resource_classes:
description: |-
A list of `resource_class` objects.
items:
additionalProperties: false
properties:
links:
description: |-
A list of links associated with one resource class.
items:
properties:
href:
format: uri
type: string
rel:
type: string
type: object
readOnly: true
type: array
name:
description: |-
The name of one resource class.
type: string
type: object
type: array
type: object
Resource_ProviderGet_Resource_ProviderResponse:
additionalProperties: false
properties:
generation:
description: |-
A consistent view marker that assists with the management of concurrent resource provider updates.
type: integer
links:
description: |-
A list of links associated with one resource provider.
Note
Aggregates relationship link is available starting from version 1.1.
Traits relationship link is available starting from version 1.6.
Allocations relationship link is available starting from version 1.11.
items:
properties:
href:
format: uri
type: string
rel:
type: string
type: object
type: array
name:
description: |-
The name of one resource provider.
type: string
parent_provider_uuid:
description: |-
The UUID of the immediate parent of the resource provider.
**New in version 1.14**
type: string
x-openstack:
min-ver: '1.14'
root_provider_uuid:
description: |-
Read-only UUID of the top-most provider in this provider tree.
**New in version 1.14**
type: string
x-openstack:
min-ver: '1.14'
uuid:
description: |-
The uuid of a resource provider.
format: uuid
type: string
required:
- generation
- links
- name
- uuid
type: object
Resource_ProviderUpdate_Resource_ProviderRequest:
oneOf:
- additionalProperties: false
properties:
name:
description: |-
The name of one resource provider.
maxLength: 200
type: string
parent_provider_uuid:
anyOf:
- type: 'null'
- format: uuid
type: string
description: |-
The UUID of the immediate parent of the resource provider.
* Before version `1.37`, once set, the parent of a resource provider
cannot be changed.
* Since version `1.37`, it can be set to any existing provider UUID
excepts to providers that would cause a loop. Also it can be set to null
to transform the provider to a new root provider. This operation needs
to be used carefully. Moving providers can mean that the original rules
used to create the existing resource allocations may be invalidated
by that move.
**New in version 1.14**
required:
- name
type: object
x-openstack:
min-ver: '1.14'
- additionalProperties: false
properties:
name:
description: |-
The name of one resource provider.
maxLength: 200
type: string
required:
- name
type: object
x-openstack:
max-ver: '1.13'
min-ver: '1.0'
x-openstack:
discriminator: microversion
Resource_ProviderUpdate_Resource_ProviderResponse:
additionalProperties: false
properties:
generation:
description: |-
A consistent view marker that assists with the management of concurrent resource provider updates.
type: integer
links:
description: |-
A list of links associated with one resource provider.
Note
Aggregates relationship link is available starting from version 1.1.
Traits relationship link is available starting from version 1.6.
Allocations relationship link is available starting from version 1.11.
items:
properties:
href:
format: uri
type: string
rel:
type: string
type: object
type: array
name:
description: |-
The name of one resource provider.
type: string
parent_provider_uuid:
description: |-
The UUID of the immediate parent of the resource provider.
**New in version 1.14**
type: string
x-openstack:
min-ver: '1.14'
root_provider_uuid:
description: |-
Read-only UUID of the top-most provider in this provider tree.
**New in version 1.14**
type: string
x-openstack:
min-ver: '1.14'
uuid:
description: |-
The uuid of a resource provider.
format: uuid
type: string
required:
- generation
- links
- name
- uuid
type: object
Resource_ProvidersAggregatesGet_AggregatesResponse:
additionalProperties: false
properties:
aggregates:
description: A list of aggregate uuids. Previously nonexistent
aggregates are created automatically.
items:
format: uuid
type: string
type: array
uniqueItems: true
resource_provider_generation:
description: A consistent view marker that assists with the management
of concurrent resource provider updates.
type: integer
x-openstack:
min-ver: '1.19'
required:
- aggregates
- resource_provider_generation
type: object
Resource_ProvidersAggregatesSet_AggregatesRequest:
oneOf:
- items:
format: uuid
type: string
type: array
uniqueItems: true
x-openstack:
max-ver: '1.18'
min-ver: '1.1'
- additionalProperties: false
properties:
aggregates:
items:
format: uuid
type: string
type: array
uniqueItems: true
resource_provider_generation:
type: integer
required:
- aggregates
- resource_provider_generation
type: object
x-openstack:
min-ver: '1.19'
x-openstack:
discriminator: microversion
Resource_ProvidersAggregatesSet_AggregatesResponse:
additionalProperties: false
properties:
aggregates:
description: A list of aggregate uuids. Previously nonexistent
aggregates are created automatically.
items:
format: uuid
type: string
type: array
uniqueItems: true
resource_provider_generation:
description: A consistent view marker that assists with the management
of concurrent resource provider updates.
type: integer
x-openstack:
min-ver: '1.19'
required:
- aggregates
- resource_provider_generation
type: object
Resource_ProvidersAllocationsList_For_Resource_ProviderResponse:
additionalProperties: false
properties:
allocations:
description: |-
A dictionary of allocation records keyed by consumer uuid.
minProperties: 0
patternProperties:
^[0-9a-fA-F-]{36}$:
additionalProperties: false
description: A dictionary of allocation records keyed by consumer
uuid.
properties:
resources:
additionalProperties: false
description: A dictionary of resource records keyed by
resource class name.
minProperties: 1
patternProperties:
^[A-Z0-9_]+$:
minimum: 1
type: integer
type: object
required:
- resources
type: object
type: object
resource_provider_generation:
description: |-
A consistent view marker that assists with the management of concurrent resource provider updates.
type: integer
required:
- allocations
- resource_provider_generation
type: object
Resource_ProvidersCreate_Resource_ProviderRequest:
oneOf:
- additionalProperties: false
properties:
name:
description: |-
The name of one resource provider.
maxLength: 200
type: string
parent_provider_uuid:
anyOf:
- type: 'null'
- format: uuid
type: string
description: |-
The UUID of the immediate parent of the resource provider.
* Before version `1.37`, once set, the parent of a resource provider
cannot be changed.
* Since version `1.37`, it can be set to any existing provider UUID
excepts to providers that would cause a loop. Also it can be set to null
to transform the provider to a new root provider. This operation needs
to be used carefully. Moving providers can mean that the original rules
used to create the existing resource allocations may be invalidated
by that move.
**New in version 1.14**
uuid:
description: |-
The uuid of a resource provider.
format: uuid
type: string
required:
- name
type: object
x-openstack:
min-ver: '1.14'
- additionalProperties: false
properties:
name:
description: |-
The name of one resource provider.
maxLength: 200
type: string
uuid:
description: |-
The uuid of a resource provider.
format: uuid
type: string
required:
- name
type: object
x-openstack:
max-ver: '1.13'
min-ver: '1.0'
x-openstack:
discriminator: microversion
Resource_ProvidersCreate_Resource_ProviderResponse:
additionalProperties: false
properties:
generation:
description: |-
A consistent view marker that assists with the management of concurrent resource provider updates.
type: integer
links:
description: |-
A list of links associated with one resource provider.
Note
Aggregates relationship link is available starting from version 1.1.
Traits relationship link is available starting from version 1.6.
Allocations relationship link is available starting from version 1.11.
items:
properties:
href:
format: uri
type: string
rel:
type: string
type: object
type: array
name:
description: |-
The name of one resource provider.
type: string
parent_provider_uuid:
description: |-
The UUID of the immediate parent of the resource provider.
**New in version 1.14**
type: string
x-openstack:
min-ver: '1.14'
root_provider_uuid:
description: |-
Read-only UUID of the top-most provider in this provider tree.
**New in version 1.14**
type: string
x-openstack:
min-ver: '1.14'
uuid:
description: |-
The uuid of a resource provider.
format: uuid
type: string
required:
- generation
- links
- name
- uuid
type: object
Resource_ProvidersInventoriesCreate_InventoryRequest:
additionalProperties: false
properties:
inventories:
description: |-
A dictionary of inventories keyed by resource classes.
patternProperties:
^[A-Z0-9_]+$:
additionalProperties: false
properties:
allocation_ratio:
description: |-
It is used in determining whether consumption of the resource of
the provider can exceed physical constraints.
For example, for a vCPU resource with:
```
allocation_ratio = 16.0
total = 8
```
Overall capacity is equal to 128 vCPUs.
type: number
max_unit:
description: |-
A maximum amount any single allocation against an inventory can have.
minimum: 1
type: integer
min_unit:
description: |-
A minimum amount any single allocation against an inventory can have.
minimum: 1
type: integer
reserved:
description: |-
The amount of the resource a provider has reserved for its own use.
minimum: 0
type: integer
step_size:
description: |-
A representation of the divisible amount of the resource that may be requested. For example, step_size = 5 means that only values divisible by 5 (5, 10, 15, etc.) can be requested.
minimum: 1
type: integer
total:
description: |-
The actual amount of the resource that the provider can accommodate.
minimum: 1
type: integer
required:
- total
type: object
type: object
resource_provider_generation:
description: |-
A consistent view marker that assists with the management of concurrent resource provider updates.
type: integer
required:
- inventories
- resource_provider_generation
type: object
Resource_ProvidersInventoriesCreate_InventoryResponse:
additionalProperties: false
properties:
inventories:
description: |-
A dictionary of inventories keyed by resource classes.
patternProperties:
^[A-Z0-9_]+$:
additionalProperties: false
properties:
allocation_ratio:
description: |-
It is used in determining whether consumption of the resource of
the provider can exceed physical constraints.
For example, for a vCPU resource with:
```
allocation_ratio = 16.0
total = 8
```
Overall capacity is equal to 128 vCPUs.
type: number
max_unit:
description: |-
A maximum amount any single allocation against an inventory can have.
minimum: 1
type: integer
min_unit:
description: |-
A minimum amount any single allocation against an inventory can have.
minimum: 1
type: integer
reserved:
description: |-
The amount of the resource a provider has reserved for its own use.
minimum: 0
type: integer
step_size:
description: |-
A representation of the divisible amount of the resource that may be requested. For example, step_size = 5 means that only values divisible by 5 (5, 10, 15, etc.) can be requested.
minimum: 1
type: integer
total:
description: |-
The actual amount of the resource that the provider can accommodate.
minimum: 1
type: integer
required:
- total
type: object
type: object
resource_provider_generation:
description: |-
A consistent view marker that assists with the management of concurrent resource provider updates.
type: integer
required:
- inventories
- resource_provider_generation
type: object
Resource_ProvidersInventoriesGet_InventoriesResponse:
additionalProperties: false
properties:
inventories:
description: |-
A dictionary of inventories keyed by resource classes.
patternProperties:
^[A-Z0-9_]+$:
additionalProperties: false
properties:
allocation_ratio:
description: |-
It is used in determining whether consumption of the resource of
the provider can exceed physical constraints.
For example, for a vCPU resource with:
```
allocation_ratio = 16.0
total = 8
```
Overall capacity is equal to 128 vCPUs.
type: number
max_unit:
description: |-
A maximum amount any single allocation against an inventory can have.
minimum: 1
type: integer
min_unit:
description: |-
A minimum amount any single allocation against an inventory can have.
minimum: 1
type: integer
reserved:
description: |-
The amount of the resource a provider has reserved for its own use.
minimum: 0
type: integer
step_size:
description: |-
A representation of the divisible amount of the resource that may be requested. For example, step_size = 5 means that only values divisible by 5 (5, 10, 15, etc.) can be requested.
minimum: 1
type: integer
total:
description: |-
The actual amount of the resource that the provider can accommodate.
minimum: 1
type: integer
required:
- total
type: object
type: object
resource_provider_generation:
description: |-
A consistent view marker that assists with the management of concurrent resource provider updates.
type: integer
required:
- inventories
- resource_provider_generation
type: object
Resource_ProvidersInventoriesSet_InventoriesRequest:
additionalProperties: false
properties:
inventories:
description: |-
A dictionary of inventories keyed by resource classes.
patternProperties:
^[A-Z0-9_]+$:
additionalProperties: false
properties:
allocation_ratio:
description: |-
It is used in determining whether consumption of the resource of
the provider can exceed physical constraints.
For example, for a vCPU resource with:
```
allocation_ratio = 16.0
total = 8
```
Overall capacity is equal to 128 vCPUs.
type: number
max_unit:
description: |-
A maximum amount any single allocation against an inventory can have.
minimum: 1
type: integer
min_unit:
description: |-
A minimum amount any single allocation against an inventory can have.
minimum: 1
type: integer
reserved:
description: |-
The amount of the resource a provider has reserved for its own use.
minimum: 0
type: integer
step_size:
description: |-
A representation of the divisible amount of the resource that may be requested. For example, step_size = 5 means that only values divisible by 5 (5, 10, 15, etc.) can be requested.
minimum: 1
type: integer
total:
description: |-
The actual amount of the resource that the provider can accommodate.
minimum: 1
type: integer
required:
- total
type: object
type: object
resource_provider_generation:
description: |-
A consistent view marker that assists with the management of concurrent resource provider updates.
type: integer
required:
- inventories
- resource_provider_generation
type: object
Resource_ProvidersInventoriesSet_InventoriesResponse:
additionalProperties: false
properties:
inventories:
description: |-
A dictionary of inventories keyed by resource classes.
patternProperties:
^[A-Z0-9_]+$:
additionalProperties: false
properties:
allocation_ratio:
description: |-
It is used in determining whether consumption of the resource of
the provider can exceed physical constraints.
For example, for a vCPU resource with:
```
allocation_ratio = 16.0
total = 8
```
Overall capacity is equal to 128 vCPUs.
type: number
max_unit:
description: |-
A maximum amount any single allocation against an inventory can have.
minimum: 1
type: integer
min_unit:
description: |-
A minimum amount any single allocation against an inventory can have.
minimum: 1
type: integer
reserved:
description: |-
The amount of the resource a provider has reserved for its own use.
minimum: 0
type: integer
step_size:
description: |-
A representation of the divisible amount of the resource that may be requested. For example, step_size = 5 means that only values divisible by 5 (5, 10, 15, etc.) can be requested.
minimum: 1
type: integer
total:
description: |-
The actual amount of the resource that the provider can accommodate.
minimum: 1
type: integer
required:
- total
type: object
type: object
resource_provider_generation:
description: |-
A consistent view marker that assists with the management of concurrent resource provider updates.
type: integer
required:
- inventories
- resource_provider_generation
type: object
Resource_ProvidersInventoryGet_InventoryResponse:
additionalProperties: false
properties:
allocation_ratio:
description: |-
It is used in determining whether consumption of the resource of
the provider can exceed physical constraints.
For example, for a vCPU resource with:
```
allocation_ratio = 16.0
total = 8
```
Overall capacity is equal to 128 vCPUs.
type: number
max_unit:
description: |-
A maximum amount any single allocation against an inventory can have.
minimum: 1
type: integer
min_unit:
description: |-
A minimum amount any single allocation against an inventory can have.
minimum: 1
type: integer
reserved:
description: |-
The amount of the resource a provider has reserved for its own use.
minimum: 0
type: integer
resource_provider_generation:
description: |-
A consistent view marker that assists with the management of concurrent resource provider updates.
type: integer
step_size:
description: |-
A representation of the divisible amount of the resource that may be requested. For example, step_size = 5 means that only values divisible by 5 (5, 10, 15, etc.) can be requested.
minimum: 1
type: integer
total:
description: |-
The actual amount of the resource that the provider can accommodate.
minimum: 1
type: integer
required:
- resource_provider_generation
- total
type: object
Resource_ProvidersInventoryUpdate_InventoryRequest:
additionalProperties: false
properties:
allocation_ratio:
description: |-
It is used in determining whether consumption of the resource of
the provider can exceed physical constraints.
For example, for a vCPU resource with:
```
allocation_ratio = 16.0
total = 8
```
Overall capacity is equal to 128 vCPUs.
type: number
max_unit:
description: |-
A maximum amount any single allocation against an inventory can have.
minimum: 1
type: integer
min_unit:
description: |-
A minimum amount any single allocation against an inventory can have.
minimum: 1
type: integer
reserved:
description: |-
The amount of the resource a provider has reserved for its own use.
minimum: 0
type: integer
resource_provider_generation:
description: |-
A consistent view marker that assists with the management of concurrent resource provider updates.
type: integer
step_size:
description: |-
A representation of the divisible amount of the resource that may be requested. For example, step_size = 5 means that only values divisible by 5 (5, 10, 15, etc.) can be requested.
minimum: 1
type: integer
total:
description: |-
The actual amount of the resource that the provider can accommodate.
minimum: 1
type: integer
required:
- resource_provider_generation
- total
type: object
Resource_ProvidersInventoryUpdate_InventoryResponse:
additionalProperties: false
properties:
allocation_ratio:
description: |-
It is used in determining whether consumption of the resource of
the provider can exceed physical constraints.
For example, for a vCPU resource with:
```
allocation_ratio = 16.0
total = 8
```
Overall capacity is equal to 128 vCPUs.
type: number
max_unit:
description: |-
A maximum amount any single allocation against an inventory can have.
minimum: 1
type: integer
min_unit:
description: |-
A minimum amount any single allocation against an inventory can have.
minimum: 1
type: integer
reserved:
description: |-
The amount of the resource a provider has reserved for its own use.
minimum: 0
type: integer
resource_provider_generation:
description: |-
A consistent view marker that assists with the management of concurrent resource provider updates.
type: integer
step_size:
description: |-
A representation of the divisible amount of the resource that may be requested. For example, step_size = 5 means that only values divisible by 5 (5, 10, 15, etc.) can be requested.
minimum: 1
type: integer
total:
description: |-
The actual amount of the resource that the provider can accommodate.
minimum: 1
type: integer
required:
- resource_provider_generation
- total
type: object
Resource_ProvidersList_Resource_ProvidersResponse:
additionalProperties: false
properties:
resource_providers:
description: |-
A list of `resource_provider` objects.
items:
additionalProperties: false
properties:
generation:
description: |-
A consistent view marker that assists with the management of concurrent resource provider updates.
type: integer
links:
description: |-
A list of links associated with one resource provider.
Note
Aggregates relationship link is available starting from version 1.1.
Traits relationship link is available starting from version 1.6.
Allocations relationship link is available starting from version 1.11.
items:
properties:
href:
format: uri
type: string
rel:
type: string
type: object
type: array
name:
description: |-
The name of one resource provider.
type: string
parent_provider_uuid:
description: |-
The UUID of the immediate parent of the resource provider.
**New in version 1.14**
type: string
x-openstack:
min-ver: '1.14'
root_provider_uuid:
description: |-
Read-only UUID of the top-most provider in this provider tree.
**New in version 1.14**
type: string
x-openstack:
min-ver: '1.14'
uuid:
description: |-
The uuid of a resource provider.
format: uuid
type: string
required:
- generation
- links
- name
- uuid
type: object
type: array
required:
- resource_providers
type: object
Resource_ProvidersTraitsList_Traits_For_Resource_ProviderResponse:
additionalProperties: false
properties:
traits:
description: |-
A list of traits.
items:
maxLength: 255
minLength: 1
type: string
type: array
required:
- traits
type: object
Resource_ProvidersTraitsUpdate_Traits_For_Resource_ProviderRequest:
additionalProperties: false
properties:
traits:
description: |-
A list of traits.
items:
maxLength: 255
minLength: 1
type: string
type: array
required:
- traits
type: object
Resource_ProvidersTraitsUpdate_Traits_For_Resource_ProviderResponse:
additionalProperties: false
properties:
traits:
description: |-
A list of traits.
items:
maxLength: 255
minLength: 1
type: string
type: array
required:
- traits
type: object
Resource_ProvidersUsagesList_UsagesResponse:
description: Response of the resource_providers/uuid/usages:get operation
type: object
RootHomeResponse:
description: Response of the :get operation
type: object
TraitsList_TraitsResponse:
additionalProperties: false
properties:
traits:
description: |-
A list of traits.
items:
maxLength: 255
minLength: 1
type: string
type: array
required:
- traits
type: object
UsagesGet_Total_UsagesResponse:
additionalProperties: false
properties:
usages:
patternProperties:
^[A-Z0-9_]+$:
patternProperties:
^[A-Z0-9_]+$:
type: integer
properties:
consumer_count:
description: The number of consumers of a particular
consumer_type.
type: integer
x-openstack:
min-ver: '1.38'
type: object
type: object
required:
- usages
type: object
securitySchemes:
ApiKeyAuth:
in: header
name: X-Auth-Token
type: apiKey
security:
- ApiKeyAuth: []
tags:
- name: allocation_candidates
- description: |-
Allocations are records representing resources that have been assigned
and used by some consumer of that resource. They indicate the amount
of a particular resource that has been allocated to a given consumer
of that resource from a particular resource provider.
name: allocations
- description: |-
Note
name: reshaper
- name: resource_classes
- name: resource_providers
- description: |-
Traits are *qualitative* characteristics of resource providers.
The classic example for traits can be requesting disk from different
providers: a user may request 80GiB of disk space for an instance
(quantitative), but may also expect that the disk be SSD instead of
spinning disk (qualitative). Traits provide a way to mark that a
storage provider is SSD or spinning.
name: traits
- description: |-
Represent the consumption of resources for a project and user.
name: usages
- name: version