Scaling groups#
The operations described in this section help you create and manage scaling groups.
List scaling groups#
GET /v1.0/{tenantId}/groups
This operation lists the scaling groups that are available for a specified tenant.
This table shows the possible response codes for this operation:
Response Code |
Name |
Description |
---|---|---|
200 |
OK |
The request succeeded and the response contains the list of scaling groups. |
400 |
InvalidQueryArgument |
The “limit” query argument is not a valid integer. |
401 |
InvalidCredentials |
The X-Auth-Token the user supplied is bad. |
403 |
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. |
405 |
InvalidMethod |
The method used is unavailable for the endpoint. |
413 |
RateLimitError |
The user has surpassed their rate limit. |
500 |
InternalError |
An error internal to the application has occurred, please file a bug report. |
503 |
ServiceUnavailable |
The requested service is unavailable, please file a bug report. |
Request#
This table shows the URI parameters for the request:
Name |
Type |
Description |
---|---|---|
{tenantId} |
String (Required) |
A subscriber to the auto scaling service. |
X-Auth-Token |
String (Required) |
A valid authentication token. |
This operation does not accept a request body.
Response#
Example List scaling groups: JSON response
{
"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":[
]
}
Create scaling group#
POST /v1.0/{tenantId}/groups
This operation creates a scaling group.
This operation 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.
If the request succeeds, the response body describes the created group in JSON format. The response includes an ID and links for the group.
The number of resources entities that are specified in minEntities
and maxEntities
overrides the amount of resources that can be specified in a policy. See also Using the min and max values with policies.
You can specify custom metadata for your group configuration using the optional metadata
parameter.
Note
Group metadata is stored within the Auto Scale API and can be queried. You can use the metadata
parameter for
customer automation, but it does not change any functionality in Autoscale.
This table shows the possible response codes for this operation:
Response Code |
Name |
Description |
---|---|---|
201 |
Created |
The scaling group has been created.Creates an auto scaling endpoint. |
400 |
InvalidJsonError |
The request is refused because the body was invalid JSON”. |
400 |
InvalidLaunchConfiguration |
The “flavorRef” value is invalid. |
400 |
InvalidLaunchConfiguration |
The “imageRef” value is invalid or not active. |
400 |
InvalidLaunchConfiguration |
The base64 encoding for the “path” argument in the “personality” parameter is invalid. |
400 |
InvalidLaunchConfiguration |
The content of the files in the “personality” parameter exceeds the maximum size limit allowed. |
400 |
InvalidLaunchConfiguration |
The load balancer ID provided is invalid. |
400 |
InvalidLaunchConfiguration |
The number of files in the “personality” parameter exceeds maximum limit. |
400 |
InvalidMinEntities |
The “minEntities” value is greater than the “maxEntities” value. |
400 |
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. “. |
401 |
InvalidCredentials |
The X-Auth-Token the user supplied is bad. |
403 |
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. |
405 |
InvalidMethod |
The method used is unavailable for the endpoint. |
413 |
RateLimitError |
The user has surpassed their rate limit. |
415 |
UnsupportedMediaType |
The request is refused because the content type of the request is not “application/json”. |
422 |
ScalingGroupOverLimitsError |
The user has reached their quota for scaling groups, currently 100. |
500 |
InternalError |
An error internal to the application has occurred, please file a bug report. |
503 |
ServiceUnavailable |
The requested service is unavailable, please file a bug report. |
Request#
This table shows the URI parameters for the request:
Name |
Type |
Description |
---|---|---|
{tenantId} |
String (Required) |
A subscriber to the auto scaling service. |
X-Auth-Token |
String (Required) |
A valid authentication token. |
This table shows the body parameters for the request:
Name |
Type |
Description |
---|---|---|
launchConfiguration |
Object (Required) |
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 cloud load balancer or RackConnectV3 load
balancer pool to which to connect. You must set
the |
launchConfiguration.args |
Object (Required) |
The configuration used to create new servers in
the scaling group. You must specify the |
launchConfiguration.args.loadBalancers |
Array (Optional) |
One or more cloud load balancers or RackConnectV3 load balancer pools to which to add new servers. For background information and an example configuration, see Cloud Bursting with RackConnect v3. 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. |
launchConfiguration.args.loadBalancers.[*].port |
Integer (Required) |
The port number of the service (on the new servers) to use for this particular cloud load balancer. In most cases, this port number is 80. .. note:: This parameter is NOT required if you are using RackConnectV3 and should be left empty. |
launchConfiguration.args.loadBalancers.[*].loadBalancerId |
String (Required) |
The ID of the cloud load balancer, or RackConnectV3 load balancer pool, to which new servers are added. For cloud load balancers set the ID as an integer, for RackConnectV3 set the UUID as a string. NOTE that when using RackConnectV3, this value is supplied to you by Rackspace Support after they configure your load balancer pool. |
launchConfiguration.args.server |
Object (Required) |
The attributes that Auto Scale uses to create a new server. The attributes that you specify for the server entity apply to all new servers in the scaling group, including the server name. Note the server arguments are directly passed to nova when creating a server. For more information see Create Your Server with the nova Client |
launchConfiguration.args.server.flavorRef |
String (Required) |
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, see Server flavors. |
launchConfiguration.args.server.imageRef |
String (Required) |
The ID of the cloud server image, after which new server images are created. |
launchConfiguration.args.server.diskConfig |
String (Required) |
How the disk on new servers is partitioned. Valid
values are |
launchConfiguration.args.server.personality |
Array (Required) |
The file path and/or the content that you want to inject into a server image. For more information, see the Server personality documentation for Rackspace Cloud Servers. |
launchConfiguration.args.server.personality.[*].path |
String (Required) |
The path to the file that contains data that is injected into the file system of the new cloud server image. |
launchConfiguration.args.server.personality.[*].contents |
String (Required) |
The content items that is injected into the file system of the new cloud server image. |
launchConfiguration.args.server.user_data |
String (Optional) |
The base64 encoded string of your create server template. |
launchConfiguration.type |
String (Required) |
The type of the launch configuration. For this
release, this parameter must be set to
|
groupConfiguration |
Object (Required) |
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. |
groupConfiguration.maxEntities |
Object (Optional) |
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. |
groupConfiguration.name |
String (Required) |
The name of the scaling group. This name does not need to be unique. |
groupConfiguration.cooldown |
Integer (Required) |
The cool-down period before more entities are added, in seconds. This number must be an integer between 0 and 86400 (24 hrs). |
groupConfiguration.minEntities |
Integer (Required) |
The minimum number of entities in the scaling group. This number must be an integer between 0 and 1000. |
groupConfiguration.metadata |
Object (Optional) |
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. |
scalingPolicies |
Array (Required) |
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. |
scalingPolicies.[*] |
Array (Required) |
An array of scaling policies. |
scalingPolicies.[*].name |
String (Required) |
A name for the scaling policy. This name must be unique for each scaling policy. |
scalingPolicies.[*].args |
Object (Optional) |
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 |
scalingPolicies.[*].args.cron |
String (Optional) |
The recurring time when the policy runs as a cron
entry. For example, if you set this parameter to
|
scalingPolicies.[*].args.at |
String (Optional) |
The time when this policy runs. This property is
mutually exclusive with the |
scalingPolicies.[*].changePercent |
Number (Optional) |
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. |
scalingPolicies.[*].cooldown |
Number (Required) |
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). |
scalingPolicies.[*].type |
Enum (Required) |
The type of policy that runs for the current
release, this value can be either |
scalingPolicies.[*].change |
Integer (Optional) |
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. |
scalingPolicies.[*].desiredCapacity |
Integer (Optional) |
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. |
Example Create scaling group: JSON request
{
"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 * * * *"
}
}
]
}
Response#
This table shows the header parameters for the response:
Name |
Type |
Description |
---|---|---|
location |
Anyuri (Required) |
Creates an auto scaling endpoint. |
Example Create scaling group: JSON response
{
"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
}
}
}
Show scaling group configuration#
GET /v1.0/{tenantId}/groups/{groupId}/config
This operation shows the configuration for a scaling group.
thows the configuration for a specified scaling group, including group settings, launch configuration settings, and policy settings. The configuration is returned in the response body in JSON format.
This table shows the possible response codes for this operation:
Response Code |
Name |
Description |
---|---|---|
200 |
OK |
The request succeeded and the response contains configuration details for the specified scaling group. |
401 |
InvalidCredentials |
The X-Auth-Token the user supplied is bad. |
403 |
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. |
404 |
NoSuchScalingGroupError |
The specified scaling group was not found. |
405 |
InvalidMethod |
The method used is unavailable for the endpoint. |
413 |
RateLimitError |
The user has surpassed their rate limit. |
500 |
InternalError |
An error internal to the application has occurred, please file a bug report. |
503 |
ServiceUnavailable |
The requested service is unavailable, please file a bug report. |
Request#
This table shows the URI parameters for the request:
Name |
Type |
Description |
---|---|---|
{tenantId} |
String (Required) |
A subscriber to the auto scaling service. |
X-Auth-Token |
String (Required) |
A valid authentication token. |
{groupId} |
Uuid (Required) |
A scaling group. |
This operation does not accept a request body.
Response#
Example Show scaling group configuration: JSON response
{
"groupConfiguration":{
"cooldown":60,
"maxEntities":0,
"metadata":{
},
"minEntities":0,
"name":"smallest possible group"
}
}
Update scaling group configuration#
PUT /v1.0/{tenantId}/groups/{groupId}/config
This operation updates the configuration for the scaling group.
This operation 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.
Note
All Rackspace Auto Scale update (PUT) operations completely replace the configuration being updated. Empty values (for example, { } )in the update are accepted and overwrite previously specified parameters. New parameters can be specified. All create (POST) parameters, even optional ones, are required for the update operation.
This table shows the possible response codes for this operation:
Response Code |
Name |
Description |
---|---|---|
204 |
Success But No Content |
The update group configuration request succeeded. |
400 |
InvalidJsonError |
The request is refused because the body was invalid JSON”. |
400 |
InvalidMinEntities |
The minEntities value is greater than the maxEntities value. |
400 |
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. |
401 |
InvalidCredentials |
The X-Auth-Token the user supplied is bad. |
403 |
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. |
404 |
NoSuchScalingGroupError |
The specified scaling group was not found. |
405 |
InvalidMethod |
The method used is unavailable for the endpoint. |
413 |
RateLimitError |
The user has surpassed their rate limit. |
415 |
UnsupportedMediaType |
The request is refused because the content type of the request is not “application/json”. |
500 |
InternalError |
An error internal to the application has occurred, please file a bug report. |
503 |
ServiceUnavailable |
The requested service is unavailable, please file a bug report. |
Request#
This table shows the URI parameters for the request:
Name |
Type |
Description |
---|---|---|
{tenantId} |
String (Required) |
A subscriber to the auto scaling service. |
X-Auth-Token |
String (Required) |
A valid authentication token. |
{groupId} |
Uuid (Required) |
A scaling group. |
This table shows the body parameters for the request:
Name |
Type |
Description |
---|---|---|
maxEntities |
Object (Required) |
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. |
cooldown |
Integer (Required) |
The cooldown period, in seconds, before any additional changes can happen. This number must be an integer between 0 and 86400 (24 hrs). |
name |
String (Required) |
The name of the scaling group. This name does not have to be unique. |
minEntities |
Integer (Required) |
The minimum number of entities in the scaling group. This number must be an integer between 0 and 1000. |
metadata |
Object (Required) |
Specifies custom metadata for your group configuration. You can use this object to enable custom automation. The specification does not affect Auto Scale functionality. There is no limitation on depth. |
Example Update scaling group configuration: JSON request
{
"name":"workers",
"cooldown":60,
"minEntities":5,
"maxEntities":100,
"metadata":{
"firstkey":"this is a string",
"secondkey":"1"
}
}
Response#
This operation does not return a response body.
Show scaling group details#
GET /v1.0/{tenantId}/groups/{groupId}
This operation retrieves configuration details for a specified scaling group.
Details include the launch configuration and the scaling policies for the specified scaling group configuration.
The details appear in the response body in JSON format.
This table shows the possible response codes for this operation:
Response Code |
Name |
Description |
---|---|---|
200 |
OK |
The request succeeded and the response contains details about the specified scaling group. |
400 |
InvalidQueryArgument |
The “limit” query argument value is not a valid integer. |
401 |
InvalidCredentials |
The X-Auth-Token the user supplied is bad. |
403 |
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. |
404 |
NoSuchScalingGroupError |
The specified scaling group was not found. |
405 |
InvalidMethod |
The method used is unavailable for the endpoint. |
413 |
RateLimitError |
The user has surpassed their rate limit. |
500 |
InternalError |
An error internal to the application has occurred, please file a bug report. |
503 |
ServiceUnavailable |
The requested service is unavailable, please file a bug report. |
Request#
This table shows the URI parameters for the request:
Name |
Type |
Description |
---|---|---|
{tenantId} |
String (Required) |
A subscriber to the auto scaling service. |
X-Auth-Token |
String (Required) |
A valid authentication token. |
{groupId} |
Uuid (Required) |
A scaling group. |
This operation does not accept a request body.
Response#
Example Show scaling group details: JSON response
{
"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"
}
]
}
}
Show scaling group details including webhooks#
GET /v1.0/{tenantId}/groups/{groupId}
This operation retrieves configuration details for a specified scaling group and its associated webhooks.
Details include the launch configuration, the scaling policies, and the policies’ webhooks for the specified scaling group configuration.
The details appear in the response body in JSON format.
Note
The ?webhooks=true
parameter is required for this method.
This table shows the possible response codes for this operation:
Response Code |
Name |
Description |
---|---|---|
200 |
OK |
The request succeeded and the response contains details about the specified scaling group, including associated webhooks. |
400 |
InvalidQueryArgument |
The “limit” query argument value is not a valid integer. |
401 |
InvalidCredentials |
The X-Auth-Token the user supplied is bad. |
403 |
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. |
404 |
NoSuchScalingGroupError |
The specified scaling group was not found. |
405 |
InvalidMethod |
The method used is unavailable for the endpoint. |
413 |
RateLimitError |
The user has surpassed their rate limit. |
500 |
InternalError |
An error internal to the application has occurred, please file a bug report. |
503 |
ServiceUnavailable |
The requested service is unavailable, please file a bug report. |
Request#
This table shows the URI parameters for the request:
Name |
Type |
Description |
---|---|---|
{tenantId} |
String (Required) |
A subscriber to the auto scaling service. |
X-Auth-Token |
String (Required) |
A valid authentication token. |
{groupId} |
Uuid (Required) |
A scaling group. |
This table shows the query parameters for the request:
Name |
Type |
Description |
---|---|---|
webhooks |
Boolean (Required) |
Set |
This operation does not accept a request body.
Response#
Example Show scaling group details including webhooks: JSON response
{
"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"
}
]
}
}
Delete scaling group#
DELETE /v1.0/{tenantId}/groups/{groupId}
This operation deletes a specified scaling group.
The scaling group must be empty before it can be deleted. 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 force=true
to force delete the group. Passing force=true
immediately deletes all active servers in the group. Pending servers are deleted when they build and become active.
This table shows the possible response codes for this operation:
Response Code |
Name |
Description |
---|---|---|
204 |
Success But No Content |
The delete scaling group request succeeded. |
400 |
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. |
401 |
InvalidCredentials |
The X-Auth-Token the user supplied is bad. |
403 |
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. |
403 |
GroupNotEmptyError |
The scaling group cannot be deleted because it has servers in it. Use the “force=true” query argument to force delete the group. |
404 |
NoSuchScalingGroupError |
The specified scaling group was not found. |
405 |
InvalidMethod |
The method used is unavailable for the endpoint. |
413 |
RateLimitError |
The user has surpassed their rate limit. |
500 |
InternalError |
An error internal to the application has occurred, please file a bug report. |
503 |
ServiceUnavailable |
The requested service is unavailable, please file a bug report. |
Request#
This table shows the URI parameters for the request:
Name |
Type |
Description |
---|---|---|
{tenantId} |
String (Required) |
A subscriber to the auto scaling service. |
X-Auth-Token |
String (Required) |
A valid authentication token. |
{groupId} |
Uuid (Required) |
A scaling group. |
This operation does not accept a request body.
Response#
This operation does not return a response body.
Delete server from scaling group#
DELETE /v1.0/{tenantId}/groups/{groupId}/servers/{serverId}
This operation deletes and replaces a specified server in a scaling group.
If the group launch configuration specifies a draining_timeout
value,
then the load balancer node associated with this server is put in DRAINING mode
for the specified number of seconds before the server is deleted.
You can 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 has the current launch configuration settings and a different IP address.
Note
The replace
and purge
parameters are optional for this method.
The replace parameter determines whether the server is replaced while it is being deleted. If the parameter is not specified, the value defaults to
replace=true
. Specifyreplace=false
if you do not want the deleted server to be replaced.The purge parameter determines whether the server is removed from the account. If the parameter is not specified, the value defaults to
purge=true
. Specifypurge=false
to leave the server on the account. This setting is useful if you want to investigate the server image after deleting it.
Note
Deleting and replacing servers in a scaling group takes some time. The time required depends on server type, size, and the complexity of the launch configuration settings for the replacement server.
This table shows the possible response codes for this operation:
Response Code |
Name |
Description |
---|---|---|
202 |
Accepted |
The request succeeded. No response body is returned. |
401 |
InvalidCredentials |
The X-Auth-Token the user supplied is bad. |
403 |
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. |
403 |
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. |
404 |
NoSuchScalingGroupError |
The specified scaling group was not found. |
404 |
ServerNotFoundError |
The specified server was not found. |
405 |
InvalidMethod |
The method used is unavailable for the endpoint. |
413 |
RateLimitError |
The user has surpassed their rate limit. |
500 |
InternalError |
An error internal to the application has occurred, please file a bug report. |
503 |
ServiceUnavailable |
The requested service is unavailable, please file a bug report. |
Request#
This table shows the URI parameters for the request:
Name |
Type |
Description |
---|---|---|
{tenantId} |
String (Required) |
A subscriber to the auto scaling service. |
X-Auth-Token |
String (Required) |
A valid authentication token. |
{groupId} |
Uuid (Required) |
A scaling group. |
{serverId} |
Uuid (Required) |
The Nova server ID for the server you want to delete from the scaling group. |
This table shows the query parameters for the request:
Name |
Type |
Description |
---|---|---|
replace |
Boolean (Optional) |
Defaults to
|
purge |
Boolean (Optional) |
Defaults to
|
This table shows the body parameters for the request:
Name |
Type |
Description |
---|---|---|
serverId |
String (Required) |
Set the ID of the server you want to delete. |
Response#
This operation does not return a response body.
Get scaling group state#
GET /v1.0/{tenantId}/groups/{groupId}/state
This operation retrieves the current state of a scaling group.
The GroupState object consists of the following properties:
paused. If
paused=TRUE
, the group does not scale up or down. All scheduled or API-generated policy operations are suspended, and convergence is not triggered. When the group is paused, any POST requests to converge or execute policy operations return a403 GroupPausedError
response. Ifpaused=FALSE
, all group scaling and convergence operations resume and scheduled or API-generated policy exectuions are allowed.pendingCapacity. Integer. Specifies the number of servers that are in a “building” state.
name. Specifies the name of the group.
active. Specifies an array of active servers in the group. This array includes the server Id, as well as other data.
activeCapacity. Integer. Specifies the number of active servers in the group.
desiredCapacity. Integer. Specifies the number of servers that are desired in the scaling group.
status. String. Indicates the scaling group status. If
status=ACTIVE
, the scaling group is healthy and actively scaling up and down on request. Ifstatus=ERROR
, the scaling group cannot complete scaling operation requests successfully, typically due to an unrecoverable error that requires user attention.errors. List of objects. If
status=ERROR
then this field contains a list of JSON objects with each object containing a message property that describes the error in human readable format.
This operation retrieves 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.
This table shows the possible response codes for this operation:
Response Code |
Name |
Description |
---|---|---|
200 |
OK |
The request succeeded and the response describes the state of the specified scaling group. |
401 |
InvalidCredentials |
The X-Auth-Token the user supplied is bad. |
403 |
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. |
404 |
NoSuchScalingGroupError |
The specified scaling group was not found. |
405 |
InvalidMethod |
The method used is unavailable for the endpoint. |
413 |
RateLimitError |
The user has surpassed their rate limit. |
500 |
InternalError |
An error internal to the application has occurred, please file a bug report. |
503 |
ServiceUnavailable |
The requested service is unavailable, please file a bug report. |
Request#
This table shows the URI parameters for the request:
Name |
Type |
Description |
---|---|---|
{tenantId} |
String (Required) |
A subscriber to the auto scaling service. |
X-Auth-Token |
String (Required) |
A valid authentication token. |
{groupId} |
Uuid (Required) |
A scaling group. |
This operation does not accept a request body.
Response#
Example Get scaling group state: JSON response with ACTIVE status
{
"group":{
"paused":false,
"pendingCapacity":0,
"name":"testscalinggroup198547",
"active":[],
"activeCapacity":0,
"desiredCapacity":0
"status": "ACTIVE"
}
}
Example Get scaling group state: JSON response with ERROR status
{
"group":{
"paused":false,
"pendingCapacity":0,
"name":"testscalinggroup198547",
"active":[],
"activeCapacity":0,
"desiredCapacity":0
"status": "ERROR"
"errors": [
{"message": "Cloud load balancer 85621 is being deleted"}
]
}
}
Pause group#
POST /v1.0/{tenantId}/groups/groupId/pause
This operation pauses the specified scaling group. When a group is paused, no policy or convergence operations are allowed. Any convergence operations in progress are stopped. Group configuration updates like min/max/cooldown and launch configurations updates like imageRef can run when a group is paused. You can resume a paused group by submitting a resume request.
This operation does not take any data and does not return any data. If it succeeds, a 204 response code is returned.
This table shows the possible response codes for this operation:
Response Code |
Name |
Description |
---|---|---|
204 |
Success |
Group was successfully paused. |
401 |
InvalidCredentials |
The X-Auth-Token the user supplied is bad. |
403 |
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. |
404 |
NoSuchScalingGroupError |
The specified scaling group was not found. |
405 |
InvalidMethod |
The method used is unavailable for the endpoint. |
413 |
RateLimitError |
The user has surpassed their rate limit. |
500 |
InternalError |
An error internal to the application has occurred, please file a bug report. |
503 |
ServiceUnavailable |
The requested service is unavailable, please file a bug report. |
Request#
This table shows the URI parameters for the request:
Name |
Type |
Description |
---|---|---|
{tenantId} |
String (Required) |
A subscriber to the auto scaling service. |
X-Auth-Token |
String (Required) |
A valid authentication token. |
{groupId} |
Uuid (Required) |
A scaling group. |
This operation does not accept a request body.
Response#
This operation does not return a response body.
Resume group#
POST /v1.0/{tenantId}/groups/groupId/resume
This operation resumes the specified scaling group. When a group is resumed,
policy executions and convergence operations are allowed. The group state
contains "paused": false
. You can pause a group by submitting a
pause request.
This operation does not take any data and does not return any data. If it succeeds, a 204 response code is returned.
This table shows the possible response codes for this operation:
Response Code |
Name |
Description |
---|---|---|
204 |
Success |
Group was successfully paused. |
401 |
InvalidCredentials |
The X-Auth-Token the user supplied is bad. |
403 |
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. |
404 |
NoSuchScalingGroupError |
The specified scaling group was not found. |
405 |
InvalidMethod |
The method used is unavailable for the endpoint. |
413 |
RateLimitError |
The user has surpassed their rate limit. |
500 |
InternalError |
An error internal to the application has occurred, please file a bug report. |
503 |
ServiceUnavailable |
The requested service is unavailable, please file a bug report. |
Request#
This table shows the URI parameters for the request:
Name |
Type |
Description |
---|---|---|
{tenantId} |
String (Required) |
A subscriber to the auto scaling service. |
X-Auth-Token |
String (Required) |
A valid authentication token. |
{groupId} |
Uuid (Required) |
A scaling group. |
This operation does not accept a request body.
Response#
This operation does not return a response body.
Trigger convergence#
POST /v1.0/{tenantId}/groups/groupId/converge
This operation triggers convergence for a specific scaling group. Convergence implies that Autoscale attempts to continuously converge to the desired state of the scaling group, instead of manipulating servers only once. When the convergence process starts, it will continue until the desired number of servers are in the ACTIVE state.
This operation does not take any data and does not return any data. If it succeeds, a 204 response code is returned.
This table shows the possible response codes for this operation:
Response Code |
Name |
Description |
---|---|---|
204 |
Success |
Convergence has been successfully triggered. |
401 |
InvalidCredentials |
The X-Auth-Token the user supplied is bad. |
403 |
GroupPausedError |
Convergence was not triggered because group is paused. |
403 |
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. |
404 |
NoSuchScalingGroupError |
The specified scaling group was not found. |
405 |
InvalidMethod |
The method used is unavailable for the endpoint. |
413 |
RateLimitError |
The user has surpassed their rate limit. |
500 |
InternalError |
An error internal to the application has occurred, please file a bug report. |
503 |
ServiceUnavailable |
The requested service is unavailable, please file a bug report. |
Request#
This table shows the URI parameters for the request:
Name |
Type |
Description |
---|---|---|
{tenantId} |
String (Required) |
A subscriber to the auto scaling service. |
X-Auth-Token |
String (Required) |
A valid authentication token. |
{groupId} |
Uuid (Required) |
A scaling group. |
This operation does not accept a request body.
Response#
This operation does not return a response body.