# variables in header
location:
  description: |
    The URL against which to check the status of the
    action spawned from the request.
  in: header
  required: true
  type: string
location_1:
  description: |
    The URL against which to check the status of the
    resource.
  in: header
  required: true
  type: string

# variables in path
action_id:
  description: |
    The UUID of the action.
  in: path
  required: false
  type: string
cluster_id:
  description: |
    The UUID of the cluster.
  in: path
  required: false
  type: string
event_id:
  description: |
    The UUID of the event.
  in: path
  required: false
  type: string
node_id:
  description: |
    The UUID of the node.
  in: path
  required: false
  type: string
policy_id:
  description: |
    The UUID of the policy.
  in: path
  required: false
  type: string
policy_type:
  description: |
    The name of the policy type.
  in: path
  required: false
  type: string
profile_id_2:
  description: |
    The UUID of the profile.
  in: path
  required: false
  type: string
profile_type:
  description: |
    The name of the profile type.
  in: path
  required: false
  type: string
receiver_id:
  description: |
    The UUID of the receiver.
  in: path
  required: false
  type: string
webhook_id:
  description: |
    The UUID of the webhook.
  in: path
  required: false
  type: string

# variables in query
V:
  description: |
    The webhook implementation version requested.
  in: query
  required: true
  type: string
action_1:
  description: |
    Filters the response by an action name. Use this
    filter multiple times to filter by multiple names.
  in: query
  required: false
  type: string
action_2:
  description: |
    Filters the response by the action name
    associated with an event. Use this filter multiple times to filter
    by multiple actions.
  in: query
  required: false
  type: string
action_3:
  description: |
    Filters the response by the targeted action of a
    receiver.
  in: query
  required: false
  type: string
cluster_id_2:
  description: |
    Filters the response by the cluster ID associated
    with an event. Use this filter multiple times to filter by
    multiple clusters.
  in: query
  required: false
  type: string
cluster_id_3:
  description: |
    Filters the response by the cluster that owns a
    node.
  in: query
  required: false
  type: string
cluster_id_4:
  description: |
    Filters the response by the ID of the targeted
    cluster of a receiver.
  in: query
  required: false
  type: string
enabled:
  description: |
    Filters the response by a policy enabled status
    on the cluster.
  in: query
  required: false
  type: boolean
global_project:
  description: |
    Indicates whether to include objects for all
    projects or objects for the current project in the response.  If
    you are an administrative user and you set this value to ``true``,
    the call returns all objects from all projects. Default is
    ``false``, which returns only objects in the current project.
  in: query
  required: false
  type: boolean
limit:
  description: |
    Requests a page size of items. Returns a number
    of items up to a limit value. Use the ``limit`` parameter to make
    an initial limited request and use the ID of the last-seen item
    from the response as the ``marker`` parameter value in a
    subsequent limited request.
  in: query
  required: false
  type: integer
marker:
  description: |
    The ID of the last-seen item. Use the ``limit``
    parameter to make an initial limited request and use the ID of the
    last-seen item from the response as the ``marker`` parameter value
    in a subsequent limited request.
  in: query
  required: false
  type: string
metadata_3:
  description: |
    Filters the response by a metadata key and value
    pair.
  in: query
  required: false
  type: object
name_10:
  description: |
    Filters the response by the name of a receiver.
  in: query
  required: false
  type: string
name_4:
  description: |
    Filters the response by an action name. Use this
    filter multiple times to filter by multiple names.
  in: query
  required: false
  type: string
name_5:
  description: |
    Filters the response by a cluster name. Use this
    filter multiple times to filter by multiple names.
  in: query
  required: false
  type: string
name_6:
  description: |
    Filters the response by the name of a node.
  in: query
  required: false
  type: string
name_7:
  description: |
    Filters the response by the name of a policy.
  in: query
  required: false
  type: string
name_9:
  description: |
    Filters the response by the name of a profile.
  in: query
  required: false
  type: string
obj_id:
  description: |
    Filters the response by the object ID for an
    event. Use this filter multiple times to filter by multiple
    objects.
  in: query
  required: false
  type: string
obj_name:
  description: |
    Filters the response by the name of object
    associated with an event. Use this filter multiple times to filter
    by multiple objects.
  in: query
  required: false
  type: string
obj_type:
  description: |
    Filters the response by the type of object
    associated with an event. Use this filter multiple times to filter
    by multiple objects. A valid value is ``CLUSTER`` or ``NODE``.
  in: query
  required: false
  type: string
params:
  description: |
    The query string that forms the inputs to use for
    the targeted action.
  in: query
  required: false
  type: object
