blazar/api-ref/source/v1/parameters.yaml
Mark Powers f5e6d24826 Add resource properties discovery API
This allows users to query for resource properties of hosts,
allowing them to be used in creating leases more effectively. Two new
API endpoints are added for hosts, ``/properties`` and
``/properties/<property_name>``, which allow for listing available
properties, and updating a property respectively. Properties can be
listed with detail, showing possible values and visibility. Admins can
list public and private properties.

A new database table is added ``resource_properties``, which stores
property names and resource types. Resource specific property tables
(e.g. ``computehost_extra_capabilities``) entries store a foreign key to
``resource_properties``, rather than the capability name.

Implements blueprint resource-properties-discovery-api

Change-Id: Ib9f1140c44c5e4fbef6e019c48a842869368cb21
2022-02-10 17:23:15 +00:00

725 lines
15 KiB
YAML

# variables in headers
x-openstack-request-id_req:
description: |
The global request ID, which is a unique common ID
for tracking each request in OpenStack services.
The format of the global request ID must be ``req-`` + UUID (UUID4).
If not in accordance with the format, it is ignored.
It is associated with the request and appears in the log lines
for that request.
The global request ID appears in the Blazar logs and all cross
services it interacts with.
in: header
required: false
type: string
x-openstack-request-id_resp:
description: |
The local request ID, which is a unique ID generated automatically
for tracking each request to blazar.
It is associated with the request and appears in the log lines
for that request.
in: header
required: true
type: string
# variables in path
floatingip_id_path:
description: |
The ID of the floating IP.
in: path
required: true
type: string
host_id_path:
description: |
The ID of the host.
in: path
required: true
type: string
lease_id_path:
description: |
The UUID of the lease.
in: path
required: true
type: string
property_name:
description: |
The name of the property.
in: path
required: true
type: string
# variables in query
allocation_lease_id_query:
description: |
Filter allocations results by lease id
in: query
required: false
type: string
allocation_reservation_id_query:
description: |
Filter allocations results by reservation id
in: query
required: false
type: string
resource_property_all:
description: |
Whether to include all resource properties, public and private.
in: query
required: false
type: string
resource_property_detail:
description: |
Whether to include values along for each property and if the property
is private.
in: query
required: false
type: string
# variables in body
allocation:
description: |
An ``allocation`` object. This object describes a mapping
between resource_id and reservations.
in: body
required: true
type: array
allocation_end_date:
description: |
The end date of the lease.
in: body
required: true
type: string
allocation_start_date:
description: |
The start date of the lease.
in: body
required: true
type: string
allocations:
description: |
A list of ``allocation`` objects.
in: body
required: true
type: array
created_at:
description: |
The date and time when the object was created.
in: body
required: true
type: string
event:
description: |
An ``event`` object.
in: body
required: true
type: object
event_id:
description: |
The UUID of the event.
in: body
required: true
type: string
event_lease_id:
description: |
The UUID of the lease to which the event belongs.
in: body
required: true
type: string
event_status:
description: |
The status of the event.
in: body
required: true
type: string
event_time:
description: |
The date and time of the event.
in: body
required: true
type: string
event_type:
description: |
The type of the event.
in: body
required: true
type: string
events:
description: |
A list of ``event`` objects.
in: body
required: true
type: array
events_optional:
description: |
A list of ``event`` objects.
in: body
required: false
type: array
## parameters for floating IP
floating_ip_address:
description:
The floating IP address.
in: body
required: true
type: string
floating_ip_address_create:
description:
The floating IP address. The IP must be the out side of allocation_pools
and within its subnet's CIDR network.
in: body
required: true
type: string
floating_network_id:
description:
An external network ID the floating IP belongs to.
in: body
required: true
type: string
floating_subnet_id:
description: |
An external subnet ID the floating IP belongs to.
in: body
required: true
type: boolean
floatingip:
description: |
A ``floatingip`` object.
in: body
required: true
type: object
floatingip_id:
description:
The ID of the floating ip resources.
in: body
required: true
type: string
floatingip_reservable:
description: |
The flag which represents whether the floating IP is reservable or not.
in: body
required: true
type: boolean
floatingips:
description: |
A list of ``floatingip`` objects.
in: body
required: true
type: array
## parameters for host
host:
description: |
A ``host`` object.
in: body
required: true
type: object
host_cpu_info:
description: |
Information of the CPU of the host.
in: body
required: true
type: string
host_extra_capability:
description: |
The extra capability of the host.
.. note:: Any key-value pair can be stored as one of extra capabilities of
the host.
in: body
required: false
type: any
host_hypervisor_hostname:
description: |
The hypervisor name of the host.
in: body
required: true
type: string
host_hypervisor_type:
description: |
The hypervisor type the host.
in: body
required: true
type: string
host_hypervisor_version:
description: |
The hypervisor version of the host.
in: body
required: true
type: integer
host_id:
description: |
The ID of the host.
in: body
required: true
type: string
host_local_gb:
description: |
Gigabytes of the disk of the host.
in: body
required: true
type: integer
host_memory_mb:
description: |
Megabytes of the memory of the host.
in: body
required: true
type: integer
host_name:
description: |
The name of the host.
in: body
required: true
type: string
host_reservable:
description: |
The flag which represents whether the host is reservable or not.
in: body
required: true
type: boolean
host_service_name:
description: |
The compute service name of the host.
in: body
required: true
type: string
host_status:
description: |
The status of the host.
.. note:: This is null currently.
in: body
required: true
type: string
host_trust_id:
description: |
The UUID of the trust of the host operator.
in: body
required: true
type: string
host_vcpus:
description: |
The number of the VCPUs of the host.
in: body
required: true
type: integer
hosts:
description: |
A list of ``host`` objects.
in: body
required: true
type: array
## parameters for leases
lease:
description: |
A ``lease`` object.
in: body
required: true
type: object
lease_before_end_date:
description: |
The date and time for the before-end-action of the lease.
in: body
required: true
type: string
lease_before_end_date_optional:
description: |
The date and time for the before-end-action of the lease.
in: body
required: false
type: string
lease_degraded:
description: |
The flag for reserved resources of the lease.
This is set True while *missing_resources* or *resources_changed* of
reservations is set True.
in: body
required: true
type: boolean
lease_end_date:
description: |
The end date and time of the lease.
in: body
required: true
type: string
lease_end_date_optional:
description: |
The end date and time of the lease.
in: body
required: false
type: string
lease_id:
description: |
The UUID of the lease.
in: body
required: true
type: string
lease_name:
description: |
The name of the lease.
in: body
required: true
type: string
lease_name_optional:
description: |
The name of the lease.
in: body
required: false
type: string
lease_project_id:
description: |
The UUID the project which owns the lease.
in: body
required: true
type: string
lease_start_date:
description: |
The start date and time of the lease.
.. note:: If ``now`` is specified, the lease starts immediately.
in: body
required: true
type: string
lease_start_date_optional:
description: |
The start date and time of the lease.
.. note:: If ``now`` is specified, the lease starts immediately.
in: body
required: false
type: string
lease_start_date_resp:
description: |
The start date and time of the lease.
in: body
required: true
type: string
lease_status:
description: |
The status of the lease.
in: body
required: true
type: string
lease_trust_id:
description: |
The UUID of the trust of the lease owner.
in: body
required: true
type: string
lease_user_id:
description: |
The UUID of the lease owner.
in: body
required: true
type: string
leases:
description: |
A list of ``lease`` objects.
in: body
required: true
type: array
property_private:
description: |
Whether the property is private.
in: body
required: true
type: boolean
reservation:
description: |
A ``reservation`` object.
in: body
required: true
type: object
reservation_affinity:
description: |
The affinity of instances to reserve. The value should be ``True``, ``False`` or ``None``.
in: body
required: true
type: trilean
reservation_affinity_optional:
description: |
The affinity of instances to reserve. The value should be ``True``, ``False`` or ``None``.
in: body
required: false
type: trilean
reservation_aggregate_id:
description: |
The aggregate ID of the reservation.
in: body
required: true
type: integer
reservation_allocation:
description: |
A list of ``reservation allocation`` objects. The object consists of
reservation id and its lease_id.
in: body
required: true
type: array
reservation_amount:
description: |
The amount of instances to reserve. The value should be greater than 0.
in: body
required: true
type: integer
reservation_amount_optional:
description: |
The amount of instances to reserve. The value should be greater than 0.
in: body
required: false
type: integer
reservation_before_end:
description: |
The before-end-action of the reservation.
.. note:: ``default`` and ``snapshot`` actions are supported.
in: body
required: true
type: string
reservation_before_end_optional:
description: |
The before-end-action of the reservation.
.. note:: ``default`` and ``snapshot`` actions are supported.
in: body
required: false
type: string
reservation_disk_gb:
description: |
Gigabytes of the local disk per the instance.
in: body
required: true
type: string
reservation_disk_gb_optional:
description: |
Gigabytes of the local disk per the instance.
in: body
required: false
type: string
reservation_flavor_id:
description: |
The flavor ID used for launching instances on reserved resources.
in: body
required: true
type: string
reservation_hypervisor_properties:
description: |
Properties of the hypervisor to reserve.
in: body
required: true
type: string
reservation_hypervisor_properties_optional:
description: |
Properties of the hypervisor to reserve.
in: body
required: true
type: string
reservation_id:
description: |
The UUID of the reservation.
in: body
required: true
type: string
reservation_lease_id:
description: |
The UUID of the lease to which the reservation belongs.
in: body
required: true
type: string
reservation_max:
description: |
The maximum number of hosts to reserve. The value should be greater than or equal to ``min`` value.
in: body
required: true
type: integer
reservation_max_optional:
description: |
The maximum number of hosts to reserve. The value should be greater than or equal to ``min``.
in: body
required: false
type: integer
reservation_memory_mb:
description: |
Megabytes of memory per the instance.
in: body
required: true
type: integer
reservation_memory_mb_optional:
description: |
Megabytes of memory per the instance.
in: body
required: false
type: integer
reservation_min:
description: |
The minimum number of hosts to reserve. The value should be greater than 0.
in: body
required: true
type: integer
reservation_min_optional:
description: |
The minimum number of hosts to reserve. The value should be greater than 0.
in: body
required: false
type: integer
reservation_missing_resources:
description: |
The flag for the capacity of reserved resources.
It is set True while the amount of reserved resources is less than the
request.
in: body
required: true
type: boolean
reservation_resource_id:
description: |
The ID of the resource object of the reservation.
in: body
required: true
type: string
reservation_resource_properties:
description: |
Properties of the resource to reserve.
in: body
required: true
type: string
reservation_resource_properties_optional:
description: |
Properties of the resource to reserve.
in: body
required: false
type: string
reservation_resource_type:
description: |
The type of the resource to reserve.
.. note:: ``physical:host`` and ``virtual:instance`` types are supported.
in: body
required: true
type: string
reservation_resource_type_resp:
description: |
The type of the resource to reserve.
in: body
required: true
type: string
reservation_resources_changed:
description: |
The flag for changes of reserved resources.
If it is set True if reserved resources were changed after the lease
started.
in: body
required: true
type: boolean
reservation_server_group_id:
description: |
The server group ID specified when launch instances on reserved resources.
in: body
required: true
type: string
reservation_status:
description: |
The status of the reservation.
in: body
required: true
type: string
reservation_vcpus:
description: |
The number of VCPUs per the instance.
in: body
required: true
type: integer
reservation_vcpus_optional:
description: |
The number of VCPUs per the instance.
in: body
required: false
type: integer
reservations:
description: |
A list of ``reservation`` objects.
in: body
required: true
type: array
reservations_optional:
description: |
A list of ``reservation`` objects.
in: body
required: false
type: array
resource_properties:
description: |
A list of ``resource_property`` objects.
in: body
required: true
type: array
resource_properties_private:
description: |
Whether the property is private.
in: body
required: false
type: boolean
resource_properties_property:
description: |
The name of the property.
in: body
required: true
type: any
resource_properties_values:
description: |
A list of values for the property.
in: body
required: false
type: array
resource_property:
description: |
The updated ``resource_property`` object.
in: body
required: true
type: any
resource_property_id:
description: |
The updated ``resource_property`` UUID.
in: body
required: true
type: string
resource_property_private:
description: |
Whether the updated ``resource_property`` is private.
in: body
required: true
type: boolean
resource_property_property_name:
description: |
The updated ``resource_property`` property_name.
in: body
required: true
type: string
resource_property_resource_type:
description: |
The updated ``resource_property`` resource type.
in: body
required: true
type: string
updated_at:
description: |
The date and time when the object was updated.
in: body
required: true
type: string