# 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