show_details:
  description: |
    Indicates whether the node details are returned.
    Default is ``false``.
  in: query
  required: false
  type: boolean
sort:
  description: |
    Sorts the response by one or more attribute and optional sort
    direction combinations. A valid direction is ``asc`` (ascending) or
    ``desc`` (descending). Default direction is ``asc`` (ascending).

    Specify the list as < key > [: < direction > ].

    For example, the following query parameters in the URI sort the
    objects in the response by ``name`` in ascending order and then by
    ``status`` in descending order:

    .. code-block:: json

       GET /v2/images?sort=name:asc,status:desc

    The following query parameters in the URI sort the objects in the
    response by ``name`` in descending order and then by ``status`` in
    ascending order.

    .. code-block:: json

       GET /v2/images?sort=name:desc,status
  in: query
  required: false
  type: string
status:
  description: |
    Filters the response by a cluster status. Use
    this filter multiple times to filter by multiple statuses.
  in: query
  required: false
  type: string
status_1:
  description: |
    Filters the response by the status of a node.
  in: query
  required: false
  type: string
target:
  description: |
    Filters the response by the targeted object ID
    that is associated with an action. An object can be a cluster, a
    node, and so on. Use this filter multiple times to filter by
    multiple targets.
  in: query
  required: false
  type: string
type:
  description: |
    Filters the response by the type of a policy.
  in: query
  required: false
  type: string
type_1:
  description: |
    Filters the response by the type of a profile.
  in: query
  required: false
  type: string
type_2:
  description: |
    Filters the response by the type of a receiver.
  in: query
  required: false
  type: string
user:
  description: |
    Filters the response by the user name of a
    receiver.
  in: query
  required: false
  type: string

# variables in body
action:
  description: |
    The action to trigger.  Each action takes a
    different set of parameters.  Supported actions include:  -
    ``add_nodes`` Add one or more nodes, as a list, to a cluster. For
    example:  - ``del_nodes`` Delete one or more nodes, as a list,
    from a cluster.   For example:  - ``scale_out`` Enlarge the
    cluster by ``count`` number of nodes.   For example:  -
    ``scale_in`` Shrink the cluster by ``count`` number of nodes. For
    example:  - ``resize`` Change the size of the cluster by
    ``adjustment_type``,   ``number``, ``min_step``, ``min_size``,
    ``max_size``, or   ``strict`` values. For example:  - ``check``
    Check the health status of a cluster. For example:  - ``recover``
    Recover a cluster from its current unhealthy status.   For
    example:  - ``policy_attach`` Attach a policy to a cluster. The
    request body   contains parameters for the policy attachment:  -
    ``policy_detach`` Detach a policy from a cluster. The request body
    contains the ID of the policy:  - ``policy_update`` Update the
    policy attachment. Specify the policy   ID and property settings
    in the request body:
  in: body
  required: true
  type: string
action_4:
  description: |
    The action to trigger.  Each action takes a
    different set of parameters.  Supported actions include:  -
    ``check`` Check the health status of a node. For example:  -
    ``recover`` Recover a node from its current unhealthy status. For
    example:
  in: body
  required: true
  type: string
cluster:
  description: |
    A map of cluster details.
  in: body
  required: true
  type: object
cluster_id_1:
  description: |
    The ID or shortID or name of the cluster the node
    lives in. If not specified, the node created will be an orphaned
    node.
  in: body
  required: false
  type: string
clusters:
  description: |
    List of cluster records. Each record contains
    fields such as ``created_at``, ``id``, ``name``, ``profile_id``,
    ``size``, ``nodes``, ``status``, ``status_reason``, and so on.
  in: body
  required: true
  type: array
cooldown:
  description: |
    The cooldown value, in seconds.
  in: body
  required: false
  type: integer
desired_capacity:
  description: |
    The capacity, or initial size, of the cluster.
    Default is 0.
  in: body
  required: true
  type: integer
level:
  description: |
    An integer value that represents the default
    enforcement level.
  in: body
  required: false
  type: integer
max_size:
  description: |
    The maximum size of the cluster. Default is
    ``-1``, which indicates that no upper limit exists for the cluster
    size.
  in: body
  required: false
  type: integer
metadata:
  description: |
    A set of key and value pairs to associate with
    the cluster.
  in: body
  required: false
  type: object
metadata_1:
  description: |
    A set of key and value pairs to associate with
    the node.
  in: body
  required: false
  type: object
metadata_2:
  description: |
    A list of key and value pairs to associate with
    the profile.
  in: body
  required: false
  type: array
