Skip to content

Instantly share code, notes, and snippets.

@maxlinc
Last active August 29, 2015 14:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maxlinc/543c237fc415a06678fc to your computer and use it in GitHub Desktop.
Save maxlinc/543c237fc415a06678fc to your computer and use it in GitHub Desktop.
Autoscale WADL (XML) vs Swagger (YAML)
<?xml version="1.0" encoding="utf-8"?>
<!--*******************************************************-->
<!-- Import Common XML Entities -->
<!-- -->
<!-- You can resolve the entites with xmllint -->
<!-- -->
<!-- xmllint -noent autoscale.wadl -->
<!--*******************************************************-->
<!-- need xmlns:identity to use &commonFaults; &postPutFaults; &listGroupFaults; &createGroupFaults;
&showGroupDetailsFaults; &deleteGroupFaults; &deleteGroupServerFaults; &getGroupStateFaults; &getGroupConfigurationFaults; &updateGroupConfigurationFaults;
&getLaunchConfigurationFaults; &updateLaunchConfigurationFaults; &listPoliciesFaults; &createPolicyFaults; &showPolicyDetailsFaults;
&updatePolicyFaults; &deletePolicyFaults; &executePolicyFaults; &executeWebhookFaults; &listWebhookFaults; &createWebhookFaults;
&createWebhookFaults; &showWebhookDetailsFaults; &updateWebhookFaults; &deleteWebhookFaults; in METHODS -->
<wadl:application xmlns="http://docbook.org/ns/docbook"
xmlns:wadl="http://wadl.dev.java.net/2009/02"
xmlns:rax="http://docs.rackspace.com/api"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- ======================================================================================= -->
<!-- Resources -->
<!-- ======================================================================================= -->
<resources xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
base="https://{region}.autoscale.api.rackspacecloud.com/"
xml:id="autoscale-v1">
<resource id="groups" path="v1.0/{tenantId}/groups">
<param name="tenantId"
type="xsd:string"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A subscriber to the auto
scaling service.</para>
</wadl:doc>
</param>
<param name="X-Auth-Token"
style="header"
type="xsd:string"
required="true">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A valid authentication
token.</para>
</wadl:doc>
</param>
<method name="POST"
rax:id="createGroup"
rax:roles="admin autoscale:admin autoscale:service-admin">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Create scaling group">
<para role="shortdesc">Creates a scaling group.</para>
<para>Creates a scaling group or a collection of servers
and load balancers that are managed by a scaling
policy. To describe the group, specify the scaling
group configuration, launch configuration, and
optional scaling policies in the request body in JSON
format.</para>
<para>If the request succeeds, the response body describes
the created group in JSON format. The response
includes an ID and links for the group.</para>
</wadl:doc>
<request>
<param style="plain"
name="launchConfiguration"
required="true"
type="object"
path="$.launchConfiguration">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A launch configuration.</para>
<para>A launch configuration defines what to do
when a new server is created, including
information about the server image, the flavor
of the server image, and the load balancer to
which to connect. You must set the
<code>type</code> parameter to <code>launch_server</code>.
</para>
</wadl:doc>
</param>
<param style="plain"
name="loadBalancers"
required="false"
type="array"
path="$.launchConfiguration.args.loadBalancers">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>One or more load balancers to which to add
new servers. All servers are added to these
load balancers with the IP addresses of their
ServiceNet network. All servers are enabled
and equally weighted. Any new servers that are
not connected to the ServiceNet network are
not added to any load
balancers.</para>
</wadl:doc>
</param>
<param style="plain"
name="port"
required="true"
type="integer"
path="$.launchConfiguration.args.loadBalancers.[*].port">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The port number of the service
(on the new servers) to use for this
particular load balancer. In most cases, this
port number is 80.</para>
</wadl:doc>
</param>
<param style="plain"
name="loadBalancerId"
required="true"
type="integer"
path="$.launchConfiguration.args.loadBalancers.[*].loadBalancerId">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The ID of the load balancer to
which to add new servers.</para>
</wadl:doc>
</param>
<param style="plain"
name="server"
required="true"
type="object"
path="$.launchConfiguration.args.server">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The attributes that Auto Scale
uses to create a new server. For more
information, see <link xlink:href="http://docs.rackspace.com/servers/api/v2/cs-devguide/content/CreateServers.html">Create Server</link>. The attributes that
you specify for the server entity apply to all
new servers in the scaling group, including
the server name.</para>
</wadl:doc>
</param>
<param style="plain"
name="flavorRef"
required="true"
type="string"
path="$.launchConfiguration.args.server.flavorRef">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The flavor of the server
image. Specifies the flavor ID for the
server.</para>
<para>A flavor is a resource
configuration for a server. For more
information, see Server Flavors<olink targetdoc="autoscale-devguide" targetptr="server-flavors">“Server
Flavors”</olink>
section.</para>
</wadl:doc>
</param>
<param style="plain"
name="imageRef"
required="true"
type="string"
path="$.launchConfiguration.args.server.imageRef">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The ID of the cloud server
image, after which new server images are
created.</para>
</wadl:doc>
</param>
<param style="plain"
name="personality"
required="false"
type="array"
path="$.launchConfiguration.args.server.personality">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The file path and/or the
content that you want to inject into a server
image. For more information, see the <link xlink:href="http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Personality-d1e2543.html">Server Personality</link> documentation
for Rackspace Cloud Servers.</para>
</wadl:doc>
</param>
<param style="plain"
name="path"
required="true"
type="string"
path="$.launchConfiguration.args.server.personality.[*].path">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The path to the file that
contains data that is injected into the file
system of the new cloud server
image.</para>
</wadl:doc>
</param>
<param style="plain"
name="contents"
required="true"
type="string"
path="$.launchConfiguration.args.server.personality.[*].contents">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The content items that is
injected into the file system of the new cloud
server image.</para>
</wadl:doc>
</param>
<param style="plain"
name="args"
required="true"
type="object"
path="$.launchConfiguration.args">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The item to be configured.
Must be "server" or "load balancer." Most
launch configurations have both a server and a
load balancer configured.</para>
</wadl:doc>
</param>
<param style="plain"
name="type"
required="true"
type="string"
path="$.launchConfiguration.type">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The type of the launch
configuration. For this release, this
parameter must be set to
<code>launch_server</code>.</para>
</wadl:doc>
</param>
<param style="plain"
name="groupConfiguration"
required="true"
type="object"
path="$.groupConfiguration">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The configuration options for
the scaling group. The scaling group
configuration specifies the basic elements of
the Auto Scale configuration. It manages how
many servers can participate in the scaling
group. It specifies information related to
load balancers.</para>
</wadl:doc>
</param>
<param style="plain"
name="maxEntities"
required="false"
type="object"
path="$.groupConfiguration.maxEntities">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The maximum number of
entities that are allowed in the scaling
group. If unconfigured, defaults to 1000. If this
value is provided it must be set to an integer
between 0 and 1000.</para>
</wadl:doc>
</param>
<param style="plain"
name="name"
required="true"
type="string"
path="$.groupConfiguration.name">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The name of the scaling group.
This name does not need to be
unique.</para>
</wadl:doc>
</param>
<param style="plain"
name="cooldown"
required="true"
type="integer"
path="$.groupConfiguration.cooldown">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The cool-down period before
more entities are added, in seconds. This
number must be an integer between 0 and 86400
(24 hrs).</para>
</wadl:doc>
</param>
<param style="plain"
name="minEntities"
required="true"
type="integer"
path="$.groupConfiguration.minEntities">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The minimum number of entities
in the scaling group. This number must be an
integer between 0 and 1000.</para>
</wadl:doc>
</param>
<param style="plain"
name="metadata"
required="false"
type="object"
path="$.groupConfiguration.metadata">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>Optional. Custom metadata for
your group configuration. You can use the
metadata parameter for customer automation,
but it does not change any functionality in
Auto Scale. There currently is no limitation
on depth.</para>
</wadl:doc>
</param>
<param style="plain"
name="scalingPolicies"
required="true"
type="array"
path="$.scalingPolicies">
<wadl:doc xmlns="http://docbook.org/ns/docbook">This
parameter group specifies configuration
information for your scaling policies. Scaling
policies specify how to modify the scaling group
and its behavior. You can specify multiple
policies to manage a scaling group. </wadl:doc>
</param>
<param style="plain"
name="array"
required="true"
type="array"
path="$.scalingPolicies.[*]">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>An array of scaling
policies.</para>
</wadl:doc>
</param>
<param style="plain"
name="name"
required="true"
type="string"
path="$.scalingPolicies.[*].name">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A name for the scaling policy.
This name must be unique for each scaling
policy.</para>
</wadl:doc>
</param>
<param style="plain"
name="args"
required="false"
type="object"
path="$.scalingPolicies.[*].args">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>Additional configuration
information for policies of type "schedule."
This parameter is not required for policies of
type "webhook." This parameter must be set to
either "at" or <code>cron</code>. Both "at"
and <code>cron</code> are mutually
exclusive.</para>
</wadl:doc>
</param>
<param style="plain"
name="cron"
required="false"
type="string"
path="$.scalingPolicies.[*].args.cron">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The recurring time when the
policy runs as a cron entry. For example, if
you set this parameter to <code>1 0 * *
*</code>, the policy runs at one minute
past midnight (00:01) every day of the month,
and every day of the week. For more
information about cron, see <link xlink:href="http://en.wikipedia.org/wiki/Cron">http://en.wikipedia.org/wiki/Cron</link>.</para>
</wadl:doc>
</param>
<param style="plain"
name="at"
required="false"
type="string"
path="$.scalingPolicies.[*].args.at">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The time when this policy
runs. This property is mutually exclusive with
the <code>cron</code> parameter. You must
specify seconds when using "at". For example,
<code>"at": "2013-12-05T03:12:00Z"</code>.
If seconds are not specified, a 400 error is
returned. Note, the policy is triggered within
a 10-second range of the time specified.</para>
</wadl:doc>
</param>
<param style="plain"
name="changePercent"
required="false"
type="number"
path="$.scalingPolicies.[*].changePercent">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The percent change to make in
the number of servers in the scaling group. If
this number is positive, the number of servers
increases by the given percentage. If this
parameter is set to a negative number, the
number of servers decreases by the given
percentage. The absolute change in the number
of servers is rounded to the nearest integer.
This means that if -X% of the current number
of servers translates to -0.5 or -0.25 or
-0.75 servers, the actual number of servers
that are shut down is 1. If X% of the current
number of servers translates to 1.2 or 1.5 or
1.7 servers, the actual number of servers that
are launched is 2.</para>
</wadl:doc>
</param>
<param style="plain"
name="cooldown"
required="true"
type="number"
path="$.scalingPolicies.[*].cooldown">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The cool-down period, in
seconds, before this particular scaling policy
can run again. The cool-down period does not
affect the global scaling group cool-down. The
minimum value for this parameter is 0 seconds,
the maximum value is 86400 seconds (24
hrs).</para>
</wadl:doc>
</param>
<param style="plain"
name="type"
required="true"
type="enum"
path="$.scalingPolicies.[*].type">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The type of policy that runs
for the current release, this value can be
either <code>webhook</code> for webhook-based
policies or <code>schedule</code> for
schedule-based policies.</para>
</wadl:doc>
</param>
<param style="plain"
name="change"
required="false"
type="integer"
path="$.scalingPolicies.[*].change">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The change to make in the
number of servers in the scaling group. This
parameter must be an integer. If the value is
a positive integer, the number of servers
increases. If the value is a negative integer,
the number of servers
decreases.</para>
</wadl:doc>
</param>
<param style="plain"
name="desiredCapacity"
required="false"
type="integer"
path="$.scalingPolicies.[*].desiredCapacity">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The desired server capacity of
the scaling the group; that is, how many
servers should be in the scaling group. This
value must be an absolute number, greater than or equal to zero.
For example, if this parameter is set to ten, executing the policy brings the number
of servers to ten. The minimum allowed value is
zero. Note that the configured group maxEntities and minEntities takes precedence
over this setting.</para>
</wadl:doc>
</param>
<representation mediaType="application/json">
<wadl:doc xml:lang="en">
<xsdxt:code>
<programlisting xmlns="http://docbook.org/ns/docbook" language="javascript">{
"launchConfiguration":{
"args":{
"loadBalancers":[
{
"port":80,
"loadBalancerId":237935
}
],
"server":{
"name":"autoscale_server",
"imageRef":"7cf5ffc3-7b20-46fd-98e4-fefa9908d7e8",
"flavorRef":"performance1-2",
"OS-DCF:diskConfig":"AUTO",
"networks":[
{
"uuid":"11111111-1111-1111-1111-111111111111"
},
{
"uuid":"00000000-0000-0000-0000-000000000000"
}
]
}
},
"type":"launch_server"
},
"groupConfiguration":{
"maxEntities":10,
"cooldown":360,
"name":"testscalinggroup",
"minEntities":0
},
"scalingPolicies":[
{
"cooldown":0,
"name":"scale up by 1",
"change":1,
"type":"schedule",
"args":{
"cron":"23 * * * *"
}
}
]
}</programlisting>
</xsdxt:code>
</wadl:doc>
<param style="plain"
name="launchConfiguration"
required="true"
type="object"
path="$.launchConfiguration">
<wadl:doc xmlns="http://docbook.org/ns/docbook">What to do when a new server is created. Its
configuration includes information about the
server image, the flavor of the server image,
and which load balancer to connect to. The
<code>type</code> parameter for <code>launchConfiguration</code> must be
set to <code>launch_server</code>.</wadl:doc>
</param>
<param style="plain"
name="loadBalancers"
required="false"
type="array"
path="$.launchConfiguration.args.loadBalancers">
<wadl:doc xmlns="http://docbook.org/ns/docbook">Details about one or more load balancers to
add new servers to. All servers are added to
these load balancers with the IP addresses of
their ServiceNet network. All servers are
enabled and equally weighted. Any new servers
that are not connected to the ServiceNet
network are not added to any load
balancers.</wadl:doc>
</param>
<param style="plain"
name="port"
required="true"
type="integer"
path="$.launchConfiguration.args.loadBalancers.[*].port">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The port number of the service (on the new
servers) to use for this particular load
balancer. In most cases, this port number is
80.</wadl:doc>
</param>
<param style="plain"
name="loadBalancerId"
required="true"
type="integer"
path="$.launchConfiguration.args.loadBalancers.[*].loadBalancerId">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The ID of the load balancer to which new
servers are added.</wadl:doc>
</param>
<param style="plain"
name="server"
required="true"
type="object"
path="$.launchConfiguration.args.server">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The attributes that Auto Scale uses to create
a server. For more information, see: <link xlink:href="/servers/api/v2/cs-devguide/content/CreateServers.html">Create
Servers</link> in the cloud servers
developer's guide. The attributes that are
specified for the <code>server</code> parameter are applied
to all new servers in the scaling group. The
specified server name is used as the base name
for all created servers.</wadl:doc>
</param>
<param style="plain"
name="flavorRef"
required="true"
type="string"
path="$.launchConfiguration.args.server.flavorRef">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The flavor ID for the server. A flavor is a
resource configuration for a server. For more
information on available flavors, see the
<olink targetdoc="autoscale-devguide" targetptr="server-flavors">“Server
Flavors”</olink>
section.</wadl:doc>
</param>
<param style="plain"
name="imageRef"
required="true"
type="string"
path="$.launchConfiguration.args.server.imageRef">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The ID of the cloud server image, after which
new server images are created. </wadl:doc>
</param>
<param style="plain"
name="personality"
required="false"
type="array"
path="$.launchConfiguration.args.server.personality">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The file path and/or the content that you
want to inject into a server image. For more
information, see the <link xlink:href="http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Personality-d1e2543.html">Server Personality</link> documentation
for Rackspace Cloud Servers </wadl:doc>
</param>
<param style="plain"
name="path"
required="true"
type="string"
path="$.launchConfiguration.args.server.personality.[*].path">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The path to the file that contains data that
is injected into the file system of the new
cloud server image.</wadl:doc>
</param>
<param style="plain"
name="contents"
required="true"
type="string"
path="$.launchConfiguration.args.server.personality.[*].contents">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The content items that are injected into the
file system of the new cloud server image.
</wadl:doc>
</param>
<param style="plain"
name="args"
required="true"
type="object"
path="$.launchConfiguration.args">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The item to be configured. Must be
<code>server</code> or
<code>loadbalancer</code>. Most launch
configurations have both a server and a
loadbalancer.</wadl:doc>
</param>
<param style="plain"
name="type"
required="true"
type="string"
path="$.launchConfiguration.type">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The type of the launch configuration.
Currently, this parameter must be set to
<code>launch_server</code>.</wadl:doc>
</param>
<param style="plain"
name="groupConfiguration"
required="true"
type="object"
path="$.groupConfiguration">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The configuration options for the scaling
group that manages how many servers and load
balancers are in the scaling group. </wadl:doc>
</param>
<param style="plain"
name="maxEntities"
required="false"
type="object"
path="$.groupConfiguration.maxEntities">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The maximum number of entities that are
allowed in the scaling group. If unconfigured, defaults to 1000.
If this parameter is provided it must be
set to an integer between 0 and 1000. </wadl:doc>
</param>
<param style="plain"
name="name"
required="true"
type="string"
path="$.groupConfiguration.name">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The name of the scaling group, does not need
to be unique.</wadl:doc>
</param>
<param style="plain"
name="cooldown"
required="true"
type="integer"
path="$.groupConfiguration.cooldown">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The period of time, in seconds, that must
pass before any scaling can occur after the
previous scaling. Must be an integer between 0
and 86400 (24 hrs). </wadl:doc>
</param>
<param style="plain"
name="minEntities"
required="true"
type="integer"
path="$.groupConfiguration.minEntities">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The minimum number of entities in the scaling
group. This number must be an integer between
0 and 1000. </wadl:doc>
</param>
<param style="plain"
name="metadata"
required="false"
type="object"
path="$.groupConfiguration.metadata">
<wadl:doc xmlns="http://docbook.org/ns/docbook">This optional parameter specifies custom
metadata for your group configuration. You can
use the metadata parameter for customer
automation, but it does not change any
functionality in Auto Scale. There currently
is no limitation on depth.</wadl:doc>
</param>
<param style="plain"
name="scalingPolicies"
required="true"
type="array"
path="$.scalingPolicies">
<wadl:doc xmlns="http://docbook.org/ns/docbook">Configuration information for your scaling
policies specifying how to modify the scaling
group and when. You can specify multiple
policies to manage a scaling group. </wadl:doc>
</param>
<param style="plain"
name="array"
required="true"
type="array"
path="$.scalingPolicies.[*]">
<wadl:doc xmlns="http://docbook.org/ns/docbook">An
array of scaling policies.</wadl:doc>
</param>
<param style="plain"
name="name"
required="true"
type="string"
path="$.scalingPolicies.[*].name">
<wadl:doc xmlns="http://docbook.org/ns/docbook">A
name for the scaling policy. Must be unique
for each scaling policy.</wadl:doc>
</param>
<param style="plain"
name="args"
required="false"
type="object"
path="$.scalingPolicies.[*].args">
<wadl:doc xmlns="http://docbook.org/ns/docbook">Configuration information for policies of
type <code>schedule</code>. Must be
either <code>at</code> or
<code>cron</code>, which are mutually
exclusive. Not required for policies of type
<code>webhook</code>. </wadl:doc>
</param>
<param style="plain"
name="cron"
required="false"
type="string"
path="$.scalingPolicies.[*].args.cron">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The time when the policy is executed, as a
cron entry. For example, if this is parameter
is set to <code>1 0 * * *</code>, the
policy runs at one minute past midnight
(00:01) every day of the month, and every day
of the week. For more information about cron,
read:
http://en.wikipedia.org/wiki/Cron</wadl:doc>
</param>
<param style="plain"
name="at"
required="false"
type="string"
path="$.scalingPolicies.[*].args.at">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">The time when this policy will
be executed. The time must be formatted
according to this service's custom <link xlink:href=" /cas/api/v1.0/autoscale-devguide/content/datetimeformat.html">Date
and Time format</link>, with seconds,
otherwise a 400 error may be returned. The
policy will be triggered within a 10-second
range of the time specified, so if you set the
<code>at</code> time to
<code>2013-05-19T08:07:08Z</code>, it
will be triggered anytime between 08:07:08 to
08:07:18. This property is mutually exclusive
with the <code>cron</code>
parameter.</wadl:doc>
</param>
<param style="plain"
name="changePercent"
required="false"
type="number"
path="$.scalingPolicies.[*].changePercent">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The percent change to make in the number of
servers in the scaling group. If this number
is positive, the number of servers
increases by the given percentage. If this
parameter is set to a negative number, the
number of servers decreases by the given
percentage. The absolute change in the number
of servers is rounded to the nearest
integer. This means that if -X% of the current
number of servers translates to -0.5 or -0.25
or -0.75 servers, the actual number of servers
that are shut down is 1. If X% of the
current number of servers translates to 1.2 or
1.5 or 1.7 servers, the actual number of
servers that are launched is 2</wadl:doc>
</param>
<param style="plain"
name="cooldown"
required="true"
type="number"
path="$.scalingPolicies.[*].cooldown">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The cooldown period, in seconds, before this
particular scaling policy can be executed
again. The cooldown period does not affect the
global scaling group cooldown. The minimum
value for this parameter is 0 seconds, the
maximum value is 86400 seconds (24 hrs).
</wadl:doc>
</param>
<param style="plain"
name="type"
required="true"
type="enum"
path="$.scalingPolicies.[*].type">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The type of policy that runs for
the current release. This value can be either
"webhook" for webhook-based policies or
"schedule" for schedule-based
policies.</wadl:doc>
</param>
<param style="plain"
name="change"
required="false"
type="integer"
path="$.scalingPolicies.[*].change">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The change to make in the number of servers
in the scaling group. This parameter must be
an integer. If the value is a positive
integer, the number of servers increases.
If the value is a negative integer, the number
of servers decreases.</wadl:doc>
</param>
<param style="plain"
name="desiredCapacity"
required="false"
type="integer"
path="$.scalingPolicies.[*].desiredCapacity">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The desired server capacity of the scaling
the group, i.e. how many servers there should
be in the scaling group. This value must be an
absolute number. For example, if this
parameter is set to 10 and the executing
policy with this will bring the number of
servers to 10. The minimum allowed value is 0.
</wadl:doc>
</param>
</representation>
</request>
<response status="201">
<doc title="Created">The scaling group has been created.</doc>
<param name="location"
style="header"
required="true"
type="xsd:anyURI">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>Creates an auto scaling
endpoint.</para>
</wadl:doc>
</param>
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<xsdxt:code>
<programlisting language="javascript">{
"group":{
"groupConfiguration":{
"cooldown":360,
"maxEntities":10,
"metadata":{
},
"minEntities":0,
"name":"testscalinggroup"
},
"id":"48692442-2dbe-4311-955e-bc29f02ae311",
"launchConfiguration":{
"args":{
"loadBalancers":[
{
"loadBalancerId":237935,
"port":80
}
],
"server":{
"OS-DCF:diskConfig":"AUTO",
"flavorRef":"performance1-2",
"imageRef":"7cf5ffc3-7b20-46fd-98e4-fefa9908d7e8",
"name":"autoscale_server",
"networks":[
{
"uuid":"11111111-1111-1111-1111-111111111111"
},
{
"uuid":"00000000-0000-0000-0000-000000000000"
}
]
}
},
"type":"launch_server"
},
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/829409/groups/48692442-2dbe-4311-955e-bc29f02ae311/",
"rel":"self"
}
],
"scalingPolicies":[
{
"args":{
"cron":"23 * * * *"
},
"change":1,
"cooldown":0,
"id":"9fa63149-c93d-4116-8069-74d68f48fadc",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/829409/groups/48692442-2dbe-4311-955e-bc29f02ae311/policies/9fa63149-c93d-4116-8069-74d68f48fadc/",
"rel":"self"
}
],
"name":"scale up by 1",
"type":"schedule"
}
],
"scalingPolicies_links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/829409/groups/48692442-2dbe-4311-955e-bc29f02ae311/policies/",
"rel":"policies"
}
],
"state":{
"active":[
],
"activeCapacity":0,
"desiredCapacity":0,
"name":"testscalinggroup",
"paused":false,
"pendingCapacity":0
}
}
}</programlisting>
</xsdxt:code>
</wadl:doc>
</representation>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidJsonError">The request is refused because the body was invalid JSON".</doc>
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">The request body had valid JSON but with unexpected properties or values in it. Please note that there can be many combinations that cause this error. We will try to list the most common mistakes users are likely to make in a particular request. ".</doc>
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<doc title="UnsupportedMediaType">The request is refused because the content type of the request is not "application/json".</doc>
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidMinEntities">The "minEntities" value is greater than the "maxEntities" value.</doc>
<representation mediaType="application/xml" element="identity:badMinEntities"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidLaunchConfiguration">The "imageRef" value is invalid or not active.</doc>
<representation mediaType="application/xml" element="identity:badLaunchConfigImageRef"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidLaunchConfiguration">The "flavorRef" value is invalid.</doc>
<representation mediaType="application/xml" element="identity:badLaunchConfigFlavorRef"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidLaunchConfiguration">The base64 encoding for the "path" argument in the "personality" parameter is invalid.</doc>
<representation mediaType="application/xml"
element="identity:badLaunchConfigPersonalityEncoding"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidLaunchConfiguration">The number of files in the "personality" parameter exceeds maximum limit.</doc>
<representation mediaType="application/xml"
element="identity:badLaunchConfigPersonalityFiles"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidLaunchConfiguration">The content of the files in the "personality" parameter exceeds the maximum size limit allowed.</doc>
<representation mediaType="application/xml"
element="identity:badLaunchConfigPersonalityFilesContent"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidLaunchConfiguration">The load balancer ID provided is invalid.</doc>
<representation mediaType="application/xml" element="identity:badLaunchConfigLb"/>
<representation mediaType="application/json"/>
</response>
<response status="422">
<doc title="ScalingGroupOverLimitsError">The user has reached their quota for scaling groups, currently 100.</doc>
<representation mediaType="application/xml" element="identity:overGroupLimit"/>
<representation mediaType="application/json"/>
</response>
</method>
<method name="GET"
rax:roles="observer autoscale:observer admin autoscale:admin autoscale:service-admin"
rax:id="listGroups">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
title="List scaling groups"
xml:lang="EN">
<para role="shortdesc">Lists the scaling groups that are
available for a specified tenant.</para>
</wadl:doc>
<response status="200">
<doc title="OK">The request succeeded and the response
contains the list of scaling groups.</doc>
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<!--<xsdxt:code
href="../docbkx/samples/resGetGroups-json-http.txt"/>-->
<xsdxt:code>
<programlisting language="javascript">{
"groups":[
{
"id":"e41380ae-173c-4b40-848a-25c16d7fa83d",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/e41380ae-173c-4b40-848a-25c16d7fa83d/",
"rel":"self"
}
],
"state":{
"active":[
],
"activeCapacity":0,
"desiredCapacity":0,
"paused":false,
"pendingCapacity":0,
"name":"testscalinggroup198547"
}
},
{
"id":"f82bb000-f451-40c8-9dc3-6919097d2f7e",
"state":{
"active":[
],
"activeCapacity":0,
"desiredCapacity":0,
"paused":false,
"pendingCapacity":0,
"name":"testscalinggroup198547"
},
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/f82bb000-f451-40c8-9dc3-6919097d2f7e/",
"rel":"self"
}
]
}
],
"groups_links":[
]
}</programlisting>
</xsdxt:code>
</wadl:doc>
</representation>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidQueryArgument">The "limit" query argument is not a valid integer.</doc>
<representation mediaType="application/xml" element="identity:badQuery"/>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource id="groupId" path="v1.0/{tenantId}/groups/{groupId}">
<param name="tenantId"
type="xsd:string"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A subscriber to the auto
scaling service.</para>
</wadl:doc>
</param>
<param name="X-Auth-Token"
style="header"
type="xsd:string"
required="true">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A valid authentication
token.</para>
</wadl:doc>
</param>
<param name="groupId"
type="osapi:UUID"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A scaling group.</para>
</wadl:doc>
</param>
<method name="GET"
rax:roles="observer autoscale:observer admin autoscale:admin autoscale:service-admin"
rax:id="showGroupManifest">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Show scaling group details">
<para role="shortdesc">Shows configuration details for a
specified scaling group.</para>
<para>Details include the launch configuration and the
scaling policies for the specified scaling group
configuration.</para>
<para>The details appear in the response body in JSON
format.</para>
</wadl:doc>
<response status="200">
<doc title="OK">The request succeeded and the response
contains details about the specified scaling group.</doc>
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<!-- <xsdxt:code
href="../docbkx/samples/resGetGroupManifest-json-http.txt"/>-->
<xsdxt:code>
<programlisting language="javascript">{
"group":{
"groupConfiguration":{
"cooldown":60,
"maxEntities":0,
"metadata":{
},
"minEntities":0,
"name":"smallest possible launch config group"
},
"state":{
"active":[
],
"activeCapacity":0,
"desiredCapacity":0,
"paused":false,
"pendingCapacity":0,
"name":"smallest possible launch config group"
},
"id":"605e13f6-1452-4588-b5da-ac6bb468c5bf",
"launchConfiguration":{
"args":{
"server":{
}
},
"type":"launch_server"
},
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/",
"rel":"self"
}
],
"scalingPolicies":[
{
"changePercent":-5.5,
"cooldown":1800,
"id":"eb0fe1bf-3428-4f34-afd9-a5ac36f60511",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/eb0fe1bf-3428-4f34-afd9-a5ac36f60511/",
"rel":"self"
}
],
"name":"scale down by 5.5 percent",
"type":"webhook"
}
]
}
}</programlisting>
</xsdxt:code>
</wadl:doc>
</representation>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidQueryArgument">The "limit" query argument value is not a valid integer.</doc>
<representation mediaType="application/xml" element="identity:badLimitArg"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method name="GET"
rax:roles="observer autoscale:observer admin autoscale:admin autoscale:service-admin"
rax:id="showGroupManifestWebhook">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Show scaling group details including webhooks">
<para role="shortdesc">Shows configuration details for a
specified scaling group and its associated webhooks.</para>
<para>Details include the launch configuration, the
scaling policies, and the policies' webhooks, for the specified scaling group
configuration.</para>
<para>The details appear in the response body in JSON
format.</para>
<para>
<note>
<para>The <code>?webhooks=true</code> parameter is required for this method.</para>
</note>
</para>
</wadl:doc>
<request>
<param name="webhooks"
style="query"
required="true"
default="true"
type="xsd:boolean">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>Set <code>?webhooks=true</code>
to display webhook configuration details in the results.</para>
</wadl:doc>
</param>
</request>
<response status="200">
<doc title="OK">The request succeeded and the response
contains details about the specified scaling group, including associated webhooks.</doc>
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<!-- <xsdxt:code
href="../docbkx/samples/resGetGroupManifest-json-http.txt"/>-->
<xsdxt:code>
<programlisting language="javascript">{
"group": {
"groupConfiguration": {
"cooldown": 60,
"maxEntities": 0,
"metadata": {},
"minEntities": 0,
"name": "smallest possible launch config group"
},
"state": {
"active": [],
"activeCapacity": 0,
"desiredCapacity": 0,
"paused": false,
"pendingCapacity": 0
},
"id": "605e13f6-1452-4588-b5da-ac6bb468c5bf",
"launchConfiguration": {
"args": {
"server": {}
},
"type": "launch_server"
},
"links": [
{
"href": "https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/",
"rel": "self"
}
],
"scalingPolicies": [
{
"changePercent": -5.5,
"cooldown": 1800,
"id": "eb0fe1bf-3428-4f34-afd9-a5ac36f60511",
"links": [
{
"href": "https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/eb0fe1bf-3428-4f34-afd9-a5ac36f60511/",
"rel": "self"
}
],
"name": "scale down by 5.5 percent",
"type": "webhook",
"webhooks": [
{
"id":"05f7d9d9-b9d0-40ac-8d3b-610197775c7f",
"name": "automatically generated",
"metadata": {},
"links": [
{
"href": "https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/eb0fe1bf-3428-4f34-afd9-a5ac36f60511/webhooks/05f7d9d9-b9d0-40ac-8d3b-610197775c7f/",
"rel": "self"
},
{
"href": "https://dfw.autoscale.api.rackspacecloud.com/v1.0/execute/1/392be67bacfd1adf54e4f9fbc2b40873b9c7c3128315647f46d94c4b5c56b4d6/",
"rel": "capability"
}
]
}
],
"webhooks_links": [
{
"href": "https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/eb0fe1bf-3428-4f34-afd9-a5ac36f60511/webhooks/",
"rel": "webhooks"
}
]
}
],
"scalingPolicies_links": [
{
"href": "https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/",
"rel": "policies"
}
]
}
}
</programlisting>
</xsdxt:code>
</wadl:doc>
</representation>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidQueryArgument">The "limit" query argument value is not a valid integer.</doc>
<representation mediaType="application/xml" element="identity:badLimitArg"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method name="DELETE"
rax:id="deleteGroup"
rax:roles="admin autoscale:admin autoscale:service-admin">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Delete scaling group">
<para role="shortdesc">Deletes a specified scaling
group.</para>
<para>The scaling group must be empty. An empty group
contains no entities. If deletion is successful, no
response body is returned. If the group contains
pending or active entities, deletion fails and a 409
error message is returned. If there are pending or
active servers in the scaling group, pass
<code>force=true</code> to force delete the group.
Passing <code>force=true</code> immediately deletes
all active servers in the group. Pending servers are
deleted when they build and become active.</para>
</wadl:doc>
<response status="204">
<doc title="Success But No Content">The delete scaling group request succeeded.</doc>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidQueryArgument">The "force" query argument value is invalid. It must be "true", any other value is invalid. If there are servers in the group, only "true" succeeds. If there are no servers in the group, "true" and no value given succeed.</doc>
<representation mediaType="application/xml" element="identity:badForceArg"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="GroupNotEmptyError">The scaling group cannot be deleted because it has servers in it. Use the "force=true" query argument to force delete the group.</doc>
<representation mediaType="application/xml" element="identity:groupNotEmpty"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource id="server" path="v1.0/{tenantId}/groups/{groupId}/servers/{serverId}">
<param name="tenantId"
type="xsd:string"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A subscriber to the auto
scaling service.</para>
</wadl:doc>
</param>
<param name="X-Auth-Token"
style="header"
type="xsd:string"
required="true">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A valid authentication
token.</para>
</wadl:doc>
</param>
<param name="groupId"
type="osapi:UUID"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A scaling group.</para>
</wadl:doc>
</param>
<param name="serverId"
type="osapi:UUID"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The Nova server ID for the server you want to delete from the scaling group.</para>
</wadl:doc>
</param>
<method name="DELETE"
rax:id="deleteGroupServer"
rax:roles="admin autoscale:admin autoscale:service-admin">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Delete server from scaling group">
<para role="shortdesc">Deletes and replaces a specified server in a scaling group.</para>
<para>Delete and replace a server in a scaling group with a new server in that scaling group. By default, the specified
server is deleted and replaced. The replacement server will have the current launchConfiguration settings and a different
IP address. </para>
<para>
<note>
<para>The <code>replace={true/false}</code> parameter is optional for this method. Default is <code>replace=true</code>, even if not passed.
Use <code>replace=false</code> if you do not want the deleted server replaced. </para>
</note>
</para>
<para>This endpoint can be useful if you have deleted a server through a nova command or another method that
Auto Scale does not recognize. In those cases, even though the server is deleted, Auto Scale calculates that
the server still exists. You can use this endpoint to rectify this and bring Auto Scale in sync with the
the out-of-band delete server operation.</para>
<para>
<note>
<para>Deleting and replacing the server takes some time, how long depends mainly on the server image and complexity of the launchConfiguration settings
of the replacement server. </para>
</note>
</para>
</wadl:doc>
<request>
<param name="serverId"
style="plain"
required="true"
default="false"
type="xsd:string">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>Set the ID of the server you want to delete.</para>
</wadl:doc>
</param>
<param name="replace"
style="query"
required="false"
default="true"
type="xsd:boolean">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>Defaults to <code>replace=true</code> if not passed. Set <code>replace=false</code> to delete the server without replacing it.</para>
</wadl:doc>
</param>
</request>
<response status="202">
<doc title="Accepted">The request succeeded. No response body is returned.</doc>
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
</wadl:doc>
</representation>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="CannotDeleteServerBelowMinError">The server cannot be deleted and not replaced because doing so would violate the configured "minEntities." Note that this error could only occur if the "replace=false" argument is used.</doc>
<representation mediaType="application/xml" element="identity:groupNotEmpty"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="ServerNotFoundError">The specified server was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource id="state" path="v1.0/{tenantId}/groups/{groupId}/state">
<param name="tenantId"
type="xsd:string"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A subscriber to the auto
scaling service.</para>
</wadl:doc>
</param>
<param name="X-Auth-Token"
style="header"
type="xsd:string"
required="true">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A valid authentication
token.</para>
</wadl:doc>
</param>
<param name="groupId"
type="osapi:UUID"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A scaling group.</para>
</wadl:doc>
</param>
<method name="GET"
rax:roles="observer autoscale:observer admin autoscale:admin autoscale:service-admin"
rax:id="getGroupState">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Get scaling group state">
<para role="shortdesc">Gets the current state of a scaling
group.</para>
<para>The GroupState object consists of the following
properties:</para>
<itemizedlist>
<listitem>
<para>paused. Specifies whether execution of
scaling policies for the group is currently
suspended. If this value is set to true, the
group will not scale up or down. All policy
execution calls will be ignored while this
value is set to true..</para>
</listitem>
<listitem>
<para>pendingCapacity. Integer. Specifies
the number of servers that are in a "building"
state..</para>
</listitem>
<listitem>
<para>name. Specifies the name of the
group.</para>
</listitem>
<listitem>
<para>Active. Specifies an array of active
servers in the group. This array includes the
serverID, as well as other
data.</para>
</listitem>
<listitem>
<para>activeCapacity. Integer. Specifies the
number of active servers in the
group.</para>
</listitem>
<listitem>
<para>desiredCapacity. Integer. Specifies
the sum of all servers that are in
<code>Active</code> and
<code>Pending</code>
state.</para>
</listitem>
<listitem>
<para>A request to create multiple policies,
followed by the matching
response.</para>
</listitem>
</itemizedlist>
<para>Gets the current state of the specified scaling
group. It describes the state of the group in terms of
its current set of active entities, the number of
pending entities, and the desired number of entities.
The description is returned in the response body in
JSON format.</para>
</wadl:doc>
<response status="200">
<doc title="OK">The request succeeded and the response
describes the state of the specified scaling group.</doc>
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<!--<xsdxt:code
href="../docbkx/samples/resGetGroupState-json-http.txt"/>-->
<xsdxt:code>
<programlisting language="javascript">{
"group":{
"paused":false,
"pendingCapacity":0,
"name":"testscalinggroup198547",
"active":[
],
"activeCapacity":0,
"desiredCapacity":0
}
}</programlisting>
</xsdxt:code>
</wadl:doc>
</representation>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource id="config" path="v1.0/{tenantId}/groups/{groupId}/config">
<param name="tenantId"
type="xsd:string"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A subscriber to the auto
scaling service.</para>
</wadl:doc>
</param>
<param name="X-Auth-Token"
style="header"
type="xsd:string"
required="true">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A valid authentication
token.</para>
</wadl:doc>
</param>
<param name="groupId"
type="osapi:UUID"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A scaling group.</para>
</wadl:doc>
</param>
<method name="GET"
rax:roles="observer autoscale:observer admin autoscale:admin autoscale:service-admin"
rax:id="getGroupConfig">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Show scaling group configuration">
<para role="shortdesc">Shows the configuration for a
scaling group.</para>
<para>Shows the configuration for a specified scaling
group, including the maximum and minimum number
of entities, the global cooldown time, and other metadata. The configuration is
returned in the response body in JSON format.</para>
</wadl:doc>
<response status="200">
<doc title="OK">The request succeeded and the response
contains configuration details for the specified scaling group.</doc>
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<!-- <xsdxt:code
href="../docbkx/samples/resGetGroupConfig-json-http.txt"/>-->
<xsdxt:code>
<programlisting language="javascript">{
"groupConfiguration":{
"cooldown":60,
"maxEntities":0,
"metadata":{
},
"minEntities":0,
"name":"smallest possible group"
}
}</programlisting>
</xsdxt:code>
</wadl:doc>
</representation>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method name="PUT"
rax:id="putGroupConfig"
rax:roles="admin autoscale:admin autoscale:service-admin">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Update scaling group configuration">
<para role="shortdesc">Updates the configuration for the
scaling group.</para>
<para>Updates the configuration of an existing scaling
group. To change the configuration, specify the new
configuration in the request body in JSON format.
Configuration elements include the minimum number of
entities, the maximum number of entities, the global
cooldown time, and other metadata. If the update is
successful, no response body is returned.</para>
<note>
<para>All Rackspace Auto Scale update (<methodname>PUT</methodname>) operations completely replace the configuration being updated. Empty values (for example,
<varname>{ }</varname>)in the update
are accepted and overwrite previously specified parameters. New parameters can be specified. All create (<methodname>POST</methodname>) parameters, even optional ones,
are required for the update operation. </para>
</note>
</wadl:doc>
<request>
<param style="plain"
name="maxEntities"
required="true"
type="object"
path="$.maxEntities">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The maximum number of
entities that are allowed in the scaling
group. If left unconfigured, defaults to 1000. If this
value is provided it must be set to an integer
between 0 and 1000.</para>
</wadl:doc>
</param>
<param style="plain"
name="cooldown"
required="true"
type="integer"
path="$.cooldown">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The cooldown period, in seconds, before
any additional changes can happen. This
number must be an integer between 0 and 86400
(24 hrs).</para>
</wadl:doc>
</param>
<param style="plain"
name="name"
required="true"
type="string"
path="$.name">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The name of the scaling group.
This name does not have to be unique.</para>
</wadl:doc>
</param>
<param style="plain"
name="minEntities"
required="true"
type="integer"
path="$.minEntities">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The minimum number of entities
in the scaling group. This number must be an
integer between 0 and 1000.</para>
</wadl:doc>
</param>
<param style="plain"
name="metadata"
required="true"
type="object"
path="$.metadata">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>Optional. Custom metadata for
your group configuration. You can use this parameter for custom automation,
but it does not change any functionality in
Auto Scale. There currently is no limitation
on depth.</para>
</wadl:doc>
</param>
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<xsdxt:code>
<programlisting language="javascript">{
"name":"workers",
"cooldown":60,
"minEntities":5,
"maxEntities":100,
"metadata":{
"firstkey":"this is a string",
"secondkey":"1"
}
}</programlisting>
</xsdxt:code>
</wadl:doc>
<param style="plain"
name="maxEntities"
required="true"
type="object"
path="$.maxEntities">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The maximum number of entities that are
allowed in the scaling group. If left unconfigured, defaults to 1000.
If this value is provided it must be set
to an integer between 0 and 1000. </wadl:doc>
</param>
<param style="plain"
name="cooldown"
required="true"
type="integer"
path="$.cooldown">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The cooldown period, in seconds, before more
changes can happen. This number must be an
integer between 0 and 86400 (24 hrs). </wadl:doc>
</param>
<param style="plain"
name="name"
required="true"
type="string"
path="$.name">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The name of the scaling group. This name does
not have to be unique.</wadl:doc>
</param>
<param style="plain"
name="minEntities"
required="true"
type="integer"
path="$.minEntities">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The minimum number of entities in the scaling
group. This number must be an integer between
0 and 1000. </wadl:doc>
</param>
<param style="plain"
name="metadata"
required="true"
type="object"
path="$.metadata">
<wadl:doc xmlns="http://docbook.org/ns/docbook">This optional parameter specifies custom
metadata for your group configuration. You can
use the metadata parameter for custom
automation, but it does not change any
functionality in Auto Scale. There currently
is no limitation on depth.</wadl:doc>
</param>
</representation>
</request>
<response status="204">
<doc title="Success But No Content">The update group configuration request succeeded.</doc>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidJsonError">The request is refused because the body was invalid JSON".</doc>
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">The request body had valid JSON but with unexpected properties or values in it. Please note that there can be many combinations that cause this error. We will try to list the most common mistakes users are likely to make in a particular request. ".</doc>
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<doc title="UnsupportedMediaType">The request is refused because the content type of the request is not "application/json".</doc>
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidMinEntities">The minEntities value is greater than the maxEntities value.</doc>
<representation mediaType="application/xml" element="identity:invalidMinEntities"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource id="launch" path="v1.0/{tenantId}/groups/{groupId}/launch">
<param name="tenantId"
type="xsd:string"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A subscriber to the auto
scaling service.</para>
</wadl:doc>
</param>
<param name="X-Auth-Token"
style="header"
type="xsd:string"
required="true">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A valid authentication
token.</para>
</wadl:doc>
</param>
<param name="groupId"
type="osapi:UUID"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A scaling group.</para>
</wadl:doc>
</param>
<method name="GET"
rax:roles="observer autoscale:observer admin autoscale:admin autoscale:service-admin"
rax:id="getLaunchConfig">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Show launch configuration">
<para role="shortdesc">Shows launch configuration details
for a specified scaling group.</para>
<para>The details include from
which image to create a server, which load balancers
to join the server to, which networks to add the
server to, and other metadata.</para>
<para>The details appear in the response body in JSON
format.</para>
</wadl:doc>
<response status="200">
<doc title="OK">The request succeeded and the response
contains launch configuration details for the specified scaling group.</doc>
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<xsdxt:code>
<programlisting language="javascript">{
"launchConfiguration":{
"type":"launch_server",
"args":{
"server":{
"flavorRef":"performance1-4",
"name":"webhead",
"imageRef":"0d589460-f177-4b0f-81c1-8ab8903ac7d8",
"OS-DCF:diskConfig":"AUTO",
"metadata":{
"mykey":"myvalue"
},
"personality":[
],
"networks":[
{
"uuid":"11111111-1111-1111-1111-111111111111"
}
]
},
"loadBalancers":[
]
}
}
}</programlisting>
</xsdxt:code>
</wadl:doc>
</representation>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method name="PUT"
rax:id="putLaunchConfig"
rax:roles="admin autoscale:admin autoscale:service-admin">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Update launch configuration">
<para role="shortdesc">Updates an existing launch
configuration for the specified scaling group.</para>
<para>To change the launch configuration, specify the new
configuration in the request body in JSON format.
Configuration elements include from which image to create a server, which load
balancers to join the server to, which networks to add
the server to, and other metadata. If the update is
successful, no response body is returned.</para>
<note>
<para>All Rackspace Auto Scale update (<methodname>PUT</methodname>) operations completely replace the configuration being updated. Empty values (for example,
<varname>{ }</varname>)in the update
are accepted and overwrite previously specified parameters. New parameters can be specified. All create (<methodname>POST</methodname>) parameters, even optional ones,
are required for the update operation. </para>
</note>
</wadl:doc>
<request>
<param style="plain"
name="args"
required="false"
type="object"
path="$.args">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The item to be configured.
Must be <code>server</code> or <code>loadbalancer</code>. Most
launch configurations have both a server and a
loadbalancer configured.</para>
</wadl:doc>
</param>
<param style="plain"
name="loadBalancers"
required="false"
type="array"
path="$.args.loadBalancers">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>One or more load balancers to
which to add servers.</para>
<para>All servers are added to these load
balancers with the IP addresses of their
ServiceNet network. All servers are enabled
and equally weighted. Any new servers that are
not connected to the ServiceNet network are
not added to any load
balancers.</para>
</wadl:doc>
</param>
<param style="plain"
name="port"
required="true"
type="integer"
path="$.args.loadBalancers.[*].port">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The port number of the service
(on the new servers) to use for this
particular load balancer. In most cases, this
port number is 80.</para>
</wadl:doc>
</param>
<param style="plain"
name="loadBalancerId"
required="true"
type="integer"
path="$.args.loadBalancers.[*].loadBalancerId">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The ID of the load balancer to
which new servers will be
added.</para>
</wadl:doc>
</param>
<param style="plain"
name="server"
required="true"
type="object"
path="$.args.server">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The attributes that Auto Scale
uses to create a new server. For more
information, see <link xlink:href="http://docs.rackspace.com/servers/api/v2/cs-devguide/content/CreateServers.html">Create Server</link>. The attributes that
are specified for the server entity will apply
to all new servers in the scaling group,
including the server name.</para>
</wadl:doc>
</param>
<param style="plain"
name="flavorRef"
required="true"
type="string"
path="$.args.server.flavorRef">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The flavor of the server
image. Specifies the flavor Id for the server.
A flavor is a resource configuration for a
server. For more information on available
flavors, see the <olink targetdoc="autoscale-devguide" targetptr="server-flavors">“Server
Flavors”</olink>
section.</para>
</wadl:doc>
</param>
<param style="plain"
name="imageRef"
required="true"
type="string"
path="$.args.server.imageRef">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The ID of the cloud server
image from which new server images will be
created.</para>
</wadl:doc>
</param>
<param style="plain"
name="personality"
required="false"
type="array"
path="$.args.server.personality">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The file path and/or the
content that you want to inject into a server
image. For more information, see the <link xlink:href="http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Personality-d1e2543.html">Server Personality</link> documentation
for Rackspace Cloud Servers.</para>
</wadl:doc>
</param>
<param style="plain"
name="path"
required="true"
type="string"
path="$.args.server.personality.[*].path">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The path to the file that
contains data that will be injected into the
file system of the new cloud server
image.</para>
</wadl:doc>
</param>
<param style="plain"
name="contents"
required="true"
type="string"
path="$.args.server.personality.[*].contents">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The content items that will be
injected into the file system of the new cloud
server image.</para>
</wadl:doc>
</param>
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<xsdxt:code>
<programlisting language="javascript">{
"type":"launch_server",
"args":{
"server":{
"flavorRef":"performance1-4",
"name":"webhead",
"imageRef":"0d589460-f177-4b0f-81c1-8ab8903ac7d8",
"OS-DCF:diskConfig":"AUTO",
"metadata":{
"mykey":"myvalue"
},
"personality":[
],
"networks":[
{
"uuid":"11111111-1111-1111-1111-111111111111"
}
]
},
"loadBalancers":[
{
"loadBalancerId":2200,
"port":8081
}
]
}
}</programlisting>
</xsdxt:code>
</wadl:doc>
<param style="plain"
name="args"
required="false"
type="object"
path="$.args">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The item to be configured. Must be
<code>server</code> or
<code>loadbalancer</code>. Most launch
configurations have both a server and a
load balancer configured.</wadl:doc>
</param>
<param style="plain"
name="loadBalancers"
required="false"
type="array"
path="$.args.loadBalancers">
<wadl:doc xmlns="http://docbook.org/ns/docbook">Details about one or more load balancers to
add new servers to. All servers will be added
to these load balancers with the IP addresses
of their ServiceNet network. All servers will
be enabled and equally weighted. Any new
servers that are not connected to the
ServiceNet network will not be added to any
load balancers.</wadl:doc>
</param>
<param style="plain"
name="port"
required="true"
type="integer"
path="$.args.loadBalancers.[*].port">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The port number of the service (on the new
servers) to use for this particular load
balancer. In most cases, this port number is
80.</wadl:doc>
</param>
<param style="plain"
name="loadBalancerId"
required="true"
type="integer"
path="$.args.loadBalancers.[*].loadBalancerId">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The ID of the load balancer to which new
servers will be added.</wadl:doc>
</param>
<param style="plain"
name="server"
required="true"
type="object"
path="$.args.server">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The attributes Auto Scale will use to create
a new server. For more information, see:
<link xlink:href=" /servers/api/v2/cs- devguide/content/CreateServers.html">"Create
Servers"</link> in the cloud servers
developer's guide. The attributes that are
specified for the server entity will apply to
all new servers in the scaling group. The
configured server name is the base for created
servers.</wadl:doc>
</param>
<param style="plain"
name="flavorRef"
required="true"
type="string"
path="$.args.server.flavorRef">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The flavor of the server image. Specifies the
flavor Id for the server. A flavor is a
resource configuration for a server. For more
information on available flavors, see the
<olink targetdoc="autoscale-devguide" targetptr="server-flavors">“Server
Flavors”</olink>
section.</wadl:doc>
</param>
<param style="plain"
name="imageRef"
required="true"
type="string"
path="$.args.server.imageRef">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The ID of the cloud server image, from which
new server images will be created. </wadl:doc>
</param>
<param style="plain"
name="personality"
required="false"
type="array"
path="$.args.server.personality">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The file path and/or the content that you
want to inject into a server image. For more
information, see the <link xlink:href="http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Personality-d1e2543.html">Server Personality</link> documentation
for Rackspace Cloud Servers </wadl:doc>
</param>
<param style="plain"
name="path"
required="true"
type="string"
path="$.args.server.personality.[*].path">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The path to the file that contains data that
will be injected into the file system of the
new cloud server image. </wadl:doc>
</param>
<param style="plain"
name="contents"
required="true"
type="string"
path="$.args.server.personality.[*].contents">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The content items that will be injected into
the file system of the new cloud server image.
</wadl:doc>
</param>
</representation>
</request>
<response status="204">
<doc title="Success But No Content">The update launch configuration request succeeded.</doc>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidJsonError">The request is refused because the body was invalid JSON".</doc>
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">The request body had valid JSON but with unexpected properties or values in it. Please note that there can be many combinations that cause this error. We will try to list the most common mistakes users are likely to make in a particular request. ".</doc>
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<doc title="UnsupportedMediaType">The request is refused because the content type of the request is not "application/json".</doc>
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidLaunchConfiguration">The "imageRef" value is invalid or not active.</doc>
<representation mediaType="application/xml" element="identity:badLaunchConfigImageRef"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidLaunchConfiguration">The "flavorRef" value is invalid.</doc>
<representation mediaType="application/xml" element="identity:badLaunchConfigFlavorRef"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidLaunchConfiguration">The base64 encoding for the "path" argument in the "personality" parameter is invalid.</doc>
<representation mediaType="application/xml"
element="identity:badLaunchConfigPersonalityEncoding"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidLaunchConfiguration">The number of files in the "personality" parameter exceeds maximum limit.</doc>
<representation mediaType="application/xml"
element="identity:badLaunchConfigPersonalityFiles"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidLaunchConfiguration">The content of the files in the "personality" parameter exceeds the maximum size limit allowed.</doc>
<representation mediaType="application/xml"
element="identity:badLaunchConfigPersonalityFilesContent"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidLaunchConfiguration">The load balancer ID provided is invalid.</doc>
<representation mediaType="application/xml" element="identity:badLaunchConfigLb"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource id="pause" path="v1.0/{tenantId}/groups/{groupId}/pause">
<param name="tenantId"
type="xsd:string"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A subscriber to the auto
scaling service.</para>
</wadl:doc>
</param>
<param name="X-Auth-Token"
style="header"
type="xsd:string"
required="true">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A valid authentication
token.</para>
</wadl:doc>
</param>
<param name="groupId"
type="osapi:UUID"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A scaling group.</para>
</wadl:doc>
</param>
<method name="POST"
rax:id="pauseGroup"
rax:roles="admin autoscale:admin autoscale:service-admin">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Pause group policy execution">
<para role="shortdesc" security="writerOnly">Pauses the execution of all scaling
policies for a specified scaling group.</para>
<para security="writerOnly">IMPORTANT: This method has not been implemented in
the Auto Scale API yet and will be implemented in a
future release.</para>
</wadl:doc>
<response status="204"/>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidJsonError">The request is refused because the body was invalid JSON".</doc>
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">The request body had valid JSON but with unexpected properties or values in it. Please note that there can be many combinations that cause this error. We will try to list the most common mistakes users are likely to make in a particular request. ".</doc>
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<doc title="UnsupportedMediaType">The request is refused because the content type of the request is not "application/json".</doc>
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource id="resume" path="v1.0/{tenantId}/groups/{groupId}/resume">
<param name="tenantId"
type="xsd:string"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A subscriber to the auto
scaling service.</para>
</wadl:doc>
</param>
<param name="X-Auth-Token"
style="header"
type="xsd:string"
required="true">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A valid authentication
token.</para>
</wadl:doc>
</param>
<param name="groupId"
type="osapi:UUID"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A scaling group.</para>
</wadl:doc>
</param>
<method name="POST"
rax:id="resumeGroup"
rax:roles="admin autoscale:admin autoscale:service-admin">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Resume group policy execution">
<para role="shortdesc" security="writerOnly">Resumes the execution of all
scaling policies for a specified scaling group.</para>
<para security="writerOnly">IMPORTANT: This method has not been implemented in
the Auto Scale API yet and will be implemented in a
future release.</para>
</wadl:doc>
<response status="204"/>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidJsonError">The request is refused because the body was invalid JSON".</doc>
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">The request body had valid JSON but with unexpected properties or values in it. Please note that there can be many combinations that cause this error. We will try to list the most common mistakes users are likely to make in a particular request. ".</doc>
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<doc title="UnsupportedMediaType">The request is refused because the content type of the request is not "application/json".</doc>
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<!-- POLICIES resource -->
<resource id="policies" path="v1.0/{tenantId}/groups/{groupId}/policies">
<param name="tenantId"
type="xsd:string"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A subscriber to the auto
scaling service.</para>
</wadl:doc>
</param>
<param name="X-Auth-Token"
style="header"
type="xsd:string"
required="true">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A valid authentication
token.</para>
</wadl:doc>
</param>
<param name="groupId"
type="osapi:UUID"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A scaling group.</para>
</wadl:doc>
</param>
<method name="GET"
rax:roles="observer autoscale:observer admin autoscale:admin autoscale:service-admin"
rax:id="getPolicies">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="List policies">
<para role="shortdesc">Lists scaling policies that are
available to a specified scaling group.</para>
<para>Each policy is described in terms of an ID, name,
type, adjustment, cooldown time, and links. These
descriptions are returned in the response body in JSON
format.</para>
</wadl:doc>
<response status="200">
<doc title="OK">The request succeeded and the response
contains a list of scaling policies for the specified scaling group.</doc>
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<xsdxt:code>
<programlisting language="javascript">{
"policies":[
{
"args":{
"cron":"23 * * * *"
},
"changePercent":-5.5,
"cooldown":1800,
"id":"5f26e16c-5fa7-4d4f-8e78-257ea711389f",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/5f26e16c-5fa7-4d4f-8e78-257ea711389f/",
"rel":"self"
}
],
"name":"scale down by 5.5 percent at 11pm",
"type":"schedule"
},
{
"args":{
"at":"2013-12-05T03:12:00Z"
},
"changePercent":-5.5,
"cooldown":1800,
"id":"9f7c5801-6b25-4f5a-af07-4bb752e23d53",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/9f7c5801-6b25-4f5a-af07-4bb752e23d53/",
"rel":"self"
}
],
"name":"scale down by 5.5 percent on the 5th",
"type":"schedule"
},
{
"changePercent":-5.5,
"cooldown":1800,
"id":"eb0fe1bf-3428-4f34-afd9-a5ac36f60511",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/eb0fe1bf-3428-4f34-afd9-a5ac36f60511/",
"rel":"self"
}
],
"name":"scale down by 5.5 percent",
"type":"webhook"
},
{
"cooldown":1800,
"desiredCapacity":5,
"id":"2f45092a-fde7-4461-a67a-3519e0366cd6",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/2f45092a-fde7-4461-a67a-3519e0366cd6/",
"rel":"self"
}
],
"name":"set group to 5 servers",
"type":"webhook"
},
{
"change":1,
"cooldown":1800,
"id":"e36e6a43-2a7a-433c-918c-39fa45b75d12",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/e36e6a43-2a7a-433c-918c-39fa45b75d12/",
"rel":"self"
}
],
"name":"scale up by one server",
"type":"webhook"
}
],
"policies_links":[
]
}</programlisting>
</xsdxt:code>
</wadl:doc>
</representation>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidQueryArgument">The "limit" query argument value is not a valid integer.</doc>
<representation mediaType="application/xml" element="identity:badLimitArg"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method name="POST"
rax:id="createPolicies"
rax:roles="admin autoscale:admin autoscale:service-admin">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Create policy">
<para role="shortdesc">Creates one or more scaling
policies for a specified scaling group.</para>
<para>To create a policy, specify it in the request body
in JSON format. Each description must include a name,
type, adjustment, and cooldown time.</para>
<para>Use the JSON response to obtain information about
the newly-created policy or policies:</para>
<itemizedlist>
<listitem>
<para>The response header points to the List
Policies endpoint.</para>
</listitem>
<listitem>
<para>The response body provides an array of
scaling policies.</para>
</listitem>
</itemizedlist>
<para>The examples that are provided below show several
methods for creating a scaling policy:</para>
<itemizedlist>
<listitem>
<para>A request to create a policy based on
desired capacity.</para>
</listitem>
<listitem>
<para>A request to create a policy based on
incremental change.</para>
</listitem>
<listitem>
<para>A request to create a policy based on
change percentage.</para>
</listitem>
<listitem>
<para>A request to create a policy based on
change percentage scheduled daily, at a
specific time of day.</para>
</listitem>
<listitem>
<para>A request to create a policy based on
change percentage scheduled once, for a
specific date and time.</para>
</listitem>
<listitem>
<para>A request to create multiple policies,
followed by the matching
response.</para>
</listitem>
</itemizedlist>
</wadl:doc>
<request>
<representation mediaType="application/json">
<wadl:doc xmlns="http://www.w3.org/1999/xhtml" xml:lang="EN">
<p> The examples that are provided below show
several methods for creating a scaling policy: <ul>
<li>A request to create a policy based on
desired capacity</li>
<li>A request to create a policy based on
incremental change</li>
<li>A request to create a policy based on
change percentage</li>
<li>A request to create a policy based on
change percentage scheduled daily, at
a specific time of day</li>
<li>A request to create a policy based on
change percentage scheduled once, for
a specific date and time</li>
<!-- <li>a request to create a policy based on change percentage in response to an alarm</li> -->
<li>A request to create multiple policies,
followed by the matching response</li>
</ul>
</p>
<xsdxt:sample title="Create Policy (Desired Capacity) Request: JSON">
<p>The following example shows how to create a
webhook-based policy specifying that
the desired capacity be five servers and
setting the cooldown period to 1800
seconds.</p>
<xsdxt:code>
<programlisting xmlns="http://docbook.org/ns/docbook" language="javascript">[
{
"name":"set group to 5 servers",
"desiredCapacity":5,
"cooldown":1800,
"type":"webhook"
}
]</programlisting>
</xsdxt:code>
</xsdxt:sample>
<xsdxt:sample title="Create Policy (Incremental Change) Request: JSON">
<xsdxt:code>
<programlisting xmlns="http://docbook.org/ns/docbook" language="javascript">[
{
"name":"scale up by one server",
"change":1,
"cooldown":1800,
"type":"webhook"
}
]</programlisting>
</xsdxt:code>
</xsdxt:sample>
<xsdxt:sample title="Create Policy (Percentage Change) Request: JSON">
<xsdxt:code>
<programlisting xmlns="http://docbook.org/ns/docbook" language="javascript">[
{
"name":"scale down by 5.5 percent",
"changePercent":-5.5,
"cooldown":1800,
"type":"webhook"
}
]</programlisting>
</xsdxt:code>
</xsdxt:sample>
<xsdxt:sample title="Create Policy (Percentage Change at Time) Request: JSON">
<xsdxt:code>
<programlisting xmlns="http://docbook.org/ns/docbook" language="javascript">[
{
"name":"scale down by 5.5 percent at 11pm",
"changePercent":-5.5,
"cooldown":1800,
"type":"schedule",
"args":{
"cron":"23 * * * *"
}
}
]</programlisting>
</xsdxt:code>
</xsdxt:sample>
<xsdxt:sample title="Create Policy (Percentage Change on Date) Request: JSON">
<xsdxt:code>
<programlisting xmlns="http://docbook.org/ns/docbook" language="javascript">[
{
"name": "scale down by 5.5 percent on the 5th",
"changePercent": -5.5,
"cooldown": 1800,
"type": "schedule",
"args": {
"at": "2013-12-05T03:12:00Z"
}
}
]
</programlisting>
</xsdxt:code>
</xsdxt:sample>
<!-- <xsdxt:sample title="Create Policy (Percentage Change on Alarm) Request: JSON" > -->
<!-- <xsdxt:code href="../docbkx/samples/reqCreatePolicy-changePercentAlarm.json"/> -->
<!-- </xsdxt:sample> -->
<xsdxt:sample title="Create Policies Request: JSON">
<xsdxt:code>
<programlisting xmlns="http://docbook.org/ns/docbook" language="javascript">
[
{
"change":1,
"cooldown":1800,
"name":"scale up by one server",
"type":"webhook"
},
{
"changePercent":-5.5,
"cooldown":1800,
"name":"scale down by 5.5 percent",
"type":"webhook"
},
{
"cooldown":1800,
"desiredCapacity":5,
"name":"set group to 5 servers",
"type":"webhook"
},
{
"args":{
"cron":"23 * * * *"
},
"changePercent":-5.5,
"cooldown":1800,
"name":"scale down by 5.5 percent at 11pm",
"type":"schedule"
},
{
"args":{
"at":"2013-12-05T03:12:00Z"
},
"changePercent":-5.5,
"cooldown":1800,
"name":"scale down by 5.5 percent on the 5th",
"type":"schedule"
}
]</programlisting>
</xsdxt:code>
</xsdxt:sample>
</wadl:doc>
<param style="plain"
name="array"
required="true"
type="array"
path="$.[*]">
<wadl:doc xmlns="http://docbook.org/ns/docbook">An array of scaling
policies.</wadl:doc>
</param>
<param style="plain"
name="name"
required="true"
type="string"
path="$.[*].name">
<wadl:doc xmlns="http://docbook.org/ns/docbook"/>
</param>
<param style="plain"
name="args"
required="false"
type="object"
path="$.[*].args">
<wadl:doc xmlns="http://docbook.org/ns/docbook"/>
</param>
<param style="plain"
name="cron"
required="false"
type="string"
path="$.[*].args.cron">
<wadl:doc xmlns="http://docbook.org/ns/docbook"/>
</param>
<param style="plain"
name="at"
required="false"
type="string"
path="$.[*].args.at">
<wadl:doc xmlns="http://docbook.org/ns/docbook"/>
</param>
<param style="plain"
name="changePercent"
required="false"
type="number"
path="$.[*].changePercent">
<wadl:doc xmlns="http://docbook.org/ns/docbook"/>
</param>
<param style="plain"
name="cooldown"
required="true"
type="number"
path="$.[*].cooldown">
<wadl:doc xmlns="http://docbook.org/ns/docbook"/>
</param>
<param style="plain"
name="type"
required="true"
type="enum"
path="$.[*].type">
<wadl:doc xmlns="http://docbook.org/ns/docbook"/>
</param>
<param style="plain"
name="change"
required="false"
type="integer"
path="$.[*].change">
<wadl:doc xmlns="http://docbook.org/ns/docbook"/>
</param>
<param style="plain"
name="name"
required="true"
type="string"
path="$.[*].name">
<wadl:doc xmlns="http://docbook.org/ns/docbook"/>
</param>
<param style="plain"
name="args"
required="false"
type="object"
path="$.[*].args">
<wadl:doc xmlns="http://docbook.org/ns/docbook">Additional configuration information for
policies of type <code>schedule</code>.
This parameter is not required for policies of
type <code>webhook</code>. This
parameter must be set to either
<code>at</code> or
<code>cron</code>, which are mutually
exclusive. </wadl:doc>
</param>
<param style="plain"
name="cron"
required="false"
type="string"
path="$.[*].args.cron">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The time when the policy will be executed, as
a cron entry. For example, if this is
parameter is set to <code>1 0 * *
*</code>, the policy will be executed at
one minute past midnight (00:01) every day of
the month, and every day of the week. For more
information about cron, read:
http://en.wikipedia.org/wiki/Cron</wadl:doc>
</param>
<param style="plain"
name="at"
required="false"
type="string"
path="$.[*].args.at">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The time when this policy will be executed.
The time must be formatted according to this
service's custom <link xlink:href=" /cas/api/v1.0/autoscale-devguide/content/datetimeformat.html">Date
and Time format</link>, with seconds,
otherwise a 400 error may be returned. The
policy will be triggered within a 10-second
range of the time specified, so if you set the
<code>at</code> time to
<code>2013-05-19T08:07:08Z</code>, it
will be triggered anytime between 08:07:08 to
08:07:18. This property is mutually exclusive
with the <code>cron</code>
parameter.</wadl:doc>
</param>
<param style="plain"
name="changePercent"
required="false"
type="number"
path="$.[*].changePercent">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The percent change to make in the number of
servers in the scaling group. If this number
is positive, the number of servers will
increase by the given percentage. If this
parameter is set to a negative number, the
number of servers decreases by the given
percentage. The absolute change in the number
of servers will be rounded to the nearest
integer. This means that if -X% of the current
number of servers translates to -0.5 or -0.25
or -0.75 servers, the actual number of servers
that will be shut down is 1. If X% of the
current number of servers translates to 1.2 or
1.5 or 1.7 servers, the actual number of
servers that will be launched is 2</wadl:doc>
</param>
<param style="plain"
name="cooldown"
required="true"
type="number"
path="$.[*].cooldown">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The cooldown period, in seconds, before this
particular scaling policy can be executed
again. The policy cooldown period does not
affect the global scaling group cooldown. The
minimum value for this parameter is 0 seconds,
the maximum value is 86400 seconds (24 hrs). </wadl:doc>
</param>
<param style="plain"
name="type"
required="true"
type="enum"
path="$.[*].type">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The type of policy that will be executed for
the current release, this value can be either
<code>webhook</code> or
<code>schedule</code>.</wadl:doc>
</param>
<param style="plain"
name="change"
required="false"
type="integer"
path="$.[*].change">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The change to make in the number of servers
in the scaling group. This parameter must be
an integer. If the value is a positive
integer, the number of servers increases.
If the value is a negative integer, the number
of servers decreases.</wadl:doc>
</param>
<param style="plain"
name="desiredCapacity"
required="false"
type="integer"
path="$.[*].desiredCapacity">
<wadl:doc xmlns="http://docbook.org/ns/docbook">The desired server capacity of
the scaling the group; that is, how many
servers should be in the scaling group. This
value must be an absolute number, greater than or equal to zero.
For example, if this parameter is set to ten, executing the policy brings the number
of servers to ten. The minimum allowed value is
zero. Note that the configured group maxEntities and minEntities takes precedence
over this setting.</wadl:doc>
</param>
</representation>
</request>
<response status="201">
<doc title="Created">The scaling policy has been created.</doc>
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<xsdxt:sample title="Create Policies Response: HTTP and JSON">
<!-- <xsdxt:code
href="../docbkx/samples/resCreatePolicies-json-http.txt"/>-->
<xsdxt:code>
<programlisting language="javascript">{
"policies":[
{
"args":{
"at":"2013-12-05T03:12:00Z"
},
"changePercent":-5.5,
"cooldown":1800,
"id":"9f7c5801-6b25-4f5a-af07-4bb752e23d53",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/9f7c5801-6b25-4f5a-af07-4bb752e23d53/",
"rel":"self"
}
],
"name":"scale down by 5.5 percent on the 5th",
"type":"schedule"
},
{
"cooldown":1800,
"desiredCapacity":5,
"id":"b0555a35-b2cb-4f0e-8743-d59e1621b980",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/b0555a35-b2cb-4f0e-8743-d59e1621b980/",
"rel":"self"
}
],
"name":"set group to 5 servers",
"type":"webhook"
},
{
"args":{
"cron":"23 * * * *"
},
"changePercent":-5.5,
"cooldown":1800,
"id":"30707675-8e7c-4ea5-9358-c21648afcf29",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/30707675-8e7c-4ea5-9358-c21648afcf29/",
"rel":"self"
}
],
"name":"scale down by 5.5 percent at 11pm",
"type":"schedule"
},
{
"change":1,
"cooldown":1800,
"id":"1f3bdd08-7aae-4009-a3b7-49aa47fc0876",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/1f3bdd08-7aae-4009-a3b7-49aa47fc0876/",
"rel":"self"
}
],
"name":"scale up by one server",
"type":"webhook"
},
{
"changePercent":-5.5,
"cooldown":1800,
"id":"5afac18c-41e5-49d6-aba8-dec17c0d8ed7",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/5afac18c-41e5-49d6-aba8-dec17c0d8ed7/",
"rel":"self"
}
],
"name":"scale down by 5.5 percent",
"type":"webhook"
}
]
}</programlisting>
</xsdxt:code>
</xsdxt:sample>
</wadl:doc>
</representation>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidJsonError">The request is refused because the body was invalid JSON".</doc>
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">The request body had valid JSON but with unexpected properties or values in it. Please note that there can be many combinations that cause this error. We will try to list the most common mistakes users are likely to make in a particular request. ".</doc>
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<doc title="UnsupportedMediaType">The request is refused because the content type of the request is not "application/json".</doc>
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">The "at" value does not correspond to "YYYY-MM-DDTHH:MM:SS.SSSS" format.</doc>
<representation mediaType="application/xml" element="identity:badAtValue"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">The "cron" value is invalid. It either contains a seconds component or is invalid cron expression.</doc>
<representation mediaType="application/xml" element="identity:badCronValue"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">The "args" parameter is not supplied and this is a "schedule" type policy.</doc>
<representation mediaType="application/xml"
element="identity:missingArgsForSchedulePolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">Neither "at" or "cron" values for the "args" parameter are supplied and this is a "schedule" type policy.</doc>
<representation mediaType="application/xml"
element="identity:missingTimeForSchedulePolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">Both "at" and "cron" values for the "args" parameter are supplied. Only one such value is allowed.</doc>
<representation mediaType="application/xml"
element="identity:doubleTimeArgsForSchedulePolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">Neither "change" or "changePercent" or "desiredCapacity" values are supplied.</doc>
<representation mediaType="application/xml" element="identity:missingChangeParam"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">More than one of "change" or "changePercent" or "desiredCapacity" values are supplied. Only one such value is allowed.</doc>
<representation mediaType="application/xml" element="multipleChangeParams"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
<response status="422">
<doc title="PoliciesOverLimitError">The user has reached their quota for scaling policies, currently 100.</doc>
<representation mediaType="application/xml" element="identity:overPolicyLimit"/>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource id="policyid"
path="v1.0/{tenantId}/groups/{groupId}/policies/{policyId}">
<param name="tenantId"
type="xsd:string"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A subscriber to the auto
scaling service.</para>
</wadl:doc>
</param>
<param name="X-Auth-Token"
style="header"
type="xsd:string"
required="true">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A valid authentication
token.</para>
</wadl:doc>
</param>
<param name="groupId"
type="osapi:UUID"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A scaling group.</para>
</wadl:doc>
</param>
<param name="policyId"
type="osapi:UUID"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A scaling
policy.</para>
</wadl:doc>
</param>
<method name="DELETE"
rax:id="deletePolicy"
rax:roles="admin autoscale:admin autoscale:service-admin">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Delete policy">
<para role="shortdesc">Deletes a specified scaling policy
from the specified tenant.</para>
<para>If deletion is successful, no response body is
returned.</para>
</wadl:doc>
<response status="204">
<doc title="Success But No Content">The delete scaling policy request succeeded.</doc>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchPolicyError">The requested scaling policy was not found in the specified scaling group.</doc>
<representation mediaType="application/xml" element="identity:noSuchPolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method name="GET"
rax:roles="observer autoscale:observer admin autoscale:admin autoscale:service-admin"
rax:id="getPolicy">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Show policy details">
<para role="shortdesc">Shows scaling policy
details.</para>
<para>Details include an ID, name, type, adjustment,
cool-down time, and links.</para>
<para>The details appear in the response body in JSON
format.</para>
</wadl:doc>
<response status="200">
<doc title="OK">The request succeeded and the response
contains details about the specified scaling policy.</doc>
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<!-- <xsdxt:code
href="../docbkx/samples/resGetPolicy-json-http.txt"/>-->
<xsdxt:code>
<programlisting language="javascript">{
"policy":{
"args":{
"cron":"23 * * * *"
},
"changePercent":-5.5,
"cooldown":1800,
"id":"5f26e16c-5fa7-4d4f-8e78-257ea711389f",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/5f26e16c-5fa7-4d4f-8e78-257ea711389f/",
"rel":"self"
}
],
"name":"scale down by 5.5 percent at 11pm",
"type":"schedule"
}
}</programlisting>
</xsdxt:code>
</wadl:doc>
</representation>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchPolicyError">The requested scaling policy was not found in the specified scaling group.</doc>
<representation mediaType="application/xml" element="identity:noSuchPolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method name="PUT"
rax:id="putPolicy"
rax:roles="admin autoscale:admin autoscale:service-admin">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Update policy">
<para role="shortdesc">Updates an existing scaling policy
for the specified tenant.</para>
<para>To update the policy, specify the name, type,
adjustment, and cooldown time for the policy in the
request body in JSON format. If the change succeeds,
no response body is returned.</para>
<note>
<para>All Rackspace Auto Scale update (<methodname>PUT</methodname>) operations completely replace the configuration being updated. Empty values (for example,
<varname>{ }</varname>)in the update
are accepted and overwrite previously specified parameters. New parameters can be specified. All create (<methodname>POST</methodname>) parameters, even optional ones,
are required for the update operation. </para>
</note>
</wadl:doc>
<request>
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<xsdxt:code>
<programlisting language="javascript">{
"change":1,
"cooldown":1800,
"name":"scale up by one server",
"type":"webhook"
}</programlisting>
</xsdxt:code>
</wadl:doc>
<param style="plain"
name="name"
required="true"
type="string"
path="$.scalingPolicies.[*].name">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A name for the scaling policy.
This name must be unique for each scaling
policy.</para>
</wadl:doc>
</param>
<param style="plain"
name="args"
required="false"
type="object"
path="$.scalingPolicies.[*].args">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>Additional configuration
information for policies of type "schedule."
This parameter is not required for policies of
type <code>webhook</code>. This parameter must be set to
either <code>at</code> or <code>cron</code>, which are mutually exclusive</para>
</wadl:doc>
</param>
<param style="plain"
name="cron"
required="false"
type="string"
path="$.scalingPolicies.[*].args.cron">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The time when the
policy runs, as a cron entry. For example, if
you set this parameter to <code>1 0 * *
*</code>, the policy runs at one minute
past midnight (00:01) every day of the month,
and every day of the week. For more
information about cron, see <link xlink:href="http://en.wikipedia.org/wiki/Cron">http://en.wikipedia.org/wiki/Cron</link>.</para>
</wadl:doc>
</param>
<param style="plain"
name="at"
required="false"
type="string"
path="$.scalingPolicies.[*].args.at">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">The time when this policy will
be executed. The time must be formatted
according to this service's custom <link xlink:href=" /cas/api/v1.0/autoscale-devguide/content/datetimeformat.html">Date
and Time format</link>, with seconds,
otherwise a 400 error may be returned. The
policy will be triggered within a 10-second
range of the time specified, so if you set the
<code>at</code> time to
<code>2013-05-19T08:07:08Z</code>, it
will be triggered anytime between 08:07:08 to
08:07:18. This property is mutually exclusive
with the <code>cron</code>
parameter.</wadl:doc>
</param>
<param style="plain"
name="changePercent"
required="false"
type="number"
path="$.scalingPolicies.[*].changePercent">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The percent change to make in
the number of servers in the scaling group. If
this number is positive, the number of servers
increases by the given percentage. If this
parameter is set to a negative number, the
number of servers decreases by the given
percentage. The absolute change in the number
of servers is rounded to the nearest integer.
This means that if -X% of the current number
of servers translates to -0.5 or -0.25 or
-0.75 servers, the actual number of servers
that are shut down is 1. If X% of the current
number of servers translates to 1.2 or 1.5 or
1.7 servers, the actual number of servers that
are launched is 2.</para>
</wadl:doc>
</param>
<param style="plain"
name="cooldown"
required="true"
type="number"
path="$.scalingPolicies.[*].cooldown">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The cooldown period, in
seconds, before this particular scaling policy
can run again. The policy cooldown period does not
affect the global scaling group cooldown. The
minimum value for this parameter is 0 seconds.
The maximum value is 86400 seconds (24
hrs).</para>
</wadl:doc>
</param>
<param style="plain"
name="type"
required="true"
type="enum"
path="$.scalingPolicies.[*].type">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The type of policy that runs. Currently, this value can be
either <code>webhook</code> or <code>schedule</code>.</para>
</wadl:doc>
</param>
<param style="plain"
name="change"
required="false"
type="integer"
path="$.scalingPolicies.[*].change">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The change to make in the
number of servers in the scaling group. This
parameter must be an integer. If the value is
a positive integer, the number of servers
increases. If the value is a negative integer,
the number of servers
decreases.</para>
</wadl:doc>
</param>
<param style="plain"
name="desiredCapacity"
required="false"
type="integer"
path="$.scalingPolicies.[*].desiredCapacity">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>The desired server capacity of
the scaling the group; that is, how many
servers should be in the scaling group. This
value must be an absolute number, greater than or equal to zero.
For example, if this parameter is set to ten, executing the policy brings the number
of servers to ten. The minimum allowed value is
zero. Note that the configured group maxEntities and minEntities takes precedence
over this setting.</para>
</wadl:doc>
</param>
</representation>
</request>
<response status="204">
<doc title="Success But No Content">The update scaling policy request succeeded.</doc>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidJsonError">The request is refused because the body was invalid JSON".</doc>
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">The request body had valid JSON but with unexpected properties or values in it. Please note that there can be many combinations that cause this error. We will try to list the most common mistakes users are likely to make in a particular request. ".</doc>
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<doc title="UnsupportedMediaType">The request is refused because the content type of the request is not "application/json".</doc>
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">The "at" value does not correspond to "YYYY-MM-DDTHH:MM:SS.SSSS" format.</doc>
<representation mediaType="application/xml" element="identity:badAtValue"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">The "cron" value is invalid. It either contains a seconds component or is invalid cron expression.</doc>
<representation mediaType="application/xml" element="identity:badCronValue"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">The "args" parameter is not supplied and this is a "schedule" type policy.</doc>
<representation mediaType="application/xml"
element="identity:missingArgsForSchedulePolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">Neither "at" or "cron" values for the "args" parameter are supplied and this is a "schedule" type policy.</doc>
<representation mediaType="application/xml"
element="identity:missingTimeForSchedulePolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">Both "at" and "cron" values for the "args" parameter are supplied. Only one such value is allowed.</doc>
<representation mediaType="application/xml"
element="identity:doubleTimeArgsForSchedulePolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">Neither "change" or "changePercent" or "desiredCapacity" values are supplied.</doc>
<representation mediaType="application/xml" element="identity:missingChangeParam"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">More than one of "change" or "changePercent" or "desiredCapacity" values are supplied. Only one such value is allowed.</doc>
<representation mediaType="application/xml" element="multipleChangeParams"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchPolicyError">The requested scaling policy was not found in the specified scaling group.</doc>
<representation mediaType="application/xml" element="identity:noSuchPolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource id="execute"
path="v1.0/{tenantId}/groups/{groupId}/policies/{policyId}/execute">
<param name="tenantId"
type="xsd:string"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A subscriber to the auto
scaling service.</para>
</wadl:doc>
</param>
<param name="X-Auth-Token"
style="header"
type="xsd:string"
required="true">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A valid authentication
token.</para>
</wadl:doc>
</param>
<param name="groupId"
type="osapi:UUID"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A scaling group.</para>
</wadl:doc>
</param>
<param name="policyId"
type="osapi:UUID"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A scaling
policy.</para>
</wadl:doc>
</param>
<method name="POST"
rax:id="executePolicy"
rax:roles="admin autoscale:admin autoscale:service-admin">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Execute policy">
<para role="shortdesc">Runs a specified scaling
policy.</para>
<para>If the operation succeeds, a response body is
returned.</para>
</wadl:doc>
<response status="202">
<doc title="Accepted">The execute policy request was accepted.
The actual execution may be delayed, but will be attempted if no errors are returned.
Use the "GET scaling group state" method to see if the policy was executed. </doc>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidJsonError">The request is refused because the body was invalid JSON".</doc>
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">The request body had valid JSON but with unexpected properties or values in it. Please note that there can be many combinations that cause this error. We will try to list the most common mistakes users are likely to make in a particular request. ".</doc>
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<doc title="UnsupportedMediaType">The request is refused because the content type of the request is not "application/json".</doc>
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="CannotExecutePolicyError">The policy was not executed because applying the changes would not result in the addition or deletion of any servers.</doc>
<representation mediaType="application/xml" element="identity:cannotExecutePolicyNull"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="CannotExecutePolicyError">The policy was not executed because a scaling policy or scaling group cooldown was still in effect.</doc>
<representation mediaType="application/xml" element="identity:cannotExecutePolicyGroup"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchPolicyError">The requested scaling policy was not found in the specified scalilng group.</doc>
<representation mediaType="application/xml" element="identity:noSuchPolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource id="webhooks"
path="v1.0/{tenantId}/groups/{groupId}/policies/{policyId}/webhooks">
<param name="tenantId"
type="xsd:string"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A subscriber to the auto
scaling service.</para>
</wadl:doc>
</param>
<param name="X-Auth-Token"
style="header"
type="xsd:string"
required="true">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A valid authentication
token.</para>
</wadl:doc>
</param>
<param name="groupId"
type="osapi:UUID"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A scaling group.</para>
</wadl:doc>
</param>
<param name="policyId"
type="osapi:UUID"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A scaling
policy.</para>
</wadl:doc>
</param>
<method name="GET"
rax:id="getWebhooks"
rax:roles="admin autoscale:admin autoscale:service-admin">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="List webhooks for the policy">
<para role="shortdesc">Lists web hooks and their IDs for a
specified scaling policy.</para>
<para>This data is returned in the response body in JSON
format.</para>
</wadl:doc>
<response status="200">
<doc title="OK">The request succeeded and the response
contains a list of webhooks for the specified scaling policy.</doc>
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<!--<xsdxt:code
href="../docbkx/samples/resGetWebhooks-json-http.txt"/>-->
<xsdxt:code>
<programlisting language="javascript">
{
"webhooks":[
{
"id":"152054a3-e0ab-445b-941d-9f8e360c9eed",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/eb0fe1bf-3428-4f34-afd9-a5ac36f60511/webhooks/152054a3-e0ab-445b-941d-9f8e360c9eed/",
"rel":"self"
},
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/execute/1/0077882e9626d83ef30e1ca379c8654d86cd34df3cd49ac8da72174668315fe8/",
"rel":"capability"
}
],
"metadata":{
"notes":"PagerDuty will fire this webhook"
},
"name":"PagerDuty"
},
{
"id":"23037efb-53a9-4ae5-bc33-e89a56b501b6",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/eb0fe1bf-3428-4f34-afd9-a5ac36f60511/webhooks/23037efb-53a9-4ae5-bc33-e89a56b501b6/",
"rel":"self"
},
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/execute/1/4f767340574433927a26dc747253dad643d5d13ec7b66b764dcbf719b32302b9/",
"rel":"capability"
}
],
"metadata":{
},
"name":"Nagios"
}
],
"webhooks_links":[
]
}</programlisting>
</xsdxt:code>
</wadl:doc>
</representation>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidQueryArgument">Only "pagination" query arguments are valid in this request.</doc>
<representation mediaType="application/xml" element="identity:badQueryArg"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchPolicyError">The requested scaling policy was not found in the specified scaling group.</doc>
<representation mediaType="application/xml" element="identity:noSuchPolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method name="POST"
rax:id="createWebhook"
rax:roles="admin autoscale:admin autoscale:service-admin">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Create webhook">
<para role="shortdesc">Creates one or more webhooks for
the specified scaling policy.</para>
<para>Webhooks must have a name. If the operation
succeeds, the response body contains the IDs and links
to the newly created web hooks. This data is provided
in the request body in JSON format.</para>
</wadl:doc>
<request>
<param style="plain"
name="name"
required="true"
type="string"
path="$.[*].name">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A name for the webhook for
logging purposes.</para>
</wadl:doc>
</param>
<param style="plain"
name="metadata"
required="false"
type="object"
path="$.[*].metadata">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>User-provided key-value
metadata. Both keys and values should be
strings with a maximum length of 256
characters.</para>
</wadl:doc>
</param>
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<!-- <xsdxt:code
href="../docbkx/samples/reqCreateWebhook-json-http.txt"/>-->
<xsdxt:code>
<programlisting language="javascript">[
{
"metadata":{
"notes":"PagerDuty will fire this webhook"
},
"name":"PagerDuty"
},
{
"name":"Nagios"
}
]</programlisting>
</xsdxt:code>
</wadl:doc>
<param style="plain"
name="name"
required="true"
type="string"
path="$.[*].name">
<wadl:doc xmlns="http://docbook.org/ns/docbook">This parameter specifies a name for the
webhook for logging purposes</wadl:doc>
</param>
<param style="plain"
name="metadata"
required="false"
type="object"
path="$.[*].metadata">
<wadl:doc xmlns="http://docbook.org/ns/docbook">This parameter specifies user-provided
key-value metadata. Both keys and values
should be strings not exceeding 256 characters
in length.</wadl:doc>
</param>
</representation>
</request>
<response status="201">
<doc title="Created">The webhook has been created.</doc>
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<!--<xsdxt:code
href="../docbkx/samples/resCreateWebhook-json-http.txt"/>-->
<xsdxt:code>
<programlisting language="javascript">{
"webhooks":[
{
"id":"152054a3-e0ab-445b-941d-9f8e360c9eed",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/eb0fe1bf-3428-4f34-afd9-a5ac36f60511/webhooks/152054a3-e0ab-445b-941d-9f8e360c9eed/",
"rel":"self"
},
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/execute/1/0077882e9626d83ef30e1ca379c8654d86cd34df3cd49ac8da72174668315fe8/",
"rel":"capability"
}
],
"metadata":{
"notes":"PagerDuty will fire this webhook"
},
"name":"PagerDuty"
},
{
"id":"23037efb-53a9-4ae5-bc33-e89a56b501b6",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/eb0fe1bf-3428-4f34-afd9-a5ac36f60511/webhooks/23037efb-53a9-4ae5-bc33-e89a56b501b6/",
"rel":"self"
},
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/execute/1/4f767340574433927a26dc747253dad643d5d13ec7b66b764dcbf719b32302b9/",
"rel":"capability"
}
],
"metadata":{
},
"name":"Nagios"
}
]
}</programlisting>
</xsdxt:code>
</wadl:doc>
</representation>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidJsonError">The request is refused because the body was invalid JSON".</doc>
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">The request body had valid JSON but with unexpected properties or values in it. Please note that there can be many combinations that cause this error. We will try to list the most common mistakes users are likely to make in a particular request. ".</doc>
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<doc title="UnsupportedMediaType">The request is refused because the content type of the request is not "application/json".</doc>
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidJsonError">A syntax or parameter error. The create webhook request body had invalid JSON.</doc>
<representation mediaType="application/xml" element="identity:badRequestInvalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">A syntax or parameter error. The create webhook request body had bad.</doc>
<representation mediaType="application/xml" element="identity:badRequestInvalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchPolicyError">The requested scaling policy was not found in the specified scaling group.</doc>
<representation mediaType="application/xml" element="identity:noSuchPolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
<response status="422">
<doc title="WebhookOverLimitsError">The user has reached their quota for webhooks, currently 25.</doc>
<representation mediaType="application/xml" element="identity:overWebhookLimit"/>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource id="webhookid"
path="v1.0/{tenantId}/groups/{groupId}/policies/{policyId}/webhooks/{webhookId}">
<param name="tenantId"
type="xsd:string"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A subscriber to the auto
scaling service.</para>
</wadl:doc>
</param>
<param name="X-Auth-Token"
style="header"
type="xsd:string"
required="true">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A valid authentication
token.</para>
</wadl:doc>
</param>
<param name="groupId"
type="osapi:UUID"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A scaling group.</para>
</wadl:doc>
</param>
<param name="policyId"
type="osapi:UUID"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A scaling
policy.</para>
</wadl:doc>
</param>
<param name="webhookId"
type="osapi:UUID"
required="true"
style="template">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A
webhook.</para>
</wadl:doc>
</param>
<method name="GET"
rax:id="getWebhook"
rax:roles="admin autoscale:admin autoscale:service-admin">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Show webhook details">
<para role="shortdesc">Shows webhook details for a
specified scaling policy.</para>
<para>The details appear in the response body in JSON
format.</para>
</wadl:doc>
<response status="200">
<doc title="OK">The request succeeded and the response
contains details about the specified webhook.</doc>
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<!-- <xsdxt:code
href="../docbkx/samples/resGetWebhook-json-http.txt"/>-->
<xsdxt:code>
<programlisting language="javascript">
{
"webhook":{
"id":"23037efb-53a9-4ae5-bc33-e89a56b501b6",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/eb0fe1bf-3428-4f34-afd9-a5ac36f60511/webhooks/23037efb-53a9-4ae5-bc33-e89a56b501b6/",
"rel":"self"
},
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/execute/1/4f767340574433927a26dc747253dad643d5d13ec7b66b764dcbf719b32302b9/",
"rel":"capability"
}
],
"metadata":{
},
"name":"Nagios"
}
}</programlisting>
</xsdxt:code>
</wadl:doc>
</representation>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchWebhookError">The specified webhook was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchWebhook"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchPolicyError">The requested scaling policy was not found in the specified scaling group.</doc>
<representation mediaType="application/xml" element="identity:noSuchPolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method name="PUT"
rax:id="putWebhook"
rax:roles="admin autoscale:admin autoscale:service-admin">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Update webhook">
<para role="shortdesc">Updates a webhook for a specified
tenant and scaling policy.</para>
<para>If the
specified webhook is not recognized, the change is
ignored. If you submit a URL, the URL is ignored but
that does not invalidate the request. If the change is
successful, no response body is returned.</para>
<note>
<para>All Rackspace Auto Scale update (<methodname>PUT</methodname>) operations completely replace the configuration being updated. Empty values (for example,
<varname>{ }</varname>)in the update
are accepted and overwrite previously specified parameters. New parameters can be specified. All create (<methodname>POST</methodname>) webhook parameters, even optional ones,
are required for the update webhook operation, including the <parameter>metadata</parameter> parameter. </para>
</note>
</wadl:doc>
<request>
<param style="plain"
name="name"
type="string"
required="true"
path="$.[*].name">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>A name for the webhook for
logging purposes.</para>
</wadl:doc>
</param>
<param style="plain"
name="metadata"
required="false"
type="object"
path="$.[*].metadata">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<para>User-provided key-value
metadata. Both keys and values should be
strings not exceeding 256 characters in
length.</para>
</wadl:doc>
</param>
<representation mediaType="application/json">
<wadl:doc xmlns="http://docbook.org/ns/docbook" xml:lang="EN">
<xsdxt:code>
<programlisting language="javascript">{
"name": "alice",
"metadata": {
"notes": "this is for Alice"
}
}</programlisting>
</xsdxt:code>
</wadl:doc>
<param style="plain"
name="name"
type="object"
required="true"
path="$.[*].name">
<wadl:doc xmlns="http://docbook.org/ns/docbook">This parameter specifies a name for the
webhook for logging purposes.</wadl:doc>
</param>
<param style="plain"
name="metadata"
required="true"
type="object"
path="$.[*].metadata">
<wadl:doc xmlns="http://docbook.org/ns/docbook">This parameter specifies user-provided
key-value metadata. Both keys and values
should be strings not exceeding 256 characters
in length. An empty value, <code>{ }</code> is acceptable.</wadl:doc>
</param>
</representation>
</request>
<response status="204">
<doc title="Success But No Content">The update webhook request succeeded.</doc>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidJsonError">The request is refused because the body was invalid JSON".</doc>
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">The request body had valid JSON but with unexpected properties or values in it. Please note that there can be many combinations that cause this error. We will try to list the most common mistakes users are likely to make in a particular request. ".</doc>
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<doc title="UnsupportedMediaType">The request is refused because the content type of the request is not "application/json".</doc>
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="InvalidJsonError">A syntax or parameter error. The create webhook request body had invalid JSON.</doc>
<representation mediaType="application/xml" element="identity:badRequestInvalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<doc title="ValidationError">A syntax or parameter error. The create webhook request body had bad.</doc>
<representation mediaType="application/xml" element="identity:badRequestInvalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchWebhookError">The specified webhook was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchWebhook"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchPolicyError">The requested scaling policy was not found in the specified scaling group.</doc>
<representation mediaType="application/xml" element="identity:noSuchPolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
<response status="422">
<doc title="WebhookOverLimitsError">The user has reached their quota for webhooks, currently 25.</doc>
<representation mediaType="application/xml" element="identity:overWebhookLimit"/>
<representation mediaType="application/json"/>
</response>
</method>
<method name="DELETE"
rax:id="deleteWebhook"
rax:roles="admin autoscale:admin autoscale:service-admin">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Delete webhook">
<para role="shortdesc">Deletes a webhook for a specified
scaling policy.</para>
<para>If deletion succeeds, no response body is
returned.</para>
</wadl:doc>
<response status="204">
<doc title="Success But No Content">The delete webhook request succeeded.</doc>
</response>
<response status="401">
<doc title="InvalidCredentials">The X-Auth-Token the user supplied is bad.</doc>
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<doc title="Forbidden">The user does not have permission to perform the resource; for example, the user only has an observer role and attempted to perform something only available to a user with an admin role. Note, some API nodes also use this status code for other things.</doc>
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<doc title="InvalidMethod">The method used is unavailable for the endpoint.</doc>
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<doc title="RateLimitError">The user has surpassed their rate limit.</doc>
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<doc title="InternalError">An error internal to the application has occurred, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<doc title="ServiceUnavailable">The requested service is unavailable, please file a bug report.</doc>
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchWebhookError">The specified webhook was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchWebhook"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchPolicyError">The requested scaling policy was not found in the specified scaling group.</doc>
<representation mediaType="application/xml" element="identity:noSuchPolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<doc title="NoSuchScalingGroupError">The specified scaling group was not found.</doc>
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource id="capability_hash"
path="v1.0/execute/{capability_version}/{capability_hash}">
<param name="capability_version"
required="true"
style="template"
type="xsd:string"/>
<param name="capability_hash"
required="true"
style="template"
type="xsd:string"/>
<method name="POST"
rax:id="anonymousExecute"
rax:roles="admin autoscale:admin autoscale:service-admin">
<wadl:doc xmlns="http://docbook.org/ns/docbook"
xml:lang="EN"
title="Execute anonymous webhook">
<para role="shortdesc">Runs an anonymous webhook.</para>
</wadl:doc>
<response status="202">
<doc title="Accepted">The execute webhook request was accepted.</doc>
</response>
</method>
</resource>
</resources>
<!-- ======================================================================================= -->
<!-- Methods -->
<!-- ======================================================================================= -->
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="createGroup"
name="POST">
<request>
<param style="plain"
name="launchConfiguration"
required="true"
type="object"
path="$.launchConfiguration">
</param>
<param style="plain"
name="loadBalancers"
required="false"
type="array"
path="$.launchConfiguration.args.loadBalancers">
</param>
<param style="plain"
name="port"
required="true"
type="integer"
path="$.launchConfiguration.args.loadBalancers.[*].port">
</param>
<param style="plain"
name="loadBalancerId"
required="true"
type="integer"
path="$.launchConfiguration.args.loadBalancers.[*].loadBalancerId">
</param>
<param style="plain"
name="server"
required="true"
type="object"
path="$.launchConfiguration.args.server">
</param>
<param style="plain"
name="flavorRef"
required="true"
type="string"
path="$.launchConfiguration.args.server.flavorRef">
</param>
<param style="plain"
name="imageRef"
required="true"
type="string"
path="$.launchConfiguration.args.server.imageRef">
</param>
<param style="plain"
name="personality"
required="false"
type="array"
path="$.launchConfiguration.args.server.personality">
</param>
<param style="plain"
name="path"
required="true"
type="string"
path="$.launchConfiguration.args.server.personality.[*].path">
</param>
<param style="plain"
name="contents"
required="true"
type="string"
path="$.launchConfiguration.args.server.personality.[*].contents">
</param>
<param style="plain"
name="args"
required="true"
type="object"
path="$.launchConfiguration.args">
</param>
<param style="plain"
name="type"
required="true"
type="string"
path="$.launchConfiguration.type">
</param>
<param style="plain"
name="groupConfiguration"
required="true"
type="object"
path="$.groupConfiguration">
</param>
<param style="plain"
name="maxEntities"
required="false"
type="object"
path="$.groupConfiguration.maxEntities">
</param>
<param style="plain"
name="name"
required="true"
type="string"
path="$.groupConfiguration.name">
</param>
<param style="plain"
name="cooldown"
required="true"
type="integer"
path="$.groupConfiguration.cooldown">
</param>
<param style="plain"
name="minEntities"
required="true"
type="integer"
path="$.groupConfiguration.minEntities">
</param>
<param style="plain"
name="metadata"
required="false"
type="object"
path="$.groupConfiguration.metadata">
</param>
<param style="plain"
name="scalingPolicies"
required="true"
type="array"
path="$.scalingPolicies">
</param>
<param style="plain"
name="array"
required="true"
type="array"
path="$.scalingPolicies.[*]">
</param>
<param style="plain"
name="name"
required="true"
type="string"
path="$.scalingPolicies.[*].name">
</param>
<param style="plain"
name="args"
required="false"
type="object"
path="$.scalingPolicies.[*].args">
</param>
<param style="plain"
name="cron"
required="false"
type="string"
path="$.scalingPolicies.[*].args.cron">
</param>
<param style="plain"
name="at"
required="false"
type="string"
path="$.scalingPolicies.[*].args.at">
</param>
<param style="plain"
name="changePercent"
required="false"
type="number"
path="$.scalingPolicies.[*].changePercent">
</param>
<param style="plain"
name="cooldown"
required="true"
type="number"
path="$.scalingPolicies.[*].cooldown">
</param>
<param style="plain"
name="type"
required="true"
type="enum"
path="$.scalingPolicies.[*].type">
</param>
<param style="plain"
name="change"
required="false"
type="integer"
path="$.scalingPolicies.[*].change">
</param>
<param style="plain"
name="desiredCapacity"
required="false"
type="integer"
path="$.scalingPolicies.[*].desiredCapacity">
</param>
<representation mediaType="application/json">
<param style="plain"
name="launchConfiguration"
required="true"
type="object"
path="$.launchConfiguration">
</param>
<param style="plain"
name="loadBalancers"
required="false"
type="array"
path="$.launchConfiguration.args.loadBalancers">
</param>
<param style="plain"
name="port"
required="true"
type="integer"
path="$.launchConfiguration.args.loadBalancers.[*].port">
</param>
<param style="plain"
name="loadBalancerId"
required="true"
type="integer"
path="$.launchConfiguration.args.loadBalancers.[*].loadBalancerId">
</param>
<param style="plain"
name="server"
required="true"
type="object"
path="$.launchConfiguration.args.server">
</param>
<param style="plain"
name="flavorRef"
required="true"
type="string"
path="$.launchConfiguration.args.server.flavorRef">
</param>
<param style="plain"
name="imageRef"
required="true"
type="string"
path="$.launchConfiguration.args.server.imageRef">
</param>
<param style="plain"
name="personality"
required="false"
type="array"
path="$.launchConfiguration.args.server.personality">
</param>
<param style="plain"
name="path"
required="true"
type="string"
path="$.launchConfiguration.args.server.personality.[*].path">
</param>
<param style="plain"
name="contents"
required="true"
type="string"
path="$.launchConfiguration.args.server.personality.[*].contents">
</param>
<param style="plain"
name="args"
required="true"
type="object"
path="$.launchConfiguration.args">
</param>
<param style="plain"
name="type"
required="true"
type="string"
path="$.launchConfiguration.type">
</param>
<param style="plain"
name="groupConfiguration"
required="true"
type="object"
path="$.groupConfiguration">
</param>
<param style="plain"
name="maxEntities"
required="false"
type="object"
path="$.groupConfiguration.maxEntities">
</param>
<param style="plain"
name="name"
required="true"
type="string"
path="$.groupConfiguration.name">
</param>
<param style="plain"
name="cooldown"
required="true"
type="integer"
path="$.groupConfiguration.cooldown">
</param>
<param style="plain"
name="minEntities"
required="true"
type="integer"
path="$.groupConfiguration.minEntities">
</param>
<param style="plain"
name="metadata"
required="false"
type="object"
path="$.groupConfiguration.metadata">
</param>
<param style="plain"
name="scalingPolicies"
required="true"
type="array"
path="$.scalingPolicies">
</param>
<param style="plain"
name="array"
required="true"
type="array"
path="$.scalingPolicies.[*]">
</param>
<param style="plain"
name="name"
required="true"
type="string"
path="$.scalingPolicies.[*].name">
</param>
<param style="plain"
name="args"
required="false"
type="object"
path="$.scalingPolicies.[*].args">
</param>
<param style="plain"
name="cron"
required="false"
type="string"
path="$.scalingPolicies.[*].args.cron">
</param>
<param style="plain"
name="at"
required="false"
type="string"
path="$.scalingPolicies.[*].args.at">
</param>
<param style="plain"
name="changePercent"
required="false"
type="number"
path="$.scalingPolicies.[*].changePercent">
</param>
<param style="plain"
name="cooldown"
required="true"
type="number"
path="$.scalingPolicies.[*].cooldown">
</param>
<param style="plain"
name="type"
required="true"
type="enum"
path="$.scalingPolicies.[*].type">
</param>
<param style="plain"
name="change"
required="false"
type="integer"
path="$.scalingPolicies.[*].change">
</param>
<param style="plain"
name="desiredCapacity"
required="false"
type="integer"
path="$.scalingPolicies.[*].desiredCapacity">
</param>
</representation>
</request>
<response status="201">
<param name="location"
style="header"
required="true"
type="xsd:anyURI">
</param>
<representation mediaType="application/json">
</representation>
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badMinEntities"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badLaunchConfigImageRef"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badLaunchConfigFlavorRef"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml"
element="identity:badLaunchConfigPersonalityEncoding"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml"
element="identity:badLaunchConfigPersonalityFiles"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml"
element="identity:badLaunchConfigPersonalityFilesContent"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badLaunchConfigLb"/>
<representation mediaType="application/json"/>
</response>
<response status="422">
<representation mediaType="application/xml" element="identity:overGroupLimit"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="listGroups"
name="GET"
rax:roles="observer autoscale:observer">
<response status="200">
<representation mediaType="application/json">
</representation>
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badQuery"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="showGroupManifest"
name="GET"
rax:roles="observer autoscale:observer">
<response status="200">
<representation mediaType="application/json">
</representation>
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badLimitArg"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="showGroupManifestWebhook"
name="GET"
rax:roles="observer autoscale:observer">
<request>
<param name="webhooks"
style="query"
required="true"
default="true"
type="xsd:boolean">
</param>
</request>
<response status="200">
<representation mediaType="application/json">
</representation>
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badLimitArg"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="deleteGroup"
name="DELETE">
<response status="204">
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badForceArg"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:groupNotEmpty"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="deleteGroupServer"
name="DELETE">
<request>
<param name="serverId"
style="plain"
required="true"
default="false"
type="xsd:string">
</param>
<param name="replace"
style="query"
required="false"
default="true"
type="xsd:boolean">
</param>
</request>
<response status="202">
<representation mediaType="application/json">
</representation>
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:groupNotEmpty"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="getGroupState"
name="GET"
rax:roles="observer autoscale:observer">
<response status="200">
<representation mediaType="application/json">
</representation>
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="getGroupConfig"
name="GET"
rax:roles="observer autoscale:observer">
<response status="200">
<representation mediaType="application/json">
</representation>
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="putGroupConfig"
name="PUT">
<request>
<param style="plain"
name="maxEntities"
required="true"
type="object"
path="$.maxEntities">
</param>
<param style="plain"
name="cooldown"
required="true"
type="integer"
path="$.cooldown">
</param>
<param style="plain"
name="name"
required="true"
type="string"
path="$.name">
</param>
<param style="plain"
name="minEntities"
required="true"
type="integer"
path="$.minEntities">
</param>
<param style="plain"
name="metadata"
required="true"
type="object"
path="$.metadata">
</param>
<representation mediaType="application/json">
<param style="plain"
name="maxEntities"
required="true"
type="object"
path="$.maxEntities">
</param>
<param style="plain"
name="cooldown"
required="true"
type="integer"
path="$.cooldown">
</param>
<param style="plain"
name="name"
required="true"
type="string"
path="$.name">
</param>
<param style="plain"
name="minEntities"
required="true"
type="integer"
path="$.minEntities">
</param>
<param style="plain"
name="metadata"
required="true"
type="object"
path="$.metadata">
</param>
</representation>
</request>
<response status="204">
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:invalidMinEntities"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="getLaunchConfig"
name="GET"
rax:roles="observer autoscale:observer">
<response status="200">
<representation mediaType="application/json">
</representation>
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="putLaunchConfig"
name="PUT">
<request>
<param style="plain"
name="args"
required="false"
type="object"
path="$.args">
</param>
<param style="plain"
name="loadBalancers"
required="false"
type="array"
path="$.args.loadBalancers">
</param>
<param style="plain"
name="port"
required="true"
type="integer"
path="$.args.loadBalancers.[*].port">
</param>
<param style="plain"
name="loadBalancerId"
required="true"
type="integer"
path="$.args.loadBalancers.[*].loadBalancerId">
</param>
<param style="plain"
name="server"
required="true"
type="object"
path="$.args.server">
</param>
<param style="plain"
name="flavorRef"
required="true"
type="string"
path="$.args.server.flavorRef">
</param>
<param style="plain"
name="imageRef"
required="true"
type="string"
path="$.args.server.imageRef">
</param>
<param style="plain"
name="personality"
required="false"
type="array"
path="$.args.server.personality">
</param>
<param style="plain"
name="path"
required="true"
type="string"
path="$.args.server.personality.[*].path">
</param>
<param style="plain"
name="contents"
required="true"
type="string"
path="$.args.server.personality.[*].contents">
</param>
<representation mediaType="application/json">
<param style="plain"
name="args"
required="false"
type="object"
path="$.args">
</param>
<param style="plain"
name="loadBalancers"
required="false"
type="array"
path="$.args.loadBalancers">
</param>
<param style="plain"
name="port"
required="true"
type="integer"
path="$.args.loadBalancers.[*].port">
</param>
<param style="plain"
name="loadBalancerId"
required="true"
type="integer"
path="$.args.loadBalancers.[*].loadBalancerId">
</param>
<param style="plain"
name="server"
required="true"
type="object"
path="$.args.server">
</param>
<param style="plain"
name="flavorRef"
required="true"
type="string"
path="$.args.server.flavorRef">
</param>
<param style="plain"
name="imageRef"
required="true"
type="string"
path="$.args.server.imageRef">
</param>
<param style="plain"
name="personality"
required="false"
type="array"
path="$.args.server.personality">
</param>
<param style="plain"
name="path"
required="true"
type="string"
path="$.args.server.personality.[*].path">
</param>
<param style="plain"
name="contents"
required="true"
type="string"
path="$.args.server.personality.[*].contents">
</param>
</representation>
</request>
<response status="204">
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badLaunchConfigImageRef"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badLaunchConfigFlavorRef"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml"
element="identity:badLaunchConfigPersonalityEncoding"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml"
element="identity:badLaunchConfigPersonalityFiles"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml"
element="identity:badLaunchConfigPersonalityFilesContent"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badLaunchConfigLb"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="pauseGroup"
name="POST">
<response status="204"/>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="resumeGroup"
name="POST">
<response status="204"/>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
name="GET"
id="getPolicies"
rax:roles="observer autoscale:observer">
<response status="200">
<representation mediaType="application/json">
</representation>
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badLimitArg"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
name="POST"
id="createPolicies">
<request>
<representation mediaType="application/json">
<param style="plain"
name="array"
required="true"
type="array"
path="$.[*]">
</param>
<param style="plain"
name="name"
required="true"
type="string"
path="$.[*].name">
</param>
<param style="plain"
name="args"
required="false"
type="object"
path="$.[*].args">
</param>
<param style="plain"
name="cron"
required="false"
type="string"
path="$.[*].args.cron">
</param>
<param style="plain"
name="at"
required="false"
type="string"
path="$.[*].args.at">
</param>
<param style="plain"
name="changePercent"
required="false"
type="number"
path="$.[*].changePercent">
</param>
<param style="plain"
name="cooldown"
required="true"
type="number"
path="$.[*].cooldown">
</param>
<param style="plain"
name="type"
required="true"
type="enum"
path="$.[*].type">
</param>
<param style="plain"
name="change"
required="false"
type="integer"
path="$.[*].change">
</param>
<param style="plain"
name="name"
required="true"
type="string"
path="$.[*].name">
</param>
<param style="plain"
name="args"
required="false"
type="object"
path="$.[*].args">
</param>
<param style="plain"
name="cron"
required="false"
type="string"
path="$.[*].args.cron">
</param>
<param style="plain"
name="at"
required="false"
type="string"
path="$.[*].args.at">
</param>
<param style="plain"
name="changePercent"
required="false"
type="number"
path="$.[*].changePercent">
</param>
<param style="plain"
name="cooldown"
required="true"
type="number"
path="$.[*].cooldown">
</param>
<param style="plain"
name="type"
required="true"
type="enum"
path="$.[*].type">
</param>
<param style="plain"
name="change"
required="false"
type="integer"
path="$.[*].change">
</param>
<param style="plain"
name="desiredCapacity"
required="false"
type="integer"
path="$.[*].desiredCapacity">
</param>
</representation>
</request>
<response status="201">
<representation mediaType="application/json">
</representation>
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badAtValue"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badCronValue"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml"
element="identity:missingArgsForSchedulePolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml"
element="identity:missingTimeForSchedulePolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml"
element="identity:doubleTimeArgsForSchedulePolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:missingChangeParam"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="multipleChangeParams"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
<response status="422">
<representation mediaType="application/xml" element="identity:overPolicyLimit"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
name="GET"
id="getPolicy"
rax:roles="observer autoscale:observer">
<response status="200">
<representation mediaType="application/json">
</representation>
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchPolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="putPolicy"
name="PUT">
<request>
<representation mediaType="application/json">
<param style="plain"
name="name"
required="true"
type="string"
path="$.scalingPolicies.[*].name">
</param>
<param style="plain"
name="args"
required="false"
type="object"
path="$.scalingPolicies.[*].args">
</param>
<param style="plain"
name="cron"
required="false"
type="string"
path="$.scalingPolicies.[*].args.cron">
</param>
<param style="plain"
name="at"
required="false"
type="string"
path="$.scalingPolicies.[*].args.at">
</param>
<param style="plain"
name="changePercent"
required="false"
type="number"
path="$.scalingPolicies.[*].changePercent">
</param>
<param style="plain"
name="cooldown"
required="true"
type="number"
path="$.scalingPolicies.[*].cooldown">
</param>
<param style="plain"
name="type"
required="true"
type="enum"
path="$.scalingPolicies.[*].type">
</param>
<param style="plain"
name="change"
required="false"
type="integer"
path="$.scalingPolicies.[*].change">
</param>
<param style="plain"
name="desiredCapacity"
required="false"
type="integer"
path="$.scalingPolicies.[*].desiredCapacity">
</param>
</representation>
</request>
<response status="204">
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badAtValue"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badCronValue"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml"
element="identity:missingArgsForSchedulePolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml"
element="identity:missingTimeForSchedulePolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml"
element="identity:doubleTimeArgsForSchedulePolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:missingChangeParam"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="multipleChangeParams"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchPolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="deletePolicy"
name="DELETE">
<response status="204">
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchPolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="executePolicy"
name="POST">
<response status="202">
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:cannotExecutePolicyNull"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:cannotExecutePolicyGroup"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchPolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
name="GET"
id="getWebhooks">
<response status="200">
<representation mediaType="application/json">
</representation>
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badQueryArg"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchPolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="createWebhook"
name="POST">
<request>
<param style="plain"
name="name"
required="true"
type="string"
path="$.[*].name">
</param>
<param style="plain"
name="metadata"
required="false"
type="object"
path="$.[*].metadata">
</param>
<representation mediaType="application/json">
<param style="plain"
name="name"
required="true"
type="string"
path="$.[*].name">
</param>
<param style="plain"
name="metadata"
required="false"
type="object"
path="$.[*].metadata">
</param>
</representation>
</request>
<response status="201">
<representation mediaType="application/json">
</representation>
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badRequestInvalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badRequestInvalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchPolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
<response status="422">
<representation mediaType="application/xml" element="identity:overWebhookLimit"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="getWebhook"
name="GET">
<response status="200">
<representation mediaType="application/json">
</representation>
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchWebhook"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchPolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="putWebhook"
name="PUT">
<request>
<param style="plain"
name="name"
type="string"
required="true"
path="$.[*].name">
</param>
<param style="plain"
name="metadata"
required="false"
type="object"
path="$.[*].metadata">
</param>
<representation mediaType="application/json">
<param style="plain"
name="name"
type="object"
required="true"
path="$.[*].name">
</param>
<param style="plain"
name="metadata"
required="true"
type="object"
path="$.[*].metadata">
</param>
</representation>
</request>
<response status="204">
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:invalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:validationError"/>
<representation mediaType="application/json"/>
</response>
<response status="415">
<representation mediaType="application/xml" element="identity:badMediaType"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badRequestInvalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="400">
<representation mediaType="application/xml" element="identity:badRequestInvalidJson"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchWebhook"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchPolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
<response status="422">
<representation mediaType="application/xml" element="identity:overWebhookLimit"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="deleteWebhook"
name="DELETE">
<response status="204">
</response>
<response status="401">
<representation mediaType="application/xml" element="identity:unauthorized"/>
<representation mediaType="application/json"/>
</response>
<response status="403">
<representation mediaType="application/xml" element="identity:forbidden"/>
<representation mediaType="application/json"/>
</response>
<response status="405">
<representation mediaType="application/xml" element="identity:badMethod"/>
<representation mediaType="application/json"/>
</response>
<response status="413">
<representation mediaType="application/xml" element="identity:overLimit"/>
<representation mediaType="application/json"/>
</response>
<response status="500">
<representation mediaType="application/xml" element="identity:internal"/>
<representation mediaType="application/json"/>
</response>
<response status="503">
<representation mediaType="application/xml" element="identity:serviceUnavailable"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchWebhook"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchPolicy"/>
<representation mediaType="application/json"/>
</response>
<response status="404">
<representation mediaType="application/xml" element="identity:noSuchGroup"/>
<representation mediaType="application/json"/>
</response>
</method>
<method xmlns:identity="http://docs.openstack.org/identity/api/v2.0"
xmlns:db="http://docbook.org/ns/docbook"
xmlns:csapi="http://docs.openstack.org/compute/api/v2"
xmlns:raxapi="http://docs.rackspace.com/volume/api/v1"
xmlns:osapi="http://docs.openstack.org/compute/api/v1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
xmlns="http://wadl.dev.java.net/2009/02"
id="anonymousExecute"
name="POST">
<response status="202"/>
</method>
</wadl:application>
swagger: 2
info:
title: Auto Scale
version: unknown
consumes:
- application/json
produces:
- application/json
paths:
/v1.0/{tenantId}/groups:
post:
operationId: createGroup
summary: Create scaling group
description: Creates a scaling group.
produces:
- application/json
responses:
201:
description: |-
The scaling group has been created.
examples:
application/json: |-
{
"group":{
"groupConfiguration":{
"cooldown":360,
"maxEntities":10,
"metadata":{
},
"minEntities":0,
"name":"testscalinggroup"
},
"id":"48692442-2dbe-4311-955e-bc29f02ae311",
"launchConfiguration":{
"args":{
"loadBalancers":[
{
"loadBalancerId":237935,
"port":80
}
],
"server":{
"OS-DCF:diskConfig":"AUTO",
"flavorRef":"performance1-2",
"imageRef":"7cf5ffc3-7b20-46fd-98e4-fefa9908d7e8",
"name":"autoscale_server",
"networks":[
{
"uuid":"11111111-1111-1111-1111-111111111111"
},
{
"uuid":"00000000-0000-0000-0000-000000000000"
}
]
}
},
"type":"launch_server"
},
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/829409/groups/48692442-2dbe-4311-955e-bc29f02ae311/",
"rel":"self"
}
],
"scalingPolicies":[
{
"args":{
"cron":"23 * * * *"
},
"change":1,
"cooldown":0,
"id":"9fa63149-c93d-4116-8069-74d68f48fadc",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/829409/groups/48692442-2dbe-4311-955e-bc29f02ae311/policies/9fa63149-c93d-4116-8069-74d68f48fadc/",
"rel":"self"
}
],
"name":"scale up by 1",
"type":"schedule"
}
],
"scalingPolicies_links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/829409/groups/48692442-2dbe-4311-955e-bc29f02ae311/policies/",
"rel":"policies"
}
],
"state":{
"active":[
],
"activeCapacity":0,
"desiredCapacity":0,
"name":"testscalinggroup",
"paused":false,
"pendingCapacity":0
}
}
}
parameters:
- name: launchConfiguration
required: true
in: body
description: >
<p>What to do when a new server is created. Its
configuration includes information about the
server image, the flavor of the server image,
and which load balancer to connect to. The
<code>type</code> parameter for <code>launchConfiguration</code>
must be
set to <code>launch_server</code>.</p>
- name: loadBalancers
required: false
in: body
description: >
<p>Details about one or more load balancers to
add new servers to. All servers are added to
these load balancers with the IP addresses of
their ServiceNet network. All servers are
enabled and equally weighted. Any new servers
that are not connected to the ServiceNet
network are not added to any load
balancers.</p>
- name: port
required: true
in: body
description: >
<p>The port number of the service (on the new
servers) to use for this particular load
balancer. In most cases, this port number is
80.</p>
- name: loadBalancerId
required: true
in: body
description: >
<p>The ID of the load balancer to which new
servers are added.</p>
- name: server
required: true
in: body
description: >
<p>The attributes that Auto Scale uses to create
a server. For more information, see: <a href="/servers/api/v2/cs-devguide/content/CreateServers.html">Create
Servers</a> in the cloud servers
developer's guide. The attributes that are
specified for the <code>server</code> parameter
are applied
to all new servers in the scaling group. The
specified server name is used as the base name
for all created servers.</p>
- name: flavorRef
required: true
in: body
description: >
<p>The flavor ID for the server. A flavor is a
resource configuration for a server. For more
information on available flavors, see the
<p>&#8220;Server
Flavors&#8221;</p>
section.</p>
- name: imageRef
required: true
in: body
description: >
<p>The ID of the cloud server image, after which
new server images are created. </p>
- name: personality
required: false
in: body
description: >
<p>The file path and/or the content that you
want to inject into a server image. For more
information, see the <a href="http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Personality-d1e2543.html">Server
Personality</a> documentation
for Rackspace Cloud Servers </p>
- name: path
required: true
in: body
description: >
<p>The path to the file that contains data that
is injected into the file system of the new
cloud server image.</p>
- name: contents
required: true
in: body
description: >
<p>The content items that are injected into the
file system of the new cloud server image.
</p>
- name: args
required: true
in: body
description: >
<p>The item to be configured. Must be
<code>server</code> or
<code>loadbalancer</code>. Most launch
configurations have both a server and a
loadbalancer.</p>
- name: type
required: true
in: body
description: >
<p>The type of the launch configuration.
Currently, this parameter must be set to
<code>launch_server</code>.</p>
- name: groupConfiguration
required: true
in: body
description: >
<p>The configuration options for the scaling
group that manages how many servers and load
balancers are in the scaling group. </p>
- name: maxEntities
required: false
in: body
description: "<p>The maximum number of entities that are\n \
\ allowed in the scaling group. If unconfigured, defaults to 1000.\
\ \n If this parameter is provided it must be\n \
\ set to an integer between 0 and 1000. </p>\n"
- name: name
required: true
in: body
description: >
<p>The name of the scaling group, does not need
to be unique.</p>
- name: cooldown
required: true
in: body
description: >
<p>The period of time, in seconds, that must
pass before any scaling can occur after the
previous scaling. Must be an integer between 0
and 86400 (24 hrs). </p>
- name: minEntities
required: true
in: body
description: >
<p>The minimum number of entities in the scaling
group. This number must be an integer between
0 and 1000. </p>
- name: metadata
required: false
in: body
description: >
<p>This optional parameter specifies custom
metadata for your group configuration. You can
use the metadata parameter for customer
automation, but it does not change any
functionality in Auto Scale. There currently
is no limitation on depth.</p>
- name: scalingPolicies
required: true
in: body
description: >
<p>Configuration information for your scaling
policies specifying how to modify the scaling
group and when. You can specify multiple
policies to manage a scaling group. </p>
- name: array
required: true
in: body
description: >
<p>An
array of scaling policies.</p>
- name: name
required: true
in: body
description: >
<p>A
name for the scaling policy. Must be unique
for each scaling policy.</p>
- name: args
required: false
in: body
description: >
<p>Configuration information for policies of
type <code>schedule</code>. Must be
either <code>at</code> or
<code>cron</code>, which are mutually
exclusive. Not required for policies of type
<code>webhook</code>. </p>
- name: cron
required: false
in: body
description: >
<p>The time when the policy is executed, as a
cron entry. For example, if this is parameter
is set to <code>1 0 * * *</code>, the
policy runs at one minute past midnight
(00:01) every day of the month, and every day
of the week. For more information about cron,
read:
http://en.wikipedia.org/wiki/Cron</p>
- name: at
required: false
in: body
description: >
<p>The time when this policy will
be executed. The time must be formatted
according to this service's custom <a href=" /cas/api/v1.0/autoscale-devguide/content/datetimeformat.html">Date
and Time format</a>, with seconds,
otherwise a 400 error may be returned. The
policy will be triggered within a 10-second
range of the time specified, so if you set the
<code>at</code> time to
<code>2013-05-19T08:07:08Z</code>, it
will be triggered anytime between 08:07:08 to
08:07:18. This property is mutually exclusive
with the <code>cron</code>
parameter.</p>
- name: changePercent
required: false
in: body
description: >
<p>The percent change to make in the number of
servers in the scaling group. If this number
is positive, the number of servers
increases by the given percentage. If this
parameter is set to a negative number, the
number of servers decreases by the given
percentage. The absolute change in the number
of servers is rounded to the nearest
integer. This means that if -X% of the current
number of servers translates to -0.5 or -0.25
or -0.75 servers, the actual number of servers
that are shut down is 1. If X% of the
current number of servers translates to 1.2 or
1.5 or 1.7 servers, the actual number of
servers that are launched is 2</p>
- name: cooldown
required: true
in: body
description: >
<p>The cooldown period, in seconds, before this
particular scaling policy can be executed
again. The cooldown period does not affect the
global scaling group cooldown. The minimum
value for this parameter is 0 seconds, the
maximum value is 86400 seconds (24 hrs).
</p>
- name: type
required: true
in: body
description: >
<p>The type of policy that runs for
the current release. This value can be either
"webhook" for webhook-based policies or
"schedule" for schedule-based
policies.</p>
- name: change
required: false
in: body
description: >
<p>The change to make in the number of servers
in the scaling group. This parameter must be
an integer. If the value is a positive
integer, the number of servers increases.
If the value is a negative integer, the number
of servers decreases.</p>
- name: desiredCapacity
required: false
in: body
description: >
<p>The desired server capacity of the scaling
the group, i.e. how many servers there should
be in the scaling group. This value must be an
absolute number. For example, if this
parameter is set to 10 and the executing
policy with this will bring the number of
servers to 10. The minimum allowed value is 0.
</p>
get:
operationId: listGroups
summary: List scaling groups
description: "Lists the scaling groups that are\n available for\
\ a specified tenant."
produces:
- application/json
responses:
200:
description: |-
The request succeeded and the response contains the list of scaling groups.
examples:
application/json: |-
{
"groups":[
{
"id":"e41380ae-173c-4b40-848a-25c16d7fa83d",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/e41380ae-173c-4b40-848a-25c16d7fa83d/",
"rel":"self"
}
],
"state":{
"active":[
],
"activeCapacity":0,
"desiredCapacity":0,
"paused":false,
"pendingCapacity":0,
"name":"testscalinggroup198547"
}
},
{
"id":"f82bb000-f451-40c8-9dc3-6919097d2f7e",
"state":{
"active":[
],
"activeCapacity":0,
"desiredCapacity":0,
"paused":false,
"pendingCapacity":0,
"name":"testscalinggroup198547"
},
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/f82bb000-f451-40c8-9dc3-6919097d2f7e/",
"rel":"self"
}
]
}
],
"groups_links":[
]
}
/v1.0/{tenantId}/groups/{groupId}:
get:
operationId: showGroupManifestWebhook
summary: Show scaling group details including webhooks
description: "Shows configuration details for a\n specified\
\ scaling group and its associated webhooks."
produces:
- application/json
responses:
200:
description: |-
The request succeeded and the response contains details about the specified scaling group, including associated webhooks.
examples:
application/json: "{\n \"group\": {\n \"groupConfiguration\": {\n\
\ \"cooldown\": 60,\n \"maxEntities\": 0,\n \"metadata\"\
: {},\n \"minEntities\": 0,\n \"name\": \"smallest possible\
\ launch config group\"\n },\n \"state\": {\n \"active\"\
: [],\n \"activeCapacity\": 0,\n \"desiredCapacity\": 0,\n\
\ \"paused\": false,\n \"pendingCapacity\": 0\n },\n \
\ \"id\": \"605e13f6-1452-4588-b5da-ac6bb468c5bf\",\n \"launchConfiguration\"\
: {\n \"args\": {\n \"server\": {}\n },\n \"type\"\
: \"launch_server\"\n },\n \"links\": [\n {\n \"href\"\
: \"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/\"\
,\n \"rel\": \"self\"\n }\n ],\n \"scalingPolicies\"\
: [\n {\n \"changePercent\": -5.5,\n \"cooldown\"\
: 1800,\n \"id\": \"eb0fe1bf-3428-4f34-afd9-a5ac36f60511\",\n\
\ \"links\": [\n {\n \"href\": \"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/eb0fe1bf-3428-4f34-afd9-a5ac36f60511/\"\
,\n \"rel\": \"self\"\n }\n ],\n \
\ \"name\": \"scale down by 5.5 percent\",\n \"type\": \"\
webhook\",\n \"webhooks\": [\n {\n \"id\"\
:\"05f7d9d9-b9d0-40ac-8d3b-610197775c7f\",\n \"name\": \"\
automatically generated\",\n \"metadata\": {},\n \
\ \"links\": [\n {\n \"href\": \"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/eb0fe1bf-3428-4f34-afd9-a5ac36f60511/webhooks/05f7d9d9-b9d0-40ac-8d3b-610197775c7f/\"\
,\n \"rel\": \"self\"\n },\n \
\ {\n \"href\": \"https://dfw.autoscale.api.rackspacecloud.com/v1.0/execute/1/392be67bacfd1adf54e4f9fbc2b40873b9c7c3128315647f46d94c4b5c56b4d6/\"\
,\n \"rel\": \"capability\"\n }\n \
\ ]\n }\n ],\n \"webhooks_links\": [\n \
\ {\n \"href\": \"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/eb0fe1bf-3428-4f34-afd9-a5ac36f60511/webhooks/\"\
,\n \"rel\": \"webhooks\"\n }\n ]\n \
\ }\n ],\n \"scalingPolicies_links\": [\n {\n \"href\"\
: \"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/\"\
, \n \"rel\": \"policies\"\n }\n ]\n }\n}\n"
delete:
operationId: deleteGroup
summary: Delete scaling group
description: "Deletes a specified scaling\n group."
produces: []
responses:
204:
description: |-
The delete scaling group request succeeded.
/v1.0/{tenantId}/groups/{groupId}/servers/{serverId}:
delete:
operationId: deleteGroupServer
summary: Delete server from scaling group
description: Deletes and replaces a specified server in a scaling group.
produces:
- application/json
responses:
202:
description: |-
The request succeeded. No response body is returned.
/v1.0/{tenantId}/groups/{groupId}/state:
get:
operationId: getGroupState
summary: Get scaling group state
description: "Gets the current state of a scaling\n group."
produces:
- application/json
responses:
200:
description: |-
The request succeeded and the response describes the state of the specified scaling group.
examples:
application/json: |-
{
"group":{
"paused":false,
"pendingCapacity":0,
"name":"testscalinggroup198547",
"active":[
],
"activeCapacity":0,
"desiredCapacity":0
}
}
/v1.0/{tenantId}/groups/{groupId}/config:
get:
operationId: getGroupConfig
summary: Show scaling group configuration
description: "Shows the configuration for a\n scaling group."
produces:
- application/json
responses:
200:
description: |-
The request succeeded and the response contains configuration details for the specified scaling group.
examples:
application/json: |-
{
"groupConfiguration":{
"cooldown":60,
"maxEntities":0,
"metadata":{
},
"minEntities":0,
"name":"smallest possible group"
}
}
put:
operationId: putGroupConfig
summary: Update scaling group configuration
description: "Updates the configuration for the\n scaling group."
produces: []
responses:
204:
description: |-
The update group configuration request succeeded.
parameters:
- name: maxEntities
required: true
in: body
description: >
<p>The maximum number of entities that are
allowed in the scaling group. If left unconfigured,
defaults to 1000.
If this value is provided it must be set
to an integer between 0 and 1000. </p>
- name: cooldown
required: true
in: body
description: >
<p>The cooldown period, in seconds, before more
changes can happen. This number must be an
integer between 0 and 86400 (24 hrs). </p>
- name: name
required: true
in: body
description: >
<p>The name of the scaling group. This name does
not have to be unique.</p>
- name: minEntities
required: true
in: body
description: >
<p>The minimum number of entities in the scaling
group. This number must be an integer between
0 and 1000. </p>
- name: metadata
required: true
in: body
description: >
<p>This optional parameter specifies custom
metadata for your group configuration. You can
use the metadata parameter for custom
automation, but it does not change any
functionality in Auto Scale. There currently
is no limitation on depth.</p>
/v1.0/{tenantId}/groups/{groupId}/launch:
get:
operationId: getLaunchConfig
summary: Show launch configuration
description: "Shows launch configuration details\n for a specified\
\ scaling group."
produces:
- application/json
responses:
200:
description: |-
The request succeeded and the response contains launch configuration details for the specified scaling group.
examples:
application/json: |-
{
"launchConfiguration":{
"type":"launch_server",
"args":{
"server":{
"flavorRef":"performance1-4",
"name":"webhead",
"imageRef":"0d589460-f177-4b0f-81c1-8ab8903ac7d8",
"OS-DCF:diskConfig":"AUTO",
"metadata":{
"mykey":"myvalue"
},
"personality":[
],
"networks":[
{
"uuid":"11111111-1111-1111-1111-111111111111"
}
]
},
"loadBalancers":[
]
}
}
}
put:
operationId: putLaunchConfig
summary: Update launch configuration
description: "Updates an existing launch\n configuration for\
\ the specified scaling group."
produces: []
responses:
204:
description: |-
The update launch configuration request succeeded.
parameters:
- name: args
required: false
in: body
description: >
<p>The item to be configured. Must be
<code>server</code> or
<code>loadbalancer</code>. Most launch
configurations have both a server and a
load balancer configured.</p>
- name: loadBalancers
required: false
in: body
description: >
<p>Details about one or more load balancers to
add new servers to. All servers will be added
to these load balancers with the IP addresses
of their ServiceNet network. All servers will
be enabled and equally weighted. Any new
servers that are not connected to the
ServiceNet network will not be added to any
load balancers.</p>
- name: port
required: true
in: body
description: >
<p>The port number of the service (on the new
servers) to use for this particular load
balancer. In most cases, this port number is
80.</p>
- name: loadBalancerId
required: true
in: body
description: >
<p>The ID of the load balancer to which new
servers will be added.</p>
- name: server
required: true
in: body
description: >
<p>The attributes Auto Scale will use to create
a new server. For more information, see:
<a href=" /servers/api/v2/cs- devguide/content/CreateServers.html">"Create
Servers"</a> in the cloud servers
developer's guide. The attributes that are
specified for the server entity will apply to
all new servers in the scaling group. The
configured server name is the base for created
servers.</p>
- name: flavorRef
required: true
in: body
description: >
<p>The flavor of the server image. Specifies the
flavor Id for the server. A flavor is a
resource configuration for a server. For more
information on available flavors, see the
<p>&#8220;Server
Flavors&#8221;</p>
section.</p>
- name: imageRef
required: true
in: body
description: >
<p>The ID of the cloud server image, from which
new server images will be created. </p>
- name: personality
required: false
in: body
description: >
<p>The file path and/or the content that you
want to inject into a server image. For more
information, see the <a href="http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Server_Personality-d1e2543.html">Server
Personality</a> documentation
for Rackspace Cloud Servers </p>
- name: path
required: true
in: body
description: >
<p>The path to the file that contains data that
will be injected into the file system of the
new cloud server image. </p>
- name: contents
required: true
in: body
description: >
<p>The content items that will be injected into
the file system of the new cloud server image.
</p>
/v1.0/{tenantId}/groups/{groupId}/pause:
post:
operationId: pauseGroup
summary: Pause group policy execution
description: "Pauses the execution of all scaling\n policies\
\ for a specified scaling group."
produces: []
responses:
204:
description: |-
204 response
/v1.0/{tenantId}/groups/{groupId}/resume:
post:
operationId: resumeGroup
summary: Resume group policy execution
description: "Resumes the execution of all\n scaling policies\
\ for a specified scaling group."
produces: []
responses:
204:
description: |-
204 response
/v1.0/{tenantId}/groups/{groupId}/policies:
get:
operationId: getPolicies
summary: List policies
description: "Lists scaling policies that are\n available to\
\ a specified scaling group."
produces:
- application/json
responses:
200:
description: |-
The request succeeded and the response contains a list of scaling policies for the specified scaling group.
examples:
application/json: |-
{
"policies":[
{
"args":{
"cron":"23 * * * *"
},
"changePercent":-5.5,
"cooldown":1800,
"id":"5f26e16c-5fa7-4d4f-8e78-257ea711389f",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/5f26e16c-5fa7-4d4f-8e78-257ea711389f/",
"rel":"self"
}
],
"name":"scale down by 5.5 percent at 11pm",
"type":"schedule"
},
{
"args":{
"at":"2013-12-05T03:12:00Z"
},
"changePercent":-5.5,
"cooldown":1800,
"id":"9f7c5801-6b25-4f5a-af07-4bb752e23d53",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/9f7c5801-6b25-4f5a-af07-4bb752e23d53/",
"rel":"self"
}
],
"name":"scale down by 5.5 percent on the 5th",
"type":"schedule"
},
{
"changePercent":-5.5,
"cooldown":1800,
"id":"eb0fe1bf-3428-4f34-afd9-a5ac36f60511",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/eb0fe1bf-3428-4f34-afd9-a5ac36f60511/",
"rel":"self"
}
],
"name":"scale down by 5.5 percent",
"type":"webhook"
},
{
"cooldown":1800,
"desiredCapacity":5,
"id":"2f45092a-fde7-4461-a67a-3519e0366cd6",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/2f45092a-fde7-4461-a67a-3519e0366cd6/",
"rel":"self"
}
],
"name":"set group to 5 servers",
"type":"webhook"
},
{
"change":1,
"cooldown":1800,
"id":"e36e6a43-2a7a-433c-918c-39fa45b75d12",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/e36e6a43-2a7a-433c-918c-39fa45b75d12/",
"rel":"self"
}
],
"name":"scale up by one server",
"type":"webhook"
}
],
"policies_links":[
]
}
post:
operationId: createPolicies
summary: Create policy
description: "Creates one or more scaling\n policies for a specified\
\ scaling group."
produces:
- application/json
responses:
201:
description: |-
The scaling policy has been created.
examples:
application/json: |-
{
"policies":[
{
"args":{
"at":"2013-12-05T03:12:00Z"
},
"changePercent":-5.5,
"cooldown":1800,
"id":"9f7c5801-6b25-4f5a-af07-4bb752e23d53",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/9f7c5801-6b25-4f5a-af07-4bb752e23d53/",
"rel":"self"
}
],
"name":"scale down by 5.5 percent on the 5th",
"type":"schedule"
},
{
"cooldown":1800,
"desiredCapacity":5,
"id":"b0555a35-b2cb-4f0e-8743-d59e1621b980",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/b0555a35-b2cb-4f0e-8743-d59e1621b980/",
"rel":"self"
}
],
"name":"set group to 5 servers",
"type":"webhook"
},
{
"args":{
"cron":"23 * * * *"
},
"changePercent":-5.5,
"cooldown":1800,
"id":"30707675-8e7c-4ea5-9358-c21648afcf29",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/30707675-8e7c-4ea5-9358-c21648afcf29/",
"rel":"self"
}
],
"name":"scale down by 5.5 percent at 11pm",
"type":"schedule"
},
{
"change":1,
"cooldown":1800,
"id":"1f3bdd08-7aae-4009-a3b7-49aa47fc0876",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/1f3bdd08-7aae-4009-a3b7-49aa47fc0876/",
"rel":"self"
}
],
"name":"scale up by one server",
"type":"webhook"
},
{
"changePercent":-5.5,
"cooldown":1800,
"id":"5afac18c-41e5-49d6-aba8-dec17c0d8ed7",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/5afac18c-41e5-49d6-aba8-dec17c0d8ed7/",
"rel":"self"
}
],
"name":"scale down by 5.5 percent",
"type":"webhook"
}
]
}
parameters:
- name: array
required: true
in: body
description: >
<p>An array of scaling
policies.</p>
- name: name
required: true
in: body
- name: args
required: false
in: body
- name: cron
required: false
in: body
- name: at
required: false
in: body
- name: changePercent
required: false
in: body
- name: cooldown
required: true
in: body
- name: type
required: true
in: body
- name: change
required: false
in: body
- name: name
required: true
in: body
- name: args
required: false
in: body
description: >
<p>Additional configuration information for
policies of type <code>schedule</code>.
This parameter is not required for policies of
type <code>webhook</code>. This
parameter must be set to either
<code>at</code> or
<code>cron</code>, which are mutually
exclusive. </p>
- name: cron
required: false
in: body
description: >
<p>The time when the policy will be executed, as
a cron entry. For example, if this is
parameter is set to <code>1 0 * *
*</code>, the policy will be executed at
one minute past midnight (00:01) every day of
the month, and every day of the week. For more
information about cron, read:
http://en.wikipedia.org/wiki/Cron</p>
- name: at
required: false
in: body
description: >
<p>The time when this policy will be executed.
The time must be formatted according to this
service's custom <a href=" /cas/api/v1.0/autoscale-devguide/content/datetimeformat.html">Date
and Time format</a>, with seconds,
otherwise a 400 error may be returned. The
policy will be triggered within a 10-second
range of the time specified, so if you set the
<code>at</code> time to
<code>2013-05-19T08:07:08Z</code>, it
will be triggered anytime between 08:07:08 to
08:07:18. This property is mutually exclusive
with the <code>cron</code>
parameter.</p>
- name: changePercent
required: false
in: body
description: >
<p>The percent change to make in the number of
servers in the scaling group. If this number
is positive, the number of servers will
increase by the given percentage. If this
parameter is set to a negative number, the
number of servers decreases by the given
percentage. The absolute change in the number
of servers will be rounded to the nearest
integer. This means that if -X% of the current
number of servers translates to -0.5 or -0.25
or -0.75 servers, the actual number of servers
that will be shut down is 1. If X% of the
current number of servers translates to 1.2 or
1.5 or 1.7 servers, the actual number of
servers that will be launched is 2</p>
- name: cooldown
required: true
in: body
description: >
<p>The cooldown period, in seconds, before this
particular scaling policy can be executed
again. The policy cooldown period does not
affect the global scaling group cooldown. The
minimum value for this parameter is 0 seconds,
the maximum value is 86400 seconds (24 hrs). </p>
- name: type
required: true
in: body
description: >
<p>The type of policy that will be executed for
the current release, this value can be either
<code>webhook</code> or
<code>schedule</code>.</p>
- name: change
required: false
in: body
description: >
<p>The change to make in the number of servers
in the scaling group. This parameter must be
an integer. If the value is a positive
integer, the number of servers increases.
If the value is a negative integer, the number
of servers decreases.</p>
- name: desiredCapacity
required: false
in: body
description: "<p>The desired server capacity of\n the\
\ scaling the group; that is, how many\n servers\
\ should be in the scaling group. This\n value must\
\ be an absolute number, greater than or equal to zero. \n \
\ For example, if this parameter is set to ten, executing the\
\ policy brings the number\n of servers to ten. The\
\ minimum allowed value is\n zero. Note that the\
\ configured group maxEntities and minEntities takes precedence\n \
\ over this setting.</p>\n"
/v1.0/{tenantId}/groups/{groupId}/policies/{policyId}:
delete:
operationId: deletePolicy
summary: Delete policy
description: "Deletes a specified scaling policy\n from the specified\
\ tenant."
produces: []
responses:
204:
description: |-
The delete scaling policy request succeeded.
get:
operationId: getPolicy
summary: Show policy details
description: "Shows scaling policy\n details."
produces:
- application/json
responses:
200:
description: |-
The request succeeded and the response contains details about the specified scaling policy.
examples:
application/json: |-
{
"policy":{
"args":{
"cron":"23 * * * *"
},
"changePercent":-5.5,
"cooldown":1800,
"id":"5f26e16c-5fa7-4d4f-8e78-257ea711389f",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/5f26e16c-5fa7-4d4f-8e78-257ea711389f/",
"rel":"self"
}
],
"name":"scale down by 5.5 percent at 11pm",
"type":"schedule"
}
}
put:
operationId: putPolicy
summary: Update policy
description: "Updates an existing scaling policy\n for the specified\
\ tenant."
produces: []
responses:
204:
description: |-
The update scaling policy request succeeded.
parameters:
- name: name
required: true
in: body
description: >
<p>
<p>A name for the scaling policy.
This name must be unique for each scaling
policy.</p>
</p>
- name: args
required: false
in: body
description: >
<p>
<p>Additional configuration
information for policies of type "schedule."
This parameter is not required for policies of
type <code>webhook</code>. This parameter must be
set to
either <code>at</code> or <code>cron</code>, which
are mutually exclusive</p>
</p>
- name: cron
required: false
in: body
description: >
<p>
<p>The time when the
policy runs, as a cron entry. For example, if
you set this parameter to <code>1 0 * *
*</code>, the policy runs at one minute
past midnight (00:01) every day of the month,
and every day of the week. For more
information about cron, see <a href="http://en.wikipedia.org/wiki/Cron">http://en.wikipedia.org/wiki/Cron</a>.</p>
</p>
- name: at
required: false
in: body
description: >
<p>The time when this policy will
be executed. The time must be formatted
according to this service's custom <a href=" /cas/api/v1.0/autoscale-devguide/content/datetimeformat.html">Date
and Time format</a>, with seconds,
otherwise a 400 error may be returned. The
policy will be triggered within a 10-second
range of the time specified, so if you set the
<code>at</code> time to
<code>2013-05-19T08:07:08Z</code>, it
will be triggered anytime between 08:07:08 to
08:07:18. This property is mutually exclusive
with the <code>cron</code>
parameter.</p>
- name: changePercent
required: false
in: body
description: >
<p>
<p>The percent change to make in
the number of servers in the scaling group. If
this number is positive, the number of servers
increases by the given percentage. If this
parameter is set to a negative number, the
number of servers decreases by the given
percentage. The absolute change in the number
of servers is rounded to the nearest integer.
This means that if -X% of the current number
of servers translates to -0.5 or -0.25 or
-0.75 servers, the actual number of servers
that are shut down is 1. If X% of the current
number of servers translates to 1.2 or 1.5 or
1.7 servers, the actual number of servers that
are launched is 2.</p>
</p>
- name: cooldown
required: true
in: body
description: >
<p>
<p>The cooldown period, in
seconds, before this particular scaling policy
can run again. The policy cooldown period does not
affect the global scaling group cooldown. The
minimum value for this parameter is 0 seconds.
The maximum value is 86400 seconds (24
hrs).</p>
</p>
- name: type
required: true
in: body
description: >
<p>
<p>The type of policy that runs. Currently, this
value can be
either <code>webhook</code> or <code>schedule</code>.</p>
</p>
- name: change
required: false
in: body
description: >
<p>
<p>The change to make in the
number of servers in the scaling group. This
parameter must be an integer. If the value is
a positive integer, the number of servers
increases. If the value is a negative integer,
the number of servers
decreases.</p>
</p>
- name: desiredCapacity
required: false
in: body
description: "<p>\n <p>The desired server capacity\
\ of\n the scaling the group; that is, how many\n\
\ servers should be in the scaling group. This\n\
\ value must be an absolute number, greater than\
\ or equal to zero. \n For example, if this parameter\
\ is set to ten, executing the policy brings the number\n \
\ of servers to ten. The minimum allowed value is\n \
\ zero. Note that the configured group maxEntities and minEntities\
\ takes precedence\n over this setting.</p>\n \
\ </p>\n"
/v1.0/{tenantId}/groups/{groupId}/policies/{policyId}/execute:
post:
operationId: executePolicy
summary: Execute policy
description: "Runs a specified scaling\n policy."
produces: []
responses:
202:
description: |-
The execute policy request was accepted. The actual execution may be delayed, but will be attempted if no errors are returned. Use the "GET scaling group state" method to see if the policy was executed.
/v1.0/{tenantId}/groups/{groupId}/policies/{policyId}/webhooks:
get:
operationId: getWebhooks
summary: List webhooks for the policy
description: "Lists web hooks and their IDs for a\n specified\
\ scaling policy."
produces:
- application/json
responses:
200:
description: |-
The request succeeded and the response contains a list of webhooks for the specified scaling policy.
examples:
application/json: |2-
{
"webhooks":[
{
"id":"152054a3-e0ab-445b-941d-9f8e360c9eed",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/eb0fe1bf-3428-4f34-afd9-a5ac36f60511/webhooks/152054a3-e0ab-445b-941d-9f8e360c9eed/",
"rel":"self"
},
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/execute/1/0077882e9626d83ef30e1ca379c8654d86cd34df3cd49ac8da72174668315fe8/",
"rel":"capability"
}
],
"metadata":{
"notes":"PagerDuty will fire this webhook"
},
"name":"PagerDuty"
},
{
"id":"23037efb-53a9-4ae5-bc33-e89a56b501b6",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/eb0fe1bf-3428-4f34-afd9-a5ac36f60511/webhooks/23037efb-53a9-4ae5-bc33-e89a56b501b6/",
"rel":"self"
},
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/execute/1/4f767340574433927a26dc747253dad643d5d13ec7b66b764dcbf719b32302b9/",
"rel":"capability"
}
],
"metadata":{
},
"name":"Nagios"
}
],
"webhooks_links":[
]
}
post:
operationId: createWebhook
summary: Create webhook
description: "Creates one or more webhooks for\n the specified\
\ scaling policy."
produces:
- application/json
responses:
201:
description: |-
The webhook has been created.
examples:
application/json: |-
{
"webhooks":[
{
"id":"152054a3-e0ab-445b-941d-9f8e360c9eed",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/eb0fe1bf-3428-4f34-afd9-a5ac36f60511/webhooks/152054a3-e0ab-445b-941d-9f8e360c9eed/",
"rel":"self"
},
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/execute/1/0077882e9626d83ef30e1ca379c8654d86cd34df3cd49ac8da72174668315fe8/",
"rel":"capability"
}
],
"metadata":{
"notes":"PagerDuty will fire this webhook"
},
"name":"PagerDuty"
},
{
"id":"23037efb-53a9-4ae5-bc33-e89a56b501b6",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/eb0fe1bf-3428-4f34-afd9-a5ac36f60511/webhooks/23037efb-53a9-4ae5-bc33-e89a56b501b6/",
"rel":"self"
},
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/execute/1/4f767340574433927a26dc747253dad643d5d13ec7b66b764dcbf719b32302b9/",
"rel":"capability"
}
],
"metadata":{
},
"name":"Nagios"
}
]
}
parameters:
- name: name
required: true
in: body
description: >
<p>This parameter specifies a name for the
webhook for logging purposes</p>
- name: metadata
required: false
in: body
description: >
<p>This parameter specifies user-provided
key-value metadata. Both keys and values
should be strings not exceeding 256 characters
in length.</p>
/v1.0/{tenantId}/groups/{groupId}/policies/{policyId}/webhooks/{webhookId}:
get:
operationId: getWebhook
summary: Show webhook details
description: "Shows webhook details for a\n specified scaling\
\ policy."
produces:
- application/json
responses:
200:
description: |-
The request succeeded and the response contains details about the specified webhook.
examples:
application/json: |2-
{
"webhook":{
"id":"23037efb-53a9-4ae5-bc33-e89a56b501b6",
"links":[
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/eb0fe1bf-3428-4f34-afd9-a5ac36f60511/webhooks/23037efb-53a9-4ae5-bc33-e89a56b501b6/",
"rel":"self"
},
{
"href":"https://dfw.autoscale.api.rackspacecloud.com/v1.0/execute/1/4f767340574433927a26dc747253dad643d5d13ec7b66b764dcbf719b32302b9/",
"rel":"capability"
}
],
"metadata":{
},
"name":"Nagios"
}
}
put:
operationId: putWebhook
summary: Update webhook
description: "Updates a webhook for a specified\n tenant and\
\ scaling policy."
produces: []
responses:
204:
description: |-
The update webhook request succeeded.
parameters:
- name: name
required: true
in: body
description: >
<p>This parameter specifies a name for the
webhook for logging purposes.</p>
- name: metadata
required: true
in: body
description: >
<p>This parameter specifies user-provided
key-value metadata. Both keys and values
should be strings not exceeding 256 characters
in length. An empty value, <code>{ }</code> is acceptable.</p>
delete:
operationId: deleteWebhook
summary: Delete webhook
description: "Deletes a webhook for a specified\n scaling policy."
produces: []
responses:
204:
description: |-
The delete webhook request succeeded.
/v1.0/execute/{capability_version}/{capability_hash}:
post:
operationId: anonymousExecute
summary: Execute anonymous webhook
description: Runs an anonymous webhook.
produces: []
responses:
202:
description: |-
The execute webhook request was accepted.
host: '{data_center}.autoscale.api.rackspacecloud.com'
schemes:
- http
- https
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment