#### header parameters ####################################################### location: type: string in: header required: True description: | For asynchronous object operations, the ``location`` header contains a string that can be interpreted as a relative URI from where users can track the progress of the action triggered. microversion: type: string in: header description: | API microversion request. It takes the form of ``OpenStack-API-Version: clustering 1.0``, where ``1.0`` is the requested API version. request_id: type: string in: header description: | A unique ID for tracking service request. The request ID associated with the request by default appears in the service logs. #### path parameters ######################################################### action_id_url: type: string in: path required: True description: | The name or short-ID or UUID that identifies an action object. cluster_id_url: type: string in: path required: True description: | The name, UUID or short-UUID of a cluster object. event_id_url: type: string in: path required: True description: | The name, UUID or short-UUID of an event object. node_id_url: type: string in: path required: True description: | The name, short-ID or UUID of a node object. path_url: type: string in: path required: True description: | A Json path format string for node attribute. policy_id_url: type: string in: path required: True description: | The name, UUID or short-UUID of a policy object. policy_type_url: type: string in: path required: True description: | The name of a policy type. profile_id_url: type: string in: path required: True description: | The name, UUID or short-UUID of a profile. profile_type_url: type: string in: path required: True description: | The name of a profile type. receiver_id_url: type: string in: path required: True description: | The name, UUID or short-UUID of a receiver object. version_url: type: string in: path required: True description: | A string indicating the major version of Clustering API. webhook_id_url: type: UUID in: path required: True description: | The UUID of a webhook object. #### query parameters ######################################################## action_action_query: type: string in: query description: | Filters the resulted list using the ``action`` field of the object. action_name_query: type: string in: query description: | Filters the response by the action name associated with an event. Use this filter multiple times to filter by multiple actions. action_status_query: type: string in: query description: | Filters the results by the ``status`` property of an action object. action_update_force_query: type: boolean in: query description: | A boolean indicating if the action update request should be forced. cluster_identity_query: type: string in: query description: | The name, short-ID or UUID of the cluster object. enabled_query: type: string in: query description: | Filters the response by a policy enabled status on the cluster. global_project: type: boolean in: query default: False description: | Indicates whether to include resources for all projects or resources for the current project in the response. If you are an administrative user and you set this value to ``true``, the call returns all resources from all projects. Default is ``false``, which returns only resources in the current project. limit: type: integer in: query description: | Requests a page size of resources. Returns a number of resources up to the limit value. Use the `limit` parameter to make an initial limited request and use the ID of the last-seen resource from the response as the `marker` parameter value in a subsequent limited request. marker: type: UUID in: query description: | The ID of the last-seen resource. Use the `limit` parameter to make an initial limited request and use the ID of the last-seen resource from the response as the `marker` parameter value in a subsequent limited request. name_query: type: string in: query description: | Filters the response by the specified ``name`` property of the object, such as ``policy_name`` or ``name`` property of cluster. oid_query: type: string in: query description: | Filters the response by the ``ID`` of object associated with an event. Use this filter multiple times to filter by multiple objects. oname_query: type: string in: query description: | Filters the response by the ``name`` of object associated with an event. Use this filter multiple times to filter by multiple objects. otype_query: type: string in: query 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``. receiver_action_query: type: string in: query description: | Filters the response by the action targeted by the receiver. receiver_type_query: type: string in: query description: | Filters the response by the ``type`` property of the receiver. receiver_user_query: type: string in: query description: | Filters the response by the ``user`` property of the receiver. min_version: 1.4 show_details: type: boolean in: query default: False required: False description: | A boolean indicating whether the detailed information about the physical resource associated with the node object will be returned. sort: type: string in: query 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 ``[:]``. For example, the following query parameters in the URI sort the resources in the response by ``name`` in ascending order and then by ``status`` in descending order:: GET /v1/clusters?sort=name:asc,status:desc status_query: type: string in: query description: | Filters the resource collection by the ``status`` property. target_query: type: string in: query description: | Filters the results by the UUID of the targeted object which is usually a cluster. type_query: type: string in: query description: | Filters the response by the specified ``type`` property of the object, such as ``policy_type`` property of cluster-policy binding object or ``type`` property of policy object. user_query: type: UUID in: query description: | Filters the response by the ``user`` property of the resource. webhook_params: type: object in: query description: | The query string that forms the inputs to use for the targeted action for API microversion less than 1.10. webhook_version: type: string in: query required: True description: | The webhook implementation version requested. #### body parameters ######################################################### action: type: object in: body required: True description: | A structured definition of an action object. action_action: type: string in: body required: True description: | A string representation of the action for execution. action_data: type: object in: body required: True description: | A structured representation of data associated with an action object. action_id: type: UUID in: body required: True description: | A UUID that uniquely identifies an action object. action_name: type: string in: body required: True description: | The name of an action object. action_owner: type: string in: body required: True description: | The UUID of the owning engine that is currently locking the action for execution. action_request: type: object in: body required: True description: | A structured definition of an action to be executed. The object is usually expressed as:: : { : : ... } The ```` indicates the requested action while the ```` keys provide the associated parameters to the action. Each individual action has its own set of parameters. action_status: type: string in: body required: True description: | A string representation of the current status of the action. action_status_update: type: string in: body required: True description: | A string representation of the action status to update. CANCELLED is the only valid status at this time. action_target: type: string in: body required: True description: | The UUID of the targeted object (which is usually a cluster). action_timeout: type: integer in: body required: True description: | The number of seconds after which an unfinished action execution will be treated as timeout. actions: type: array in: body required: True description: | A list of action objects. adjustment_max_size: type: integer in: body description: | The value to be set as the new ``max_size`` of the cluster. adjustment_min_size: type: integer in: body description: | The value to be set as the new ``min_size`` of the cluster. adjustment_min_step: type: integer in: body description: | When ``adjustment_type`` is set to ``CHANGE_IN_PERCENTAGE``, often times the computed value is a float which could be less than 1.0. The ``min_step`` can be used to specify that at least this number of nodes will be added or removed. adjustment_number: type: number in: body description: | The number of adjustment. The interpretation of the value depends on the value of the ``adjustment_type`` parameter. This parameter is mandatory when ``adjustment_type`` is specified. Otherwise, it is optional. When ``adjustment_type`` is specified as ``CHANGE_IN_PERCENTAGE``, the value of this parameter can be a float number, otherwise it has to be an integer. adjustment_strict: type: boolean in: body default: False description: | There are cases where the computed number of nodes to adjust will break the size constraints of a cluster, i.e. its ``min_size`` or ``max_size`` property. If this is the case, the ``strict`` parameter can further instructs the senlin engine whether the resize should be done on a best effort basis. If the value is set to True, senlin engine will perform the resize operation while respecting the cluster's size constraints. Otherwise, if the computed adjustment will break the size constraints, the resize request will be directly rejected. adjustment_type: type: string in: body description: | The type of size adjustment. The valid values are: - ``EXACT_CAPACITY``: The adjustment number specified is to be interpreted as the targeted ``desired_capacity``. This value has to be a non-negative integer. - ``CHANGE_IN_CAPACITY``: The adjustment number specified is to be treated as the number of nodes to add or remove. The value has to be a non-zero integer. A positive number can be used to specify the number of nodes to add while a negative number can be specified to indicate the number of nodes to remove. - ``CHANGE_IN_PERCENTAGE``: The adjustment number will be interpreted as a percentile relative to a cluster's current ``desired_capacity``. The adjustment number can be a positive or negative float value. This parameter is optional when a resize request is only about changing the ``min_size`` and/or ``max_size`` of the cluster. Otherwise, it is required. When this parameter is specified, the ``number`` parameter has to be provided as well. attr_value: type: object in: body description: | The attribute value on a specific node. The value could be of any data type that is valid for the attribute. binary: type: string in: body required: True description: | The binary name of the service. build_info: type: object in: body required: True description: | Build information for a Senlin deployment. build_info_api: type: object in: body required: True description: | Revision information of Senlin API service. build_info_engine: type: object in: body required: True description: | Revision information of Senlin engine service. cause: type: string in: body required: True description: | An explanation why an action was started. check_params: type: object in: body description: | The optional parameters provided to a cluster check operation. The detailed keys and values are not checked at the moment. cluster: type: object in: body required: True description: | The structured definition of a cluster object. cluster_attributes: type: array in: body required: True description: | A list of dictionaries each containing the node ID and the corresponding attribute value. cluster_config: type: object in: body required: True description: | The structured config associated with the cluster. cluster_config_req: type: object in: body required: False description: | The structured config associated with the cluster. cluster_data: type: object in: body required: True description: | The structured data associated with the cluster. cluster_id: type: UUID in: body required: True description: | The UUID of the cluster object. cluster_identity: type: UUID in: body required: False description: | The ID, short ID or name of a cluster which the adopted node is supposed to join. cluster_member_nodes: type: array in: body required: True description: | The candidate nodes to be added to or removed from a cluster. The meaning of the parameter is depended on the action requested. Each item in the list can be the name, the short-ID or the UUID of a node. cluster_name: type: string in: body required: True description: | The name of a cluster object. The name must start with an ASCII letter and can contain ASCII letters, digits, underscores, periods, and hyphens and its length must be less than 255. cluster_nodes: type: array in: body required: True description: | A list of the UUIDs of node objects which are members of the current cluster. cluster_operation_request: type: object in: body required: True description: | A structured definition of an operation to be performed. The object is usually expressed as:: : { filters: { : , : } params: { : , : ... } } The ```` specifies the operation to be performed, in which the ``filters`` object contains a collection of filtering rules, and the ``params`` object provide the parameters (if any) to the operation. Each individual operation has its own set of parameters, as supported by the profile type of the target cluster. cluster_policies: type: array in: body required: True description: | A list of cluster_policy objects. cluster_policies_property: type: array in: body required: True description: | A list of UUIDs of the policies attached to current cluster. cluster_policy: type: object in: body required: True description: | The structured description of a cluster_policy object. cluster_policy_enabled: type: boolean in: body required: True description: | Whether the policy is enabled on the attached cluster. cluster_policy_id: type: UUID in: body required: True description: | The UUID of a cluster_policy object. cluster_replace_nodes: type: object in: body required: True description: | A collection of key-value pairs. Each key is the node to be replaced of a cluster, each value is the node used to replace the original one. Each item in of the key-value pairs can be the name, the short-ID or the UUID of a node. cluster_status: type: string in: body required: True description: | The string representation of the current status of the cluster. clusters: type: array in: body required: True description: | A list of cluster objects. created_at: type: string in: body required: True description: | The date and time when the object was created. The date and time stamp format is ISO8601: ``CCYY-MM-DDThh:mm:ssZ``. For example: ``2016-01-18T00:00:00Z`` depended_by: type: array in: body required: True description: | A list of UUIDs of the actions that depend on the current action. dependents: type: object in: body required: True description: | A dict contains dependency information between nova server, heat stack cluster and container cluster. depends_on: type: array in: body required: True description: | A list of UUIDs of the actions that the current action depends on. desired_capacity: type: integer in: body required: True description: | The desired capacity of a cluster. When creating a cluster, this value is set to 0 by default. destroy_after_deletion: type: boolean in: body required: False description: | Whether deleted nodes to be destroyed right away. min_version: 1.4 disabled_reason: type: string in: body required: False description: | The reason for disabling a service. domain: type: UUID in: body required: True description: | The ID of the domain a resource is created in. end_time: type: float in: body required: True description: | A floating point number that represents when an action's execution has completed. event: type: object in: body required: True description: | The structured description of an event object. event_id: type: UUID in: body required: True description: | The UUID of an event object. event_level: type: string in: body required: True description: | The level of an event object. event_level_req: type: string in: body required: False description: | The level of an event object. event_status: type: string in: body required: True description: | The current status of the object associated with the event. event_timestamp: type: string in: body required: True description: | The date and time when the event was generated. The date and time stamp format is ISO8601: ``CCYY-MM-DDThh:mm:ssZ``. events: type: array in: body required: True description: | A list of event objects. host: type: string in: body required: True description: | The name of the host. identity: type: string in: body required: True description: | The ID or name of the physical resource to be adopted. index: type: integer in: body required: True description: | An integer that uniquely identifies a node within its owning cluster. init_at: type: string in: body required: True description: | The date and time when the object was initialized. The date and time stamp format is ISO8601: ``CCYY-MM-DDThh:mm:ssZ``. For example: ``2016-01-18T00:00:00Z`` inputs: type: object in: body required: True description: | A collection of key-value pairs that are fed to the action as input parameters. interval: type: integer in: body required: True description: | An integer that indicates the interval in seconds between two consecutive executions of a repeatable action. lifecycle_token_id: type: UUID in: body required: True description: | The UUID of the lifecycle action to be completed. max_size: type: integer in: body required: True description: | The maximum size of a cluster, i.e. the maximum number of nodes that can be members of the cluster. A value of -1 means that the cluster doesn't have an upper bound regarding the number of member nodes. max_size_req: type: integer default: -1 in: body required: False description: | The maximum size of a cluster, i.e. the maximum number of nodes that can be members of the cluster. A value of -1 means that the cluster doesn't have an upper bound regarding the number of member nodes. metadata: type: object in: body required: True description: | A collection of key-value pairs associated with an object. metadata_req: type: object in: body description: | A collection of key-value pairs associated with an object. min_size: type: integer in: body required: True description: | The minimum size of a cluster, i.e. the minimum number of nodes that can be members of the cluster. min_size_req: type: integer default: 0 in: body required: False description: | The minimum size of a cluster, i.e. the minimum number of nodes that can be members of the cluster. name: type: string in: body required: True description: The name of the object in question. name_req: type: string in: body required: False description: The new name of the object in question. node: type: object in: body required: True description: | A structured description of a node object. node_cluster_identity: type: string in: body required: False description: | The name, short-ID or UUID of the cluster object a node belongs to. node_data: type: object in: body required: True description: | A map containing key-value pairs associated with a node object. node_id: type: UUID in: body required: True description: | A UUID string that uniquely identifies a node object. node_name: type: string in: body required: True description: | The name of a node object. The name must start with an ASCII letter and can contain ASCII letters, digits, underscores, periods, and hyphens and its length must be less than 255. node_name_adopt: type: string in: body required: False description: | The name of a node object. If specified, the name must start with an ASCII letter and can contain ASCII letters, digits, underscores, periods, and hyphens and its length must be less than 255. node_preview: type: object in: body required: True description: | A structured representation of the node to be adopted. Note this is a preview version which only contains the spec of the profile to be created. node_status: type: string in: body required: True description: | The string representation of the current status of the node object. nodes: type: array in: body required: True description: | A list of node objects. oid: type: UUID in: body required: True description: | The UUID of an object associated with the event. oname: type: string in: body required: True description: | The name of an object associated with the event. operation_request: type: object in: body required: True description: | A structured definition of an operation to be performed. The object is usually expressed as:: : { : : ... } The ```` specifies the operation to be performed while the ```` keys provide the parameters (if any) to the operation. Each individual operation has its own set of parameters, as supported by the profile type of the target cluster or node. operations: type: object in: body required: True description: | A dictionary containing the description of operations (and parameters) supported by a profile type. otype: type: string in: body required: True description: | The type of an object associated with the event. outputs: type: object in: body required: True description: | A collection of key-value pairs that were produced during the execution of an action as its outputs. overrides: type: object in: body required: False description: | If specified, provides a collection of key-value pairs that will override the property name and values extracted from the spec extracted from the existing physical node. physical_id: type: UUID in: body required: True description: | The UUID of the physical resource represented by the node object. policies: type: array in: body required: True description: | A list of policy objects. policy: type: object in: body required: True description: | A structured description of a policy object. policy_data: type: object in: body required: True description: | A structured representation of data associated with a policy object. policy_id: type: UUID in: body required: True description: | The UUID of a policy object. policy_identity: type: string in: body required: True description: | The name, UUID or short-UUID of a policy object. policy_name: type: string in: body required: True description: | The name of a policy object. The name must start with an ASCII letter and can contain ASCII letters, digits, underscores, periods, and hyphens and its length must be less than 255. policy_spec: type: object in: body required: True description: | The detailed specification of a policy object. policy_type: type: object in: body required: True description: | A structured description of a policy type. Since API micro-version 1.5, a "support_status" property is returned which contains a list of support status changes. policy_type_name: type: string in: body required: True description: | The name of the policy type. policy_type_schema: type: object in: body required: True description: | The schema of a policy type. The schema of a policy type varies a lot based on the specific type implementation. policy_types: type: array in: body required: True description: | A list of policy_type objects. Since API micro-version 1.5, each record in the list will have a "support_status" property which contains a list of support status changes. profile: type: object in: body required: True description: | A structured description of a profile object. profile_id: type: UUID in: body required: True description: | The UUID of the profile. profile_identity: type: string in: body required: False description: | The name, short-ID, or UUID of a profile. profile_identity_req: type: string in: body required: True description: | The name, short-ID, or UUID of a profile. profile_name: type: string in: body required: True description: | The name of a profile object. The name must start with an ASCII letter and can contain ASCII letters, digits, underscores, periods, and hyphens and its length must be less than 255. profile_only: type: boolean in: body required: False description: | Whether the update of profile is limited to the target cluster. All nodes in the cluster will be updated with the specified new profile if this parameter is set to False. The default value is False. min_version: 1.6 profile_spec: type: object in: body required: True description: | The detailed specification of the profile. profile_type: type: object in: body required: True description: | A structured description of a profile type. Since API micro-version 1.5, a "support_status" property is returned which contains a list of support status changes. profile_type_name: type: string in: body required: True description: | The name of the profile type. profile_type_schema: type: object in: body required: True description: | The schema of a profile type. The schema of a profile type varies a lot based on the specific type implementation. All profile types share the ``context`` property which is a dictionary for customizing the request context to authenticate with a backend service. A common usage of this property is to set the ``region_name`` in the dictionary so that a node can be created in the specified region. All other properties are defined by a particular profile type implementation. profile_type_version: type: string in: body required: True description: | The version of the profile type. profile_types: type: array in: body required: True description: | A list of profile_type objects. Since API micro-version 1.5, each record in the list will have a "support_status" property which contains a list of support status changes. profiles: type: array in: body required: True description: | A list for profile objects. project: type: UUID in: body required: True description: | The ID of the project a resource is created in. receiver: type: object in: body required: True description: | The structured definition of a receiver object. receiver_action: type: string in: body description: | 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. receiver_action_req: type: string in: body required: False description: | 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. receiver_actor: type: object in: body required: False description: | A map of key and value pairs to use for authentication. receiver_channel: type: object in: body required: True description: | The target to be used by user to trigger a receiver. For webhook type of receiver, channel is a webhook URL. receiver_cluster_identity: type: string in: body description: | The name, short-ID or UUID of the cluster object a node belongs to. receiver_id: type: UUID in: body required: True description: | The UUID of the receiver object. receiver_name: type: string in: body required: True description: | The name of a receiver object. The name must start with an ASCII letter and can contain ASCII letters, digits, underscores, periods, and hyphens and its length must be less than 255. receiver_params: type: object in: body required: True description: | A map of key and value pairs to use for action creation. receiver_params_req: type: object in: body required: False description: | A map of key and value pairs to use for action creation. Some actions might require certain input parameters. receiver_type: type: string in: body required: True description: | The type of the receiver. receiver_type_req: type: string in: body required: True description: | The type of the receiver. The valid values include ``webhook`` and ``message``. receivers: type: array in: body required: True description: | A list for receiver objects. recover_params: type: object in: body description: | The optional parameters provided to a cluster recover operation. The detailed keys and values are not checked at the moment. role: type: string in: body required: True description: | A string describing the role played by a node inside a cluster. role_req: type: string in: body description: | A string describing the new role played by a node inside a cluster. scale_count: type: integer in: body default: 1 description: | The number of new nodes to add to or remove from the specified cluster. The interpretation is depending on the action requested. Default value is 1. service_id: type: UUID in: body required: True description: | A UUID that uniquely identifies an service object. service_state: type: string in: body required: True description: | The state of the service. One of ``up`` or ``down``. service_status: type: string in: body required: True description: | The status of the service. One of ``enabled`` or ``disabled``. services: type: array in: body required: True description: | A list of service. snapshot: type: bool in: body required: False description: | A flat indicating whether a shapshot of the existing physical object should be created before the object is adopted as a node. start_time: type: float in: body required: True description: | A floating point number that represents the time when an action started execution. status_reason: type: string in: body required: True description: | The string representation of the reason why the object has transited to its current status. timeout: type: integer in: body required: True description: | The default timeout value (in seconds) of cluster operations. timeout_req: type: integer in: body required: False description: | The new timeout value (in seconds) of cluster operations. topic: type: string in: body required: True description: | The topic name of the service. updated_at: type: string in: body required: True description: | The date and time when the object was last updated. The date and time stamp format is ISO8601: ``CCYY-MM-DDThh:mm:ssZ``. For example: ``2016-01-18T00:00:00Z`` user: type: UUID in: body required: True description: | The ID of the user an object is created by. version: type: object in: body required: True description: | The details about a major API version. version_id: type: string in: body required: True description: | The string representation of an API version number, e.g. ``1.0``. version_links: type: array in: body required: True description: | A list of relative URLs to different version objects. version_max_version: type: string in: body required: True description: | The string representation of the maximum microversion supported. version_media_types: type: array in: body required: True description: | A list of content-type based media type request supported. version_min_version: type: string in: body required: True description: | The string representation of the minimum microversion supported. version_status: type: string in: body required: True description: | A string indicating the supporting status of the version. version_updated: type: string in: body required: True description: | The date and time when the version was last updated. The date and time stamp format is ISO8601: ``CCYY-MM-DDThh:mm:ssZ``. For example: ``2016-01-18T00:00:00Z`` versions: type: array in: body required: True description: | A list of supported major API versions.