metadata_4:
  description: |
    A list of key and value pairs to associate with
    the target profile.
  in: body
  required: false
  type: object
min_size:
  description: |
    The minimum size of the cluster. Default is 0.
  in: body
  required: false
  type: integer
name:
  description: |
    The name of the cluster.
  in: body
  required: true
  type: string
name_1:
  description: |
    The name of the node to be created.
  in: body
  required: true
  type: string
name_11:
  description: |
    New name for the target profile.
  in: body
  required: false
  type: string
name_2:
  description: |
    The name for the policy.
  in: body
  required: true
  type: string
name_3:
  description: |
    The name for the profile.
  in: body
  required: true
  type: string
name_8:
  description: |
    The name of the policy type.
  in: body
  required: true
  type: string
node:
  description: |
    Detailed data for the node, such as ``id``,
    ``name``, ``status``, and so on.
  in: body
  required: true
  type: object
node_1:
  description: |
    A map with detailed data for the node.   **Node
    update request body**  - ``name`` New name for the node
    (optional).  - ``profile_id`` Name, ID, or short ID of the new
    profile to use by   the node. The new profile has to have the same
    profile type as   that of the node (optional).  - ``role`` The new
    role this node plays in a cluster (optional).  - ``metadata`` A
    list of key-value pairs to attach to the updated   node
    (optional).
  in: body
  required: true
  type: object
nodes:
  description: |
    List of node records. Each record contains fields
    such as ``id``, ``cluster_id``, ``name``, ``physical_id``,
    ``profile_id``, ``created_at``, ``index``, ``status``,
    ``status_reason``, ``metadata``, ``updated_at``, and so on.
  in: body
  required: true
  type: array
parent:
  description: |
    The UUID of the parent cluster if the cluster is
    a nested cluster.
  in: body
  required: false
  type: string
policies:
  description: |
    List of policy records. Each record contains
    fields such as ``id``, ``name``, ``type``, ``spec``, and so on.
  in: body
  required: true
  type: array
policy:
  description: |
    A map with keys and values that specify the
    details for the policy to be created:
  in: body
  required: true
  type: object
policy_1:
  description: |
    A map with a set of key and value pairs that
    specify the details of the policy:   **Policy body**  - ``name``
    Name for the policy, if specified.
  in: body
  required: true
  type: object
profile:
  description: |
    A dictionary with profile details.   **Profile
    create response**  - ``id`` An unique ID for the profile.  -
    ``name`` Name for the profile.  - ``type`` Name of policy type
    referenced by the profile.  - ``spec`` Detailed specification
    based on the profile type.  - ``metadata`` A list of key and value
    pairs that are attached to   the profile.  - ``created_at`` The
    UTC date and time stamp when the profile was   created.  -
    ``updated_at`` The UTC date and time stamp when the profile was
    updated.  - ``domain`` The ID of the domain to which the profile
    belongs.  - ``project`` The ID of the project to which the profile
    belongs.  - ``user`` The ID of the user who created the profile.
  in: body
  required: true
  type: object
profile_id:
  description: |
    The ID or name of the profile for the cluster.
  in: body
  required: true
  type: string
profile_id_1:
  description: |
    The ID or shortID or name of the profile for the
    node.
  in: body
  required: true
  type: string
profiles:
  description: |
    Profile records. Each record contains the ``id``,
    ``name``, ``type``, ``spec``, ``metadata``, and other fields.
  in: body
  required: true
  type: array
receiver:
  description: |
    A map with detailed data for the receiver.
    **Receiver Create Request Body**  - ``name`` Name for the receiver
    (optional).  - ``cluster_id`` Name, ID, or short ID of the object
    targeted by the   receiver (required).  - ``type`` The type of the
    receiver where the only valid value is   ``webhook`` currently
    (required).  - ``action`` The action to initiate when the receiver
    is triggered.   A valid value should be the name of an action that
    can be applied   on a cluster.  - ``actor`` A map of key and value
    pairs to use for authentication.   If omitted, the requester is
    assumed to be the actor (optional).  - ``params`` A map of key and
    value pairs to use for action   creation. Some actions might
    require certain input parameters   (optional).
  in: body
  required: true
  type: object
role:
  description: |
    A string indicating the role this node plays in a
    cluster.
  in: body
  required: false
  type: string
spec:
  description: |
    A detailed specification based on the policy
    type.
  in: body
  required: true
  type: object
spec_1:
  description: |
    Detailed specification based on the chosen
    profile type.
  in: body
  required: true
  type: object
timeout:
  description: |
    The timeout value, in minutes, for cluster
    creation. Default is 60.
  in: body
  required: false
  type: integer