diff --git a/api-ref-guides/pom.xml b/api-ref-guides/pom.xml
index 65f0dd2f2..a718e4016 100644
--- a/api-ref-guides/pom.xml
+++ b/api-ref-guides/pom.xml
@@ -72,6 +72,17 @@
api-ref-blockstorage-v1
+
+ os-api-ref-clustering-v1
+
+ generate-pdf
+
+ generate-sources
+
+ bk-api-ref-clustering-v1.xml
+ api-ref-clustering-v1
+
+
os-api-ref-compute-v2.1
diff --git a/api-ref-guides/src/bk-api-ref-clustering-v1.xml b/api-ref-guides/src/bk-api-ref-clustering-v1.xml
new file mode 100644
index 000000000..ec50e7447
--- /dev/null
+++ b/api-ref-guides/src/bk-api-ref-clustering-v1.xml
@@ -0,0 +1,36 @@
+
+
+
+ OpenStack Clustering Service API v1 Reference
+ API Reference
+
+
+
+
+
+
+ OpenStack Foundation
+
+
+
+ 2010-2015
+ OpenStack Foundation
+
+ OpenStack Clustering Service
+
+
+
+ Copyright details are filled in by the
+ template.
+
+
+
+
+
diff --git a/api-ref/pom.xml b/api-ref/pom.xml
index fba3832c8..b32576dba 100644
--- a/api-ref/pom.xml
+++ b/api-ref/pom.xml
@@ -69,7 +69,18 @@
bk-api-ref-blockstorage-v1
-
+
+ os-api-ref-clustering-v1
+
+ generate-html
+
+ generate-sources
+
+ api-ref-clustering-v1.xml
+ bk-api-ref-clustering-v1
+
+
+
os-api-ref-compute-v2.1
generate-html
diff --git a/api-ref/src/docbkx/api-ref-clustering-v1.xml b/api-ref/src/docbkx/api-ref-clustering-v1.xml
new file mode 100644
index 000000000..e6bc4f4bd
--- /dev/null
+++ b/api-ref/src/docbkx/api-ref-clustering-v1.xml
@@ -0,0 +1,23 @@
+
+
+
+ OpenStack Clustering API v1
+
+ 2015
+
+
+
+
+
+
+
+
+
+
diff --git a/api-ref/src/docbkx/ch_clustering-v1.xml b/api-ref/src/docbkx/ch_clustering-v1.xml
new file mode 100644
index 000000000..a616ff928
--- /dev/null
+++ b/api-ref/src/docbkx/ch_clustering-v1.xml
@@ -0,0 +1,202 @@
+
+
+ Clustering API v1 (CURRENT)
+ Clustering service for OpenStack.
+
+ API versions
+
+ Lists information for all Clustering API versions.
+
+
+
+
+
+
+
+
+ Profile types
+
+ Lists all profile types and shows details for a profile type.
+
+
+
+
+
+
+
+
+
+
+
+ Profiles
+
+ Lists all profiles and creates, shows information for, updates,
+ and deletes a profile.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Policy types
+
+ Lists all policy types and shows details for a policy type.
+
+
+
+
+
+
+
+
+
+
+
+ Policies
+
+ Lists all policies and creates, shows information for, updates,
+ and deletes a policy.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Clusters
+
+ Lists all clusters and creates, shows information for, updates,
+ deletes, and triggers an action on a cluster.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Nodes
+
+ Lists all nodes, and creates, shows information for, updates,
+ deletes, and triggers an action on a node.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cluster policies
+
+ Lists all cluster policies and shows information for a cluster
+ policy.
+
+
+
+
+
+
+
+
+
+
+
+ Webhooks
+
+ Lists all webhooks and creates, shows information for, deletes,
+ and triggers an action on a webhook.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Actions
+
+ Lists all actions and shows details for an action.
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+ Lists all events and shows information for an event.
+
+
+
+
+
+
+
+
+
+
+
+ Build info
+
+ Shows build information for a Senlin deployment.
+
+
+
+
+
+
+
+
diff --git a/api-ref/src/docbkx/itemizedlist-service-list.xml b/api-ref/src/docbkx/itemizedlist-service-list.xml
index 5f0ce58a9..be5ed503a 100644
--- a/api-ref/src/docbkx/itemizedlist-service-list.xml
+++ b/api-ref/src/docbkx/itemizedlist-service-list.xml
@@ -15,6 +15,11 @@
Block Storage API v1 (DEPRECATED)
+
+
+ Clustering API v1 (CURRENT)
+
+
Compute API (CURRENT)
diff --git a/api-ref/src/wadls/clustering-api/src/v1/clustering-api.wadl b/api-ref/src/wadls/clustering-api/src/v1/clustering-api.wadl
new file mode 100644
index 000000000..1ad8430e4
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/clustering-api.wadl
@@ -0,0 +1,2103 @@
+
+
+
+ %common;
+
+ %common_project;
+]>
+
+
+
+
+
+
+
+
+
+ &profile_typeTemplateParameter;
+
+
+
+
+
+
+ &policy_typeTemplateParameter;
+
+
+
+
+
+
+
+ &profile_idTemplateParameter;
+
+
+
+
+
+
+
+
+
+ &policy_idTemplateParameter;
+
+
+
+
+
+
+
+
+
+ &cluster_idTemplateParameter;
+
+
+
+
+
+
+
+
+
+ &policy_idTemplateParameter;
+
+
+
+
+
+
+
+
+
+ &node_idTemplateParameter;
+
+
+
+
+
+
+
+
+
+
+
+ &action_idTemplateParameter;
+
+
+
+
+
+
+
+ &webhook_idTemplateParameter;
+
+
+
+
+
+
+
+
+
+
+ &event_idTemplateParameter;
+
+
+
+
+
+
+
+
+
+
+
+ Lists information for all Clustering API versions.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Lists clusters.
+
+
+
+
+ &limitMarkerReqParameter;
+
+
+
+ Filters the response by a cluster name. Use this
+ filter multiple times to filter by multiple names.
+
+
+
+
+
+
+ Filters the response by a cluster status. Use this
+ filter multiple times to filter by multiple
+ statuses.
+
+
+
+
+
+
+ Includes deleted clusters in or excludes deleted
+ clusters from the cluster list.
+
+
+ Set to False
to exclude deleted
+ clusters from the cluster list. Set to
+ True
to include deleted clusters in
+ the cluster list. Default is False
.
+
+
+
+
+
+
+ Includes nested clusters in or excludes nested
+ clusters from the cluster list.
+
+
+ Set to False
to exclude nested
+ clusters from the cluster list. Set to
+ True
to include nested clusters in
+ the cluster list. Default is False
.
+
+
+
+
+
+
+ Sorts the list by an attribute. A valid attribute
+ is name
, status
,
+ created_time
, or
+ updated_time
.
+
+
+
+
+
+
+ Sort direction. A valid value is asc
+ (ascending) or desc
(descending).
+ Default is desc
. You can specify
+ multiple pairs of sort key and sort direction
+ query parameters. If you omit the sort direction
+ in a pair, the API uses the natural sorting
+ direction of the attribute that is provided as the
+ sort_key
.
+
+
+
+
+
+
+ Indicates whether to include nodes from either all
+ tenants or the current tenant.
+
+
+ If you are an administrative user and you set this
+ value to True
, the call returns all
+ nodes from all tenants. Default is
+ False
, which returns only nodes in
+ the current tenant.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ List of cluster records. Each record contains
+ fields such as created_time
,
+ id
, name
,
+ profile_id
, size
,
+ nodes
, status
,
+ status_reason
, and so on.
+
+
+
+
+
+
+
+
+
+ Creates a cluster.
+
+
+
+
+
+
+
+ &clusterRequestParameters;
+
+
+
+
+
+
+
+ &resourceLocationParameter;
+
+
+
+ A map with the id
, name
,
+ status
, and other fields for the
+ cluster.
+
+
+
+
+
+
+
+
+
+ Shows details for a cluster.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Updates a cluster.
+
+
+
+
+
+
+
+ &updateClusterRequestParameters;
+
+
+
+
+
+
+
+ &resourceLocationParameter;
+
+
+
+ A map with the id
, name
,
+ status
, and other fields for the
+ cluster.
+
+
+
+
+
+
+
+
+
+ Triggers an action on a cluster.
+
+
+
+
+
+
+
+ The action to trigger. Supported actions include:
+
+
+
+
+ add_nodes
Add nodes to a
+ cluster. Provide a list of nodes. For example:
+
+
+
+
+
+ del_nodes
Delete nodes from
+ a cluster. Provide a list of nodes.
+
+
+
+
+
+ scale_out
Enlarge the cluster
+ by count
number of nodes.
+
+
+
+
+
+ scale_in
Shrink the cluster
+ by count
number of nodes.
+
+
+
+
+
+ resize
Change the size of the
+ cluster by adjustment_type
, number
,
+ min_step
, min_size
, max_size
or
+ strict
.
+
+
+
+
+
+ policy_attach
Attach a policy
+ to a cluster. The request body contains
+ parameters for the policy attachment.
+
+
+
+
+
+ policy_detach
Detach a policy
+ from the cluster. The request body
+ contains the ID of the policy.
+
+
+
+
+
+ updatePolicy
Update the
+ policy attachment. Specify the policy ID and
+ property settings in the request body.
+
+
+
+
+
+ Each action takes a different set of parameters.
+
+
+
+
+
+
+
+
+
+ The Location
response header contains the
+ action that the request initiated.
+
+
+ &actionLocationParameter;
+
+
+
+
+
+
+ Lists all policies for a cluster.
+
+
+
+
+
+
+
+ Filters the response by a policy priority on the cluster.
+
+
+
+
+
+
+ Filters the response by a policy enforcement level
+ on the cluster.
+
+
+
+
+
+
+ Filters the response by a policy cool down value
+ on the cluster.
+
+
+
+
+
+
+ Filters the response by a policy enabled status on
+ the cluster.
+
+
+
+
+
+
+ Sorts the list by an attribute. A valid attribute
+ is priority
, level
,
+ cooldown
, or enabled
.
+
+
+
+
+
+
+ Sort direction. A valid value is asc
+ (ascending) or desc
(descending).
+ Default is desc
. You can specify
+ multiple pairs of sort key and sort direction
+ query parameters. If you omit the sort direction
+ in a pair, the API uses the natural sorting
+ direction of the attribute that is provided as the
+ sort_key
.
+
+
+
+
+
+
+
+
+
+ A cluster_policies
list contains records
+ of cluster-policy bindings. Each record contains
+ cluster-related fields, the policy, and the binding
+ itself.
+
+
+
+
+
+
+
+
+
+ Shows details for a policy for a cluster.
+
+
+
+
+
+
+ A cluster_policy
map with keys such as
+ cluster_id
, policy_id
,
+ policy_type
, level
,
+ cooldown
, priority
, and so
+ on. The key values are attributes for the policy that
+ is attached to the cluster.
+
+
+
+
+
+
+
+
+
+ Deletes a cluster.
+
+
+
+
+
+
+ The Location
response header contains the
+ action that the request triggered.
+
+
+ &resourceLocationParameter;
+
+
+
+
+
+
+ Lists supported profile types.
+
+
+
+
+
+
+ A list of supported profile types.
+
+
+
+
+
+
+
+
+
+ Shows details for a profile type.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Lists all supported policy types.
+
+
+
+
+
+
+ A list of supported policy types.
+
+
+
+
+
+
+
+
+
+ Shows details for a policy type.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Lists all profiles.
+
+
+
+
+ &limitMarkerReqParameter;
+
+
+
+ Sorts the list by the name
,
+ type
, created_time
,
+ updated_time
,
+ deleted_time
, permission
+ or metadata
attribute.
+
+
+
+
+
+
+ Sort direction. A valid value is asc
+ (ascending) or desc
(descending).
+ Default is desc
. You can specify
+ multiple pairs of sort key and sort direction
+ query parameters. If you omit the sort direction
+ in a pair, the API uses the natural sorting
+ direction of the attribute that is provided as the
+ sort_key
.
+
+
+
+
+
+
+ Filters the response by the name of a profile.
+
+
+
+
+
+
+ Filters the response by the name of a profile.
+
+
+
+
+
+
+ Filters the response by the permission string of a profile.
+
+
+
+
+
+
+ Filters the response by a metadata key and value pair.
+
+
+
+
+
+
+ Includes deleted profiles in or excludes deleted
+ profiles from the response.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Profile records. Each record contains the
+ id
, name
,
+ type
, spec
,
+ permission
, metadata
,
+ and other fields.
+
+
+
+
+
+
+
+
+
+ Creates a profile.
+
+
+
+
+
+
+
+
+
+
+ A map with details for the profile.
+
+
+ Profile Body
+
+
+ name
Name for the profile (required).
+
+
+
+
+ spec
Detailed specification
+ based on the chosen profile type
+ (required).
+
+
+
+
+ permission
A string
+ representing the default permission of
+ the profile (optional).
+
+
+
+
+ metadata
A list of key and
+ value pairs to associate with the profile
+ (optional).
+
+
+
+
+
+
+
+
+
+
+
+
+ &resourceLocationParameter;
+
+
+
+ A dictionary with details for the profile.
+
+
+ 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.
+
+
+
+
+ permission
The permission of
+ the profile.
+
+
+
+
+ metadata
A list of key and
+ value pairs that are attached to the
+ profile.
+
+
+
+
+ created_time
The UTC date and
+ time stamp when the profile was created.
+
+
+
+
+ updated_time
The UTC date and
+ time stamp when the profile was updated.
+
+
+
+
+ deleted_time
The UTC date and
+ time stamp when the profile was deleted.
+
+
+
+
+ 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.
+
+
+
+
+
+
+
+
+
+
+
+ Shows details for a profile.
+
+
+
+
+
+
+ A profile record. Contains fields such as
+ id
, name
, type
,
+ spec
, permission
,
+ metadata
, and so on.
+
+
+
+
+
+
+
+
+
+ Updates a profile.
+
+
+
+
+
+
+
+
+
+ New name for the target profile.
+
+
+
+
+
+ A permission.
+
+
+
+
+
+
+ A list of key and value pairs to associate with
+ the target profile.
+
+
+
+
+
+
+
+
+
+ A profile record. Contains fields such as
+ id
, name
, type
,
+ spec
, permission
,
+ metadata
, and so on.
+
+
+
+
+
+
+
+
+
+ Deletes a profile.
+
+
+
+
+
+
+
+ Lists all policies.
+
+
+
+
+ &limitMarkerReqParameter;
+
+
+
+ Sorts the list by the name
,
+ type
, level
,
+ created_time
,
+ updated_time
,
+ deleted_time
, or
+ cooldown
attribute.
+
+
+
+
+
+
+ Sort direction. A valid value is asc
+ (ascending) or desc
(descending).
+ Default is desc
. You can specify
+ multiple pairs of sort key and sort direction
+ query parameters. If you omit the sort direction
+ in a pair, the API uses the natural sorting
+ direction of the attribute that is provided as the
+ sort_key
.
+
+
+
+
+
+
+ Filters the response by the name of a policy.
+
+
+
+
+
+
+ Filters the response by the type of a policy.
+
+
+
+
+
+
+ Filters the response by the default enforcement
+ level of a policy.
+
+
+
+
+
+
+ Filters the response by the default cooldown value
+ of a policy.
+
+
+
+
+
+ Specifies whether deleted policies are to be listed.
+
+
+
+
+
+
+
+
+
+
+
+
+ List of policy records. Each record contains
+ fields such as id
, name
,
+ type
, spec
,
+ level
, cooldown
, and so
+ on.
+
+
+
+
+
+
+
+
+
+ Creates a policy.
+
+
+
+
+
+
+
+
+
+
+ A map with keys and values that specify the
+ details for the policy to be created:
+
+
+
+ &createPolicyRequestParameters;
+
+
+
+
+
+
+
+ &resourceLocationParameter;
+
+
+
+ A map with a set of keys and values that
+ provides the details of the policy.
+
+
+ Policy create response
+
+
+ id
An unique ID for the newly created policy.
+
+
+
+
+ name
Name for the newly created policy.
+
+
+
+
+ type
Name of policy type referenced by the policy.
+
+
+
+
+ spec
Detailed specification based on the policy type.
+
+
+
+
+ level
A number representing the default enforcement level.
+
+
+
+
+ cooldown
A number representing the default cooldown seconds.
+
+
+
+
+ created_time
The UTC date and
+ time stamp when the policy was created.
+
+
+
+
+ updated_time
The UTC date and
+ time stamp when the policy was updated.
+
+
+
+
+ deleted_time
The UTC date and
+ time stamp when the policy was deleted.
+
+
+
+
+ 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.
+
+
+
+
+
+
+
+
+
+
+
+ Shows details for a policy.
+
+
+
+
+
+
+ A policy record with fields such as id
,
+ name
, type
,
+ spec
, level
,
+ cooldown
, created_time
,
+ deleted_time
, and so on.
+
+
+
+
+
+
+
+
+
+ Updates a policy.
+
+
+
+
+
+
+
+
+
+
+ A map with a set of key and value pairs that
+ specify the details of the policy:
+
+
+ Policy body
+
+
+ name
New name for the policy, if specified.
+
+
+
+
+ level
New enforcement level for the policy, if specified.
+
+
+
+
+ cooldown
New cooldown, in
+ seconds, for the policy, if specified.
+
+
+
+
+
+
+
+
+
+
+
+ A policy record that includes fields such as
+ id
, name
, type
,
+ spec
, level
,
+ cooldown
, created_time
,
+ updated_time
, deleted_time
,
+ and so on.
+
+
+
+
+
+
+
+
+
+ Deletes a policy.
+
+
+
+
+
+
+
+ Lists all nodes.
+
+
+
+
+ &limitMarkerReqParameter;
+
+
+
+ Filters the response by the cluster that owns a node.
+
+
+
+
+
+
+ Includes deleted nodes in or excludes deleted
+ nodes from the list.
+
+
+
+
+
+
+ Filters the response by the name of a node.
+
+
+
+
+
+
+ Filters the response by the status of a node.
+
+
+
+
+
+
+ Sorts the list by an attribute. A valid attribute
+ is name
, status
,
+ created_time
, or updated_time
+
.
+
+
+
+
+
+
+ Sort direction. A valid value is asc
+ (ascending) or desc
(descending).
+ Default is desc
. You can specify
+ multiple pairs of sort key and sort direction
+ query parameters. If you omit the sort direction
+ in a pair, the API uses the natural sorting
+ direction of the attribute that is provided as the
+ sort_key
.
+
+
+
+
+
+
+ Indicates whether nodes from all tenants (projects) are to be listed.
+ Operation subject to access policy enforcement.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ List of node records. Each record contains fields
+ such as id
, cluster_id
,
+ name
, physical_id
,
+ profile_id
,
+ created_time
, index
,
+ status
, status_reason
,
+ metadata
, updated_time
,
+ and so on.
+
+
+
+
+
+
+
+
+
+ Creates a node.
+
+
+
+
+
+
+
+
+
+ A map with detailed data for the node.
+
+ Node Create Request Body
+
+
+ name
Name for the created node (required).
+
+
+
+
+ profile_id
Name, ID, or short
+ ID of the profile used by the node for creation (required).
+
+
+
+
+ cluster_id
Name, ID, or short ID of the cluster
+ the node lives in. If not specified, the node created will be
+ an orphaned node (optional).
+
+
+
+
+ role
A string indicating the role this node plays
+ in a cluster (optional).
+
+
+
+
+ metadata
A list of key-value pairs to attach to
+ the newly created node (optional).
+
+
+
+
+
+
+
+
+
+
+
+
+ &resourceLocationParameter;
+
+
+
+ Detailed data for the node, such as
+ id
, name
,
+ status
, and so on.
+
+
+
+
+
+
+
+
+
+ Updates a node.
+
+
+
+
+
+
+
+
+
+ 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).
+
+
+
+
+
+
+
+
+
+
+
+
+ &resourceLocationParameter;
+
+
+
+ Detailed data for the node such as
+ id
, name
,
+ status
, and so on.
+
+
+
+
+
+
+
+
+
+ Triggers an action on a node.
+
+
+
+
+
+
+
+ A map with the action to trigger. Optionally,
+ includes the parameters for the action. Supported
+ action names include:
+
+
+
+
+ join
Adds current node to a cluster.
+
+
+
+
+
+ leave
Deletes the current node from its cluster.
+
+
+
+
+
+
+
+
+
+
+
+
+ A map that includes the action
key and
+ value, where the value is the UUID of the action that
+ the request initiated.
+
+
+ &actionLocationParameter;
+
+
+
+
+
+
+ Deletes a node.
+
+
+
+
+
+
+ The Location
response header contains the
+ action that the request initiated.
+
+
+ &resourceLocationParameter;
+
+
+
+
+
+ Shows data for a node.
+
+
+
+
+
+
+ Indicates whether the node details are returned.
+ Default is False
.
+
+
+
+
+
+
+
+
+
+ A node record. Each record contains fields such as
+ id
, cluster_id
,
+ name
, physical_id
,
+ profile_id
, created_time
,
+ index
, status
,
+ status_reason
, metadata
,
+ updated_time
, and so on.
+
+
+
+
+
+
+
+
+
+ Lists all webhooks.
+
+
+
+
+ &limitMarkerReqParameter;
+
+
+
+ Indicates whether to show or omit deleted webhooks.
+
+
+
+
+
+
+ Filters the response by the name of a webhook.
+
+
+
+
+
+
+ Filters the response by the user name of a webhook.
+
+
+
+
+
+
+ Filters the response by the ID of the targeted object of a webhook.
+
+
+
+
+
+
+ Filters the response by the type of the targeted object of a webhook.
+
+
+
+
+
+
+ Filters the response by the targeted action of a webhook.
+
+
+
+
+
+
+ Sorts the list by an attribute. A valid attribute
+ is name
, obj_id
,
+ obj_type
, created_time
,
+ or deleted_time
.
+
+
+
+
+
+
+ Sort direction. A valid value is asc
+ (ascending) or desc
(descending).
+ Default is desc
. You can specify
+ multiple pairs of sort key and sort direction
+ query parameters. If you omit the sort direction
+ in a pair, the API uses the natural sorting
+ direction of the attribute that is provided as the
+ sort_key
.
+
+
+
+
+
+
+ Indicates whether to show or omit webhooks from all projects.
+ This operation is subject to access privilege checking.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ List of webhook records. Each record contains
+ fields such as id
, name
,
+ user
, project>
,
+ domain
, obj_id
,
+ obj_type
, action
,
+ credential
, params
,
+ created_time
and
+ deleted_time
, and so on.
+
+
+
+
+
+
+
+
+
+ Creates a webhook.
+
+
+
+
+
+
+
+
+
+
+ A map with detailed data for the webhook.
+
+
+ Webhook Create Request Body
+
+
+ name
Name for the webhook (optional).
+
+
+
+
+ obj_id
Name, ID, or short ID of the object targeted
+ by the webhook (required).
+
+
+
+
+ obj_type
The object type. A
+ valid value is cluster
,
+ node
, or policy
(required).
+
+
+
+
+ action
The action to initiate
+ when the webhook is triggered. Valid
+ values depend on the
+ obj_type
(required).
+
+
+
+
+ credential
A map of key and
+ value pairs to use for authentication. If
+ omitted, the requester credential is used
+ (optional).
+
+
+
+
+ params
A map of key and value
+ pairs to use for action creation. Some
+ actions might require certain input
+ parameters (optional).
+
+
+
+
+
+
+
+
+
+
+
+
+ &resourceLocationParameter;
+
+
+
+ The webhook details, such as id
,
+ name
, action
, and so on.
+
+
+
+
+
+
+
+
+
+ Shows details for a webhook.
+
+
+
+
+
+
+ A webhook record. The record includes fields such as
+ id
, name
,
+ obj_id
, obj_type
,
+ action
, credential
,
+ params
, created_time
,
+ created_time
, deleted_time
,
+ user
, project
,
+ domain
, and so on.
+
+
+
+
+
+
+
+
+
+ Deletes a webhook.
+
+
+
+
+
+
+
+ Triggers a webhook action.
+
+
+
+
+
+
+
+ The key to decipher the credentials stored in database.
+ Senlin uses the decrypted data for authentication.
+
+
+
+
+
+
+ The JSON body with inputs to use for the targeted action.
+
+
+
+
+
+
+
+
+
+ The Location
response header contains the
+ action that the request initiated.
+
+
+ &actionLocationParameter;
+
+
+
+
+
+
+ Lists events.
+
+
+
+
+ &limitMarkerReqParameter;
+
+
+
+ Sorts the list by an attribute. A valid attribute
+ is timestamp
, obj_type
,
+ obj_name
, user
, or
+ action
.
+
+
+
+
+
+
+ Sort direction. A valid value is asc
+ (ascending) or desc
(descending).
+ Default is desc
. You can specify
+ multiple pairs of sort key and sort direction
+ query parameters. If you omit the sort direction
+ in a pair, the API uses the natural sorting
+ direction of the attribute that is provided as the
+ sort_key
.
+
+
+
+
+
+
+ Indicates whether to include or exclude events for all projects.
+ Default is False
.
+
+
+
+
+
+
+ Indicates whether to include or exclude deleted events.
+ Default is False
.
+
+
+
+
+
+
+ Filters the response by the object ID for an event.
+ Use this filter multiple times to filter by multiple objects.
+
+
+
+
+
+
+ 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
.
+
+
+
+
+
+
+ Filters the response by the name of object
+ associated with an event. Use this filter multiple
+ times to filter by multiple objects.
+
+
+
+
+
+
+ Filters the response by the cluster ID associated
+ with an event. Use this filter multiple times to
+ filter by multiple clusters.
+
+
+
+
+
+
+ Filters the response by the action name associated
+ with an event. Use this filter multiple times to
+ filter by multiple actions.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Shows details for an event.
+
+
+
+
+
+
+ An event
map, which contains the details
+ of an event such as TIMESTAMP
or
+ LEVEL
.
+
+
+
+
+
+
+
+
+
+ Lists all actions.
+
+
+
+
+ &limitMarkerReqParameter;
+
+
+
+ Filters the response by an action name. Use this
+ filter multiple times to filter by multiple names.
+
+
+
+
+
+
+ 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.
+
+
+
+
+
+
+ Filters the response by an action name. Use this
+ filter multiple times to filter by multiple names.
+
+
+
+
+
+
+ Sorts the list by the name
,
+ target
, action
,
+ created_time
, status
, or
+ other attribute.
+
+
+
+
+
+
+ Sort direction. A valid value is asc
+ (ascending) or desc
(descending).
+ Default is desc
. You can specify
+ multiple pairs of sort key and sort direction
+ query parameters. If you omit the sort direction
+ in a pair, the API uses the natural sorting
+ direction of the attribute that is provided as the
+ sort_key
.
+
+
+
+
+
+
+ Indicates whether to include or exclude deleted
+ action entries. Default is False
.
+
+
+
+
+
+
+
+
+
+ An actions
list that contains all records
+ that meet the criteria. Each record provides detailed
+ data about an action.
+
+
+
+
+
+
+
+
+
+ Shows details for an action.
+
+
+
+
+
+
+ An action
map. Contains fields, such as id
,
+ action
, and so on.
+
+
+
+
+
+
+
+
+
+ Shows build information for a Senlin deployment.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/api-ref/src/wadls/clustering-api/src/v1/common.ent b/api-ref/src/wadls/clustering-api/src/v1/common.ent
new file mode 100644
index 000000000..24fde3255
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/common.ent
@@ -0,0 +1,294 @@
+
+
+
+ The URL against which to check the status of the resource.
+
+
+'>
+
+
+
+ The URL against which to check the status of the action spawned
+ from the request.
+
+
+'>
+
+
+
+ The name of the profile type.
+
+
+'>
+
+
+
+ The name of the policy type.
+
+
+'>
+
+
+
+ The UUID of the profile.
+
+
+'>
+
+
+
+ The UUID of the policy.
+
+
+'>
+
+
+
+ The UUID of the cluster.
+
+
+'>
+
+
+
+ The UUID of the node.
+
+
+'>
+
+
+
+ The UUID string of the action.
+
+
+'>
+
+
+
+ The UUID of the webhook.
+
+
+'>
+
+
+
+ The UUID of the event.
+
+
+'>
+
+
+
+ A map of cluster details.
+
+
+
+
+
+
+ The name of the cluster.
+
+
+
+
+
+
+ The UUID of the parent cluster if the cluster is
+ a nested cluster.
+
+
+
+
+
+
+ The ID or name of the profile for the cluster.
+
+
+
+
+
+
+ The capacity, or initial size, of the cluster.
+ Default is 0.
+
+
+
+
+
+
+ The minimum size of the cluster. Default is 0.
+
+
+
+
+
+
+ The maximum size of the cluster. Default is
+ -1
, which indicates that no upper
+ limit exists for the cluster size.
+
+
+
+
+
+
+ The timeout value, in minutes, for cluster
+ creation. Default is 60.
+
+
+
+
+
+
+ A set of key and value pairs to associate with
+ the cluster.
+
+
+'>
+
+
+
+ A map of cluster details.
+
+
+
+
+
+
+ The name of the cluster.
+
+
+
+
+
+
+ The UUID of the parent cluster if the cluster is
+ a nested cluster.
+
+
+
+
+
+
+ The ID or name of the profile for the cluster.
+
+
+
+
+
+
+ The timeout value, in minutes, for cluster
+ creation. Default is 60.
+
+
+
+
+
+
+ A set of key and value pairs to associate with
+ the cluster.
+
+
+'>
+
+
+
+ The name for the policy.
+
+
+
+
+
+
+ A detailed specification based on the policy type.
+
+
+
+
+
+
+ An integer value that represents the default enforcement level.
+
+
+
+
+
+
+ The cooldown value, in seconds.
+
+
+'>
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/action_get_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/action_get_resp.json
new file mode 100644
index 000000000..cbe763efd
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/action_get_resp.json
@@ -0,0 +1,20 @@
+{
+ "action": "CLUSTER_DELETE",
+ "cause": "RPC Request",
+ "context": {},
+ "deleted_time": null,
+ "depended_by": [],
+ "depends_on": [],
+ "end_time": 1423570000.0,
+ "id": "ffbb9175-d510-4bc1-b676-c6aba2a4ca81",
+ "inputs": {},
+ "interval": -1,
+ "name": "cluster_delete_fcc9b635",
+ "outputs": {},
+ "owner": null,
+ "start_time": 1423570000.0,
+ "status": "FAILED",
+ "status_reason": "Cluster action FAILED",
+ "target": "fcc9b635-52e3-490b-99f2-87b1640e4e89",
+ "timeout": 3600
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/action_list_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/action_list_resp.json
new file mode 100644
index 000000000..17c192e0e
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/action_list_resp.json
@@ -0,0 +1,42 @@
+{
+ "actions": [
+ {
+ "action": "NODE_CREATE",
+ "cause": "RPC Request",
+ "deleted_time": null,
+ "depended_by": [],
+ "depends_on": [],
+ "end_time": 1425550000.0,
+ "id": "2366d440-c73e-4961-9254-6d1c3af7c167",
+ "inputs": {},
+ "interval": -1,
+ "name": "node_create_0df0931b",
+ "outputs": {},
+ "owner": null,
+ "start_time": 1425550000.0,
+ "status": "SUCCEEDED",
+ "status_reason": "Action completed successfully.",
+ "target": "0df0931b-e251-4f2e-8719-4ebfda3627ba",
+ "timeout": 3600
+ },
+ {
+ "action": "NODE_DELETE",
+ "cause": "RPC Request",
+ "deleted_time": null,
+ "depended_by": [],
+ "depends_on": [],
+ "end_time": 1425550000.0,
+ "id": "edce3528-864f-41fb-8759-f4707925cc09",
+ "inputs": {},
+ "interval": -1,
+ "name": "node_delete_f0de9b9c",
+ "outputs": {},
+ "owner": null,
+ "start_time": 1425550000.0,
+ "status": "SUCCEEDED",
+ "status_reason": "Action completed successfully.",
+ "target": "f0de9b9c-6d48-4a46-af21-2ca8607777fe",
+ "timeout": 3600
+ }
+ ]
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/build_info.json b/api-ref/src/wadls/clustering-api/src/v1/samples/build_info.json
new file mode 100644
index 000000000..a5ddde4c0
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/build_info.json
@@ -0,0 +1,10 @@
+{
+ "build_info": {
+ "api": {
+ "revision": "1.0"
+ },
+ "engine": {
+ "revision": "2.0"
+ }
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_add_nodes.json b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_add_nodes.json
new file mode 100644
index 000000000..c2cefbaec
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_add_nodes.json
@@ -0,0 +1,7 @@
+{
+ "add_nodes": {
+ "nodes": [
+ "node1"
+ ]
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_create.json b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_create.json
new file mode 100644
index 000000000..ec71b3fa6
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_create.json
@@ -0,0 +1,12 @@
+{
+ "cluster": {
+ "desired_capacity": 0,
+ "max_size": -1,
+ "metadata": {},
+ "min_size": 0,
+ "name": "test_cluster",
+ "parent": null,
+ "profile_id": "mystack",
+ "timeout": null
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_create_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_create_resp.json
new file mode 100644
index 000000000..74747abb1
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_create_resp.json
@@ -0,0 +1,27 @@
+{
+ "cluster": {
+ "action": "bbf4558b-9fa3-482a-93c2-a4aa5cc85317",
+ "created_time": null,
+ "data": {},
+ "deleted_time": null,
+ "desired_capacity": 4,
+ "domain": null,
+ "id": "45edadcb-c73b-4920-87e1-518b2f29f54b",
+ "init_time": "2015-02-10T14:16:10",
+ "max_size": -1,
+ "metadata": {},
+ "min_size": 0,
+ "name": "test_cluster",
+ "nodes": [],
+ "parent": null,
+ "policies": [],
+ "profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
+ "profile_name": "mystack",
+ "project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
+ "status": "INIT",
+ "status_reason": "Initializing",
+ "timeout": 3600,
+ "updated_time": null,
+ "user": "5e5bf8027826429c96af157f68dc9072"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_del_nodes.json b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_del_nodes.json
new file mode 100644
index 000000000..283f71505
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_del_nodes.json
@@ -0,0 +1,7 @@
+{
+ "del_nodes": {
+ "nodes": [
+ "node1"
+ ]
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_get_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_get_resp.json
new file mode 100644
index 000000000..46dd1ef78
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_get_resp.json
@@ -0,0 +1,26 @@
+{
+ "cluster": {
+ "created_time": "2015-02-11T15:13:20",
+ "data": {},
+ "deleted_time": null,
+ "desired_capacity": 0,
+ "domain": null,
+ "id": "45edadcb-c73b-4920-87e1-518b2f29f54b",
+ "init_time": "2015-02-10T14:26:10",
+ "max_size": -1,
+ "metadata": {},
+ "min_size": 0,
+ "name": "test_cluster",
+ "nodes": [],
+ "parent": null,
+ "policies": [],
+ "profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
+ "profile_name": "mystack",
+ "project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
+ "status": "ACTIVE",
+ "status_reason": "Creation succeeded",
+ "timeout": 3600,
+ "updated_time": null,
+ "user": "5e5bf8027826429c96af157f68dc9072"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_list_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_list_resp.json
new file mode 100644
index 000000000..c4ae37052
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_list_resp.json
@@ -0,0 +1,32 @@
+{
+ "clusters": [
+ {
+ "created_time": "2015-02-10T14:26:14",
+ "data": {},
+ "deleted_time": null,
+ "desired_capacity": 4,
+ "domain": null,
+ "id": "7d85f602-a948-4a30-afd4-e84f47471c15",
+ "init_time": "2015-02-10T14:26:11",
+ "max_size": -1,
+ "metadata": {},
+ "min_size": 0,
+ "name": "cluster1",
+ "nodes": [
+ "b07c57c8-7ab2-47bf-bdf8-e894c0c601b9",
+ "ecc23d3e-bb68-48f8-8260-c9cf6bcb6e61",
+ "da1e9c87-e584-4626-a120-022da5062dac"
+ ],
+ "parent": null,
+ "policies": [],
+ "profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
+ "profile_name": "mystack",
+ "project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
+ "status": "ACTIVE",
+ "status_reason": "Cluster scale-in succeeded",
+ "timeout": 3600,
+ "updated_time": null,
+ "user": "5e5bf8027826429c96af157f68dc9072"
+ }
+ ]
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_policy_attach.json b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_policy_attach.json
new file mode 100644
index 000000000..40713eb0b
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_policy_attach.json
@@ -0,0 +1,9 @@
+{
+ "policy_attach": {
+ "cooldown": "60",
+ "enabled": true,
+ "level": "30",
+ "policy_id": "lb001",
+ "priority": "60"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_policy_detach.json b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_policy_detach.json
new file mode 100644
index 000000000..91f30b5ab
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_policy_detach.json
@@ -0,0 +1,5 @@
+{
+ "policy_detach": {
+ "policy_id": "lb001"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_policy_get_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_policy_get_resp.json
new file mode 100644
index 000000000..2a96ef232
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_policy_get_resp.json
@@ -0,0 +1,14 @@
+{
+ "cluster_policy": {
+ "cluster_id": "7d85f602-a948-4a30-afd4-e84f47471c15",
+ "cluster_name": "cluster4",
+ "cooldown": 0,
+ "enabled": true,
+ "id": "06be3a1f-b238-4a96-a737-ceec5714087e",
+ "level": 0,
+ "policy_id": "714fe676-a08f-4196-b7af-61d52eeded15",
+ "policy_name": "dp01",
+ "policy_type": "DeletionPolicy",
+ "priority": 50
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_policy_list_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_policy_list_resp.json
new file mode 100644
index 000000000..c5553d529
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_policy_list_resp.json
@@ -0,0 +1,28 @@
+{
+ "cluster_policies": [
+ {
+ "cluster_id": "7d85f602-a948-4a30-afd4-e84f47471c15",
+ "cluster_name": "cluster4",
+ "cooldown": 0,
+ "enabled": true,
+ "id": "06be3a1f-b238-4a96-a737-ceec5714087e",
+ "level": 0,
+ "policy_id": "714fe676-a08f-4196-b7af-61d52eeded15",
+ "policy_name": "dp01",
+ "policy_type": "DeletionPolicy",
+ "priority": 50
+ },
+ {
+ "cluster_id": "7d85f602-a948-4a30-afd4-e84f47471c15",
+ "cluster_name": "cluster4",
+ "cooldown": 0,
+ "enabled": true,
+ "id": "abddc45e-ac31-4f90-93cc-db55a7d8dd6d",
+ "level": 30,
+ "policy_id": "e026e09f-a3e9-4dad-a1b9-d7ba316026a1",
+ "policy_name": "sp1",
+ "policy_type": "ScalingPolicy",
+ "priority": 30
+ }
+ ]
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_policy_update.json b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_policy_update.json
new file mode 100644
index 000000000..1eabc2beb
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_policy_update.json
@@ -0,0 +1,6 @@
+{
+ "policy_update": {
+ "enabled": false,
+ "policy_id": "lb001"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_resize.json b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_resize.json
new file mode 100644
index 000000000..d4347e4e5
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_resize.json
@@ -0,0 +1,10 @@
+{
+ "resize": {
+ "adjustment_type": "CHANGE_IN_PERCENTAGE",
+ "max_size": 20,
+ "min_step": 1,
+ "min_size": 5,
+ "number": 20,
+ "strict": true
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_scale_in.json b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_scale_in.json
new file mode 100644
index 000000000..d008f4f98
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_scale_in.json
@@ -0,0 +1,5 @@
+{
+ "scale_in": {
+ "count": "2"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_scale_out.json b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_scale_out.json
new file mode 100644
index 000000000..0be206099
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_scale_out.json
@@ -0,0 +1,5 @@
+{
+ "scale_out": {
+ "count": "1"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_update.json b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_update.json
new file mode 100644
index 000000000..ba802042f
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_update.json
@@ -0,0 +1,9 @@
+{
+ "cluster": {
+ "metadata": null,
+ "name": null,
+ "parent": null,
+ "profile_id": null,
+ "timeout": "30"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_update_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_update_resp.json
new file mode 100644
index 000000000..b42b13a3f
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/cluster_update_resp.json
@@ -0,0 +1,26 @@
+{
+ "cluster": {
+ "created_time": "2015-02-11T15:13:20",
+ "data": {},
+ "deleted_time": null,
+ "desired_capacity": 0,
+ "domain": null,
+ "id": "45edadcb-c73b-4920-87e1-518b2f29f54b",
+ "init_time": "2015-02-10T14:26:10",
+ "max_size": -1,
+ "metadata": {},
+ "min_size": 0,
+ "name": "test_cluster",
+ "nodes": [],
+ "parent": null,
+ "policies": [],
+ "profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
+ "profile_name": "mystack",
+ "project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
+ "status": "INIT",
+ "status_reason": "Initializing",
+ "timeout": 3600,
+ "updated_time": null,
+ "user": "5e5bf8027826429c96af157f68dc9072"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/event_get_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/event_get_resp.json
new file mode 100644
index 000000000..94ed6134a
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/event_get_resp.json
@@ -0,0 +1,17 @@
+{
+ "event": {
+ "action": "create",
+ "cluster_id": null,
+ "deleted_time": null,
+ "id": "2d255b9c-8f36-41a2-a137-c0175ccc29c3",
+ "level": "20",
+ "obj_id": "0df0931b-e251-4f2e-8719-4ebfda3627ba",
+ "obj_name": "node009",
+ "obj_type": "NODE",
+ "project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
+ "status": "CREATING",
+ "status_reason": "Initializing",
+ "timestamp": "2015-03-05T08:53:15.000000",
+ "user": "a21ded6060534d99840658a777c2af5a"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/event_list_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/event_list_resp.json
new file mode 100644
index 000000000..208d45ef0
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/event_list_resp.json
@@ -0,0 +1,19 @@
+{
+ "events": [
+ {
+ "action": "create",
+ "cluster_id": null,
+ "deleted_time": null,
+ "id": "2d255b9c-8f36-41a2-a137-c0175ccc29c3",
+ "level": "20",
+ "obj_id": "0df0931b-e251-4f2e-8719-4ebfda3627ba",
+ "obj_name": "node009",
+ "obj_type": "NODE",
+ "project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
+ "status": "CREATING",
+ "status_reason": "Initializing",
+ "timestamp": "2015-03-05T08:53:15.000000",
+ "user": "a21ded6060534d99840658a777c2af5a"
+ }
+ ]
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/node_create.json b/api-ref/src/wadls/clustering-api/src/v1/samples/node_create.json
new file mode 100644
index 000000000..55e5c3311
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/node_create.json
@@ -0,0 +1,9 @@
+{
+ "node": {
+ "cluster_id": null,
+ "metadata": {},
+ "name": "node009",
+ "profile_id": "mystack",
+ "role": "master"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/node_create_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/node_create_resp.json
new file mode 100644
index 000000000..45fbeb8e9
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/node_create_resp.json
@@ -0,0 +1,24 @@
+{
+ "node": {
+ "action": "2366d440-c73e-4961-9254-6d1c3af7c167",
+ "cluster_id": null,
+ "created_time": null,
+ "data": {},
+ "deleted_time": null,
+ "domain": null,
+ "id": "0df0931b-e251-4f2e-8719-4ebfda3627ba",
+ "index": -1,
+ "init_time": "2015-03-05T08:53:15",
+ "metadata": {},
+ "name": "node009",
+ "physical_id": "",
+ "profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
+ "profile_name": "mystack",
+ "project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
+ "role": "master",
+ "status": "INIT",
+ "status_reason": "Initializing",
+ "updated_time": null,
+ "user": "5e5bf8027826429c96af157f68dc9072"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/node_get_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/node_get_resp.json
new file mode 100644
index 000000000..b7673cabd
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/node_get_resp.json
@@ -0,0 +1,23 @@
+{
+ "node": {
+ "cluster_id": null,
+ "created_time": "2015-02-10T12:03:16",
+ "data": {},
+ "deleted_time": null,
+ "domain": null,
+ "id": "d5779bb0-f0a0-49c9-88cc-6f078adb5a0b",
+ "index": -1,
+ "init_time": "2015-02-10T12:03:13",
+ "metadata": {},
+ "name": "node1",
+ "physical_id": "f41537fa-22ab-4bea-94c0-c874e19d0c80",
+ "profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
+ "profile_name": "mystack",
+ "project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
+ "role": null,
+ "status": "ACTIVE",
+ "status_reason": "Creation succeeded",
+ "updated_time": "2015-03-04T04:58:27",
+ "user": "5e5bf8027826429c96af157f68dc9072"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/node_join.json b/api-ref/src/wadls/clustering-api/src/v1/samples/node_join.json
new file mode 100644
index 000000000..3be68eef2
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/node_join.json
@@ -0,0 +1,5 @@
+{
+ "join": {
+ "cluster_id": "test_cluster"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/node_leave.json b/api-ref/src/wadls/clustering-api/src/v1/samples/node_leave.json
new file mode 100644
index 000000000..ba8507c99
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/node_leave.json
@@ -0,0 +1,3 @@
+{
+ "leave": {}
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/node_list_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/node_list_resp.json
new file mode 100644
index 000000000..b9bfa0009
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/node_list_resp.json
@@ -0,0 +1,26 @@
+{
+ "nodes": [
+ {
+ "cluster_id": null,
+ "created_time": "2015-02-27T04:39:21",
+ "data": {},
+ "deleted_time": null,
+ "details": {},
+ "domain": null,
+ "id": "573aa1ba-bf45-49fd-907d-6b5d6e6adfd3",
+ "index": -1,
+ "init_time": "2015-02-27T04:39:18",
+ "metadata": {},
+ "name": "node00a",
+ "physical_id": "cc028275-d078-4729-bf3e-154b7359814b",
+ "profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
+ "profile_name": "mystack",
+ "project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
+ "role": null,
+ "status": "ACTIVE",
+ "status_reason": "Creation succeeded",
+ "updated_time": null,
+ "user": "5e5bf8027826429c96af157f68dc9072"
+ }
+ ]
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/node_update.json b/api-ref/src/wadls/clustering-api/src/v1/samples/node_update.json
new file mode 100644
index 000000000..b593bb7f8
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/node_update.json
@@ -0,0 +1,5 @@
+{
+ "node": {
+ "name": "new_node_name"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/node_update_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/node_update_resp.json
new file mode 100644
index 000000000..adb061b52
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/node_update_resp.json
@@ -0,0 +1,24 @@
+{
+ "node": {
+ "action": "2366d440-c73e-4961-9254-6d1c3af7c167",
+ "cluster_id": null,
+ "created_time": null,
+ "data": {},
+ "deleted_time": null,
+ "domain": null,
+ "id": "0df0931b-e251-4f2e-8719-4ebfda3627ba",
+ "index": -1,
+ "init_time": "2015-03-05T08:53:15",
+ "metadata": {},
+ "name": "node009",
+ "physical_id": "",
+ "profile_id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
+ "profile_name": "mystack",
+ "project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
+ "role": "master",
+ "status": "ACTIVE",
+ "status_reason": "Update succeeded",
+ "updated_time": "2015-09-01T18:53:15",
+ "user": "5e5bf8027826429c96af157f68dc9072"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/policy_create.json b/api-ref/src/wadls/clustering-api/src/v1/samples/policy_create.json
new file mode 100644
index 000000000..a0b077e1b
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/policy_create.json
@@ -0,0 +1,19 @@
+{
+ "policy": {
+ "cooldown": 0,
+ "level": 0,
+ "name": "sp001",
+ "spec": {
+ "properties": {
+ "adjustment": {
+ "min_step": 1,
+ "number": 1,
+ "type": "CHANGE_IN_CAPACITY"
+ },
+ "event": "CLUSTER_SCALE_IN"
+ },
+ "type": "senlin.policy.scaling",
+ "version": "1.0"
+ }
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/policy_create_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/policy_create_resp.json
new file mode 100644
index 000000000..cfb2139eb
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/policy_create_resp.json
@@ -0,0 +1,29 @@
+{
+ "policy": {
+ "cooldown": 0,
+ "created_time": "2015-03-02T07:40:31",
+ "data": {},
+ "deleted_time": null,
+ "domain": null,
+ "id": "02f62195-2198-4797-b0a9-877632208527",
+ "level": 0,
+ "name": "sp001",
+ "project": "42d9e9663331431f97b75e25136307ff",
+ "spec": {
+ "properties": {
+ "adjustment": {
+ "best_effort": true,
+ "min_step": 1,
+ "number": 1,
+ "type": "CHANGE_IN_CAPACITY"
+ },
+ "event": "CLUSTER_SCALE_IN"
+ },
+ "type": "senlin.policy.scaling",
+ "version": "1.0"
+ },
+ "type": "senlin.policy.scaling-1.0",
+ "updated_time": null,
+ "user": "5e5bf8027826429c96af157f68dc9072"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/policy_get_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/policy_get_resp.json
new file mode 100644
index 000000000..cfb2139eb
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/policy_get_resp.json
@@ -0,0 +1,29 @@
+{
+ "policy": {
+ "cooldown": 0,
+ "created_time": "2015-03-02T07:40:31",
+ "data": {},
+ "deleted_time": null,
+ "domain": null,
+ "id": "02f62195-2198-4797-b0a9-877632208527",
+ "level": 0,
+ "name": "sp001",
+ "project": "42d9e9663331431f97b75e25136307ff",
+ "spec": {
+ "properties": {
+ "adjustment": {
+ "best_effort": true,
+ "min_step": 1,
+ "number": 1,
+ "type": "CHANGE_IN_CAPACITY"
+ },
+ "event": "CLUSTER_SCALE_IN"
+ },
+ "type": "senlin.policy.scaling",
+ "version": "1.0"
+ },
+ "type": "senlin.policy.scaling-1.0",
+ "updated_time": null,
+ "user": "5e5bf8027826429c96af157f68dc9072"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/policy_list_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/policy_list_resp.json
new file mode 100644
index 000000000..d324fd22e
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/policy_list_resp.json
@@ -0,0 +1,29 @@
+{
+ "policies": [
+ {
+ "cooldown": 0,
+ "created_time": "2015-02-15T08:33:13.000000",
+ "data": {},
+ "deleted_time": null,
+ "domain": null,
+ "id": "7192d8df-73be-4e98-ab99-1cf6d5066729",
+ "level": 0,
+ "name": "test_policy_1",
+ "project": "42d9e9663331431f97b75e25136307ff",
+ "spec": {
+ "description": "A test policy",
+ "properties": {
+ "criteria": "OLDEST_FIRST",
+ "destroy_after_deletion": true,
+ "grace_period": 60,
+ "reduce_desired_capacity": false
+ },
+ "type": "senlin.policy.deletion",
+ "version": "1.0"
+ },
+ "type": "senlin.policy.deletion-1.0",
+ "updated_time": null,
+ "user": "5e5bf8027826429c96af157f68dc9072"
+ }
+ ]
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/policy_type_get_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/policy_type_get_resp.json
new file mode 100644
index 000000000..90ea4f76c
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/policy_type_get_resp.json
@@ -0,0 +1,42 @@
+{
+ "policy_type": {
+ "name": "senlin.policy.deletion",
+ "schema": {
+ "criteria": {
+ "constraints": [
+ {
+ "constraint": [
+ "OLDEST_FIRST",
+ "OLDEST_PROFILE_FRIST",
+ "YOUNGEST_FIRST",
+ "RANDOM"
+ ],
+ "type": "AllowedValues"
+ }
+ ],
+ "default": "RANDOM",
+ "description": "Criteria used in selecting candidates for deletion",
+ "required": false,
+ "type": "String"
+ },
+ "destroy_after_deletion": {
+ "default": true,
+ "description": "Whether a node should be completely destroyed after deletion. Default to True",
+ "required": false,
+ "type": "Boolean"
+ },
+ "grace_period": {
+ "default": 0,
+ "description": "Number of seconds before real deletion happens.",
+ "required": false,
+ "type": "Integer"
+ },
+ "reduce_desired_capacity": {
+ "default": false,
+ "description": "Whether the desired capacity of the cluster should be reduced along the deletion. Default to False.",
+ "required": false,
+ "type": "Boolean"
+ }
+ }
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/policy_type_list_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/policy_type_list_resp.json
new file mode 100644
index 000000000..55aa80095
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/policy_type_list_resp.json
@@ -0,0 +1,22 @@
+{
+ "policy_types": [
+ {
+ "name": "ScalingPolicy"
+ },
+ {
+ "name": "PlacementPolicy"
+ },
+ {
+ "name": "DeletionPolicy"
+ },
+ {
+ "name": "LoadBalancingPolicy"
+ },
+ {
+ "name": "HealthPolicy"
+ },
+ {
+ "name": "UpdatePolicy"
+ }
+ ]
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/policy_update.json b/api-ref/src/wadls/clustering-api/src/v1/samples/policy_update.json
new file mode 100644
index 000000000..4053fd925
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/policy_update.json
@@ -0,0 +1,5 @@
+{
+ "policy": {
+ "cooldown": "34"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/policy_update_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/policy_update_resp.json
new file mode 100644
index 000000000..98c638258
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/policy_update_resp.json
@@ -0,0 +1,27 @@
+{
+ "policy": {
+ "cooldown": 0,
+ "created_time": "2015-10-14T09:14:53",
+ "data": {},
+ "deleted_time": null,
+ "domain": null,
+ "id": "ac5415bd-f522-4160-8be0-f8853e4bc332",
+ "level": 0,
+ "name": "dp01",
+ "project": "42d9e9663331431f97b75e25136307ff",
+ "spec": {
+ "description": "A policy for node deletion.",
+ "properties": {
+ "criteria": "OLDEST_FIRST",
+ "destroy_after_deletion": true,
+ "grace_period": 60,
+ "reduce_desired_capacity": false
+ },
+ "type": "senlin.policy.deletion",
+ "version": "1.0"
+ },
+ "type": "senlin.policy.deletion-1.0",
+ "updated_time": null,
+ "user": "5e5bf8027826429c96af157f68dc9072"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/profile_create.json b/api-ref/src/wadls/clustering-api/src/v1/samples/profile_create.json
new file mode 100644
index 000000000..af357e04d
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/profile_create.json
@@ -0,0 +1,53 @@
+{
+ "profile": {
+ "metadata": {},
+ "name": "test_prof1",
+ "permission": "xxx",
+ "spec": {
+ "properties": {
+ "disable_rollback": false,
+ "environment": {
+ "resource_registry": {
+ "os.heat.server": "OS::Heat::Server"
+ }
+ },
+ "files": {
+ "file:///usr/test_script.sh": "#!/bin/bash\n\necho \"this is a test script file\"\n"
+ },
+ "parameters": {},
+ "template": {
+ "heat_template_version": "2014-10-16",
+ "outputs": {
+ "result": {
+ "value": {
+ "get_attr": [
+ "random",
+ "value"
+ ]
+ }
+ }
+ },
+ "parameters": {
+ "file": {
+ "default": {
+ "get_file": "file:///usr/test_script.sh"
+ },
+ "type": "string"
+ }
+ },
+ "resources": {
+ "random": {
+ "properties": {
+ "length": 64
+ },
+ "type": "OS::Heat::RandomString"
+ }
+ }
+ },
+ "timeout": 60
+ },
+ "type": "os.heat.stack",
+ "version": "1.0"
+ }
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/profile_create_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/profile_create_resp.json
new file mode 100644
index 000000000..14ba4fcf1
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/profile_create_resp.json
@@ -0,0 +1,61 @@
+{
+ "profile": {
+ "created_time": "2015-03-01T14:28:25",
+ "deleted_time": null,
+ "domain": null,
+ "id": "7fa885cd-fa39-4531-a42d-780af95c84a4",
+ "metadata": {},
+ "name": "test_prof1",
+ "permission": "xxx",
+ "project": "42d9e9663331431f97b75e25136307ff",
+ "spec": {
+ "properties": {
+ "disable_rollback": false,
+ "environment": {
+ "resource_registry": {
+ "os.heat.server": "OS::Heat::Server"
+ }
+ },
+ "files": {
+ "file:///opt/stack/senlin/examples/profiles/test_script.sh": "#!/bin/bash\n\necho \"this is a test script file\"\n"
+ },
+ "parameters": {},
+ "template": {
+ "heat_template_version": "2014-10-16",
+ "outputs": {
+ "result": {
+ "value": {
+ "get_attr": [
+ "random",
+ "value"
+ ]
+ }
+ }
+ },
+ "parameters": {
+ "file": {
+ "default": {
+ "get_file": "file:///opt/stack/senlin/examples/profiles/test_script.sh"
+ },
+ "type": "string"
+ }
+ },
+ "resources": {
+ "random": {
+ "properties": {
+ "length": 64
+ },
+ "type": "OS::Heat::RandomString"
+ }
+ }
+ },
+ "timeout": 60
+ },
+ "type": "os.heat.stack",
+ "version": "1.0"
+ },
+ "type": "os.heat.stack-1.0",
+ "updated_time": null,
+ "user": "5e5bf8027826429c96af157f68dc9072"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/profile_get_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/profile_get_resp.json
new file mode 100644
index 000000000..cbf98aec7
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/profile_get_resp.json
@@ -0,0 +1,59 @@
+{
+ "profile": {
+ "created_time": "2015-03-01T14:28:25",
+ "deleted_time": null,
+ "domain": null,
+ "id": "7fa885cd-fa39-4531-a42d-780af95c84a4",
+ "metadata": {},
+ "name": "test_prof1",
+ "permission": "xxx",
+ "project": "42d9e9663331431f97b75e25136307ff",
+ "spec": {
+ "disable_rollback": false,
+ "environment": {
+ "resource_registry": {
+ "os.heat.server": "OS::Heat::Server"
+ }
+ },
+ "files": {
+ "file:///opt/stack/senlin/examples/profiles/test_script.sh": "#!/bin/bash\n\necho \"this is a test script file\"\n"
+ },
+ "parameters": {},
+ "template": {
+ "heat_template_version": "2014-10-16",
+ "outputs": {
+ "result": {
+ "value": {
+ "get_attr": [
+ "random",
+ "value"
+ ]
+ }
+ }
+ },
+ "parameters": {
+ "file": {
+ "default": {
+ "get_file": "file:///opt/stack/senlin/examples/profiles/test_script.sh"
+ },
+ "type": "string"
+ }
+ },
+ "resources": {
+ "random": {
+ "properties": {
+ "length": 64
+ },
+ "type": "OS::Heat::RandomString"
+ }
+ },
+ "timeout": 60
+ },
+ "type": "os.heat.stack",
+ "version": "1.0"
+ },
+ "type": "os.heat.stack-1.0",
+ "updated_time": null,
+ "user": "5e5bf8027826429c96af157f68dc9072"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/profile_list_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/profile_list_resp.json
new file mode 100644
index 000000000..afa813404
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/profile_list_resp.json
@@ -0,0 +1,65 @@
+{
+ "profiles": [
+ {
+ "created_time": "2015-02-10T11:46:33.000000",
+ "deleted_time": null,
+ "domain": null,
+ "id": "edc63d0a-2ca4-48fa-9854-27926da76a4a",
+ "metadata": {},
+ "name": "mystack",
+ "permission": "",
+ "project": "42d9e9663331431f97b75e25136307ff",
+ "spec": {
+ "properties": {
+ "disable_rollback": false,
+ "environment": {
+ "resource_registry": {
+ "os.heat.server": "OS::Heat::Server"
+ }
+ },
+ "files": {
+ "file:///opt/stack/senlin/examples/profiles/test_script.sh": "#!/bin/bash\n\necho \"this is a test script file\"\n"
+ },
+ "name": "random_string_stack",
+ "parameters": {},
+ "rollback": false,
+ "template": {
+ "heat_template_version": "2014-10-16",
+ "outputs": {
+ "result": {
+ "value": {
+ "get_attr": [
+ "random",
+ "value"
+ ]
+ }
+ }
+ },
+ "parameters": {
+ "file": {
+ "default": {
+ "get_file": "file:///opt/stack/senlin/examples/profiles/test_script.sh"
+ },
+ "type": "string"
+ }
+ },
+ "resources": {
+ "random": {
+ "properties": {
+ "length": 64
+ },
+ "type": "OS::Heat::RandomString"
+ }
+ }
+ },
+ "timeout": 60
+ },
+ "type": "os.heat.stack",
+ "version": "1.0"
+ },
+ "type": "os.heat.stack-1.0",
+ "updated_time": null,
+ "user": "5e5bf8027826429c96af157f68dc9072"
+ }
+ ]
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/profile_type_get_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/profile_type_get_resp.json
new file mode 100644
index 000000000..d83707987
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/profile_type_get_resp.json
@@ -0,0 +1,47 @@
+{
+ "profile_type": {
+ "name": "os.heat.stack",
+ "schema": {
+ "context": {
+ "default": {},
+ "description": "A dictionary for specifying the customized context for stack operations",
+ "required": false,
+ "type": "Map"
+ },
+ "disable_rollback": {
+ "default": true,
+ "description": "A boolean specifying whether a stack operation can be rolled back.",
+ "required": false,
+ "type": "Boolean"
+ },
+ "environment": {
+ "default": {},
+ "description": "A map that specifies the environment used for stack operations.",
+ "required": false,
+ "type": "Map"
+ },
+ "files": {
+ "default": {},
+ "description": "Contents of files referenced by the template, if any.",
+ "required": false,
+ "type": "Map"
+ },
+ "parameters": {
+ "default": {},
+ "description": "Parameters to be passed to Heat for stack operations.",
+ "required": false,
+ "type": "Map"
+ },
+ "template": {
+ "description": "Heat stack template.",
+ "required": true,
+ "type": "Map"
+ },
+ "timeout": {
+ "description": "A integer that specifies the number of minutes that a stack operation times out.",
+ "required": false,
+ "type": "Integer"
+ }
+ }
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/profile_type_list_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/profile_type_list_resp.json
new file mode 100644
index 000000000..f943bf521
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/profile_type_list_resp.json
@@ -0,0 +1,13 @@
+{
+ "profile_types": [
+ {
+ "name": "os.heat.stack"
+ },
+ {
+ "name": "os.heat.resource"
+ },
+ {
+ "name": "os.nova.server"
+ }
+ ]
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/profile_update.json b/api-ref/src/wadls/clustering-api/src/v1/samples/profile_update.json
new file mode 100644
index 000000000..54fa1e7c3
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/profile_update.json
@@ -0,0 +1,7 @@
+{
+ "profile": {
+ "metadata": {},
+ "name": null,
+ "permission": "111100001111"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/profile_update_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/profile_update_resp.json
new file mode 100644
index 000000000..cbf98aec7
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/profile_update_resp.json
@@ -0,0 +1,59 @@
+{
+ "profile": {
+ "created_time": "2015-03-01T14:28:25",
+ "deleted_time": null,
+ "domain": null,
+ "id": "7fa885cd-fa39-4531-a42d-780af95c84a4",
+ "metadata": {},
+ "name": "test_prof1",
+ "permission": "xxx",
+ "project": "42d9e9663331431f97b75e25136307ff",
+ "spec": {
+ "disable_rollback": false,
+ "environment": {
+ "resource_registry": {
+ "os.heat.server": "OS::Heat::Server"
+ }
+ },
+ "files": {
+ "file:///opt/stack/senlin/examples/profiles/test_script.sh": "#!/bin/bash\n\necho \"this is a test script file\"\n"
+ },
+ "parameters": {},
+ "template": {
+ "heat_template_version": "2014-10-16",
+ "outputs": {
+ "result": {
+ "value": {
+ "get_attr": [
+ "random",
+ "value"
+ ]
+ }
+ }
+ },
+ "parameters": {
+ "file": {
+ "default": {
+ "get_file": "file:///opt/stack/senlin/examples/profiles/test_script.sh"
+ },
+ "type": "string"
+ }
+ },
+ "resources": {
+ "random": {
+ "properties": {
+ "length": 64
+ },
+ "type": "OS::Heat::RandomString"
+ }
+ },
+ "timeout": 60
+ },
+ "type": "os.heat.stack",
+ "version": "1.0"
+ },
+ "type": "os.heat.stack-1.0",
+ "updated_time": null,
+ "user": "5e5bf8027826429c96af157f68dc9072"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/senlin_versions_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/senlin_versions_resp.json
new file mode 100644
index 000000000..ed11f7456
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/senlin_versions_resp.json
@@ -0,0 +1,14 @@
+{
+ "versions": [
+ {
+ "status": "CURRENT",
+ "id": "v1.0",
+ "links": [
+ {
+ "href": "http://192.168.12.34:8778/v1/",
+ "rel": "self"
+ }
+ ]
+ }
+ ]
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/webhook_create.json b/api-ref/src/wadls/clustering-api/src/v1/samples/webhook_create.json
new file mode 100644
index 000000000..08d25d427
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/webhook_create.json
@@ -0,0 +1,16 @@
+{
+ "webhook": {
+ "action": "CLUSTER_RESIZE",
+ "credential": {
+ "password": "secretekey",
+ "username": "john"
+ },
+ "name": "cluster_shrink_1",
+ "obj_id": "cf99d754-3cdc-47f4-8a29-cd14f02f5436",
+ "obj_type": "cluster",
+ "params": {
+ "adjustment_number": "20",
+ "adjustment_type": "CHANGE_IN_PERCENTAGE"
+ }
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/webhook_create_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/webhook_create_resp.json
new file mode 100644
index 000000000..c6ac0fcbd
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/webhook_create_resp.json
@@ -0,0 +1,19 @@
+{
+ "webhook": {
+ "action": "CLUSTER_RESIZE",
+ "created_time": "2015-06-27T05:09:43",
+ "credential": "securely encrypted message here",
+ "deleted_time": null,
+ "domain": "Default",
+ "id": "573aa1ba-bf45-49fd-907d-6b5d6e6adfd3",
+ "name": "cluster_shrink",
+ "obj_id": "ed0a26da-55a4-49aa-afe3-290906376a4a",
+ "obj_type": "cluster",
+ "params": {
+ "adjustment_number": 20,
+ "adjustment_type": "CHANGE_IN_PERCENTAGE"
+ },
+ "project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
+ "user": "b4ad2d6e18cc2b9c48049f6dbe8a5b3c"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/webhook_get_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/webhook_get_resp.json
new file mode 100644
index 000000000..0082e25da
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/webhook_get_resp.json
@@ -0,0 +1,19 @@
+{
+ "webhook": {
+ "action": "CLUSTER_RESIZE",
+ "created_time": "2015-06-27T05:09",
+ "credential": "securely encrypted message here",
+ "deleted_time": null,
+ "domain": "Default",
+ "id": "573aa1ba-bf45-49fd-907d-6b5d6e6adfd3",
+ "name": "cluster_shrink",
+ "obj_id": "ed0a26da-55a4-49aa-afe3-290906376a4a",
+ "obj_type": "cluster",
+ "params": {
+ "adjustment_number": 20,
+ "adjustment_type": "CHANGE_IN_PERCENTAGE"
+ },
+ "project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
+ "user": "b4ad2d6e18cc2b9c48049f6dbe8a5b3c"
+ }
+}
diff --git a/api-ref/src/wadls/clustering-api/src/v1/samples/webhook_list_resp.json b/api-ref/src/wadls/clustering-api/src/v1/samples/webhook_list_resp.json
new file mode 100644
index 000000000..f1d30b024
--- /dev/null
+++ b/api-ref/src/wadls/clustering-api/src/v1/samples/webhook_list_resp.json
@@ -0,0 +1,21 @@
+{
+ "webhooks": [
+ {
+ "action": "CLUSTER_RESIZE",
+ "created_time": "2015-06-27T05:09:43.000000",
+ "credential": "securely encrypted message here",
+ "deleted_time": null,
+ "domain": "Default",
+ "id": "573aa1ba-bf45-49fd-907d-6b5d6e6adfd3",
+ "name": "cluster_shrink",
+ "obj_id": "ed0a26da-55a4-49aa-afe3-290906376a4a",
+ "obj_type": "cluster",
+ "params": {
+ "adjustment_number": 20,
+ "adjustment_type": "CHANGE_IN_PERCENTAGE"
+ },
+ "project": "6e18cc2bdbeb48a5b3cad2dc499f6804",
+ "user": "b4ad2d6e18cc2b9c48049f6dbe8a5b3c"
+ }
+ ]
+}