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 type parameter to launch_server.

launchConfiguration.args

Object (Required)

The configuration used to create new servers in the scaling group. You must specify the server attribute, and can also specify the optional loadBalancers attribute. Most launch configurations have both a server and a cloud load balancer or RackConnectV3 load balancer pool configured.

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 AUTO ” or MANUAL. For non- Rackspace server images, this value must always be MANUAL. A non-Rackspace server image would be one that you imported using a non-Rackspace server. For more information, see the Disk Configuration Extension documentation for Rackspace Cloud Servers.

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 launch_server.

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 at or cron. Both are mutually exclusive.

scalingPolicies.[*].args.cron

String (Optional)

The recurring time when the policy runs as a cron entry. For example, if you set this parameter to 1 0 * * *, 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 ` http://en.wikipedia.org/wiki/Cron <http://en.wikipedia.org/wiki/Cron>`__.

scalingPolicies.[*].args.at

String (Optional)

The time when this policy runs. This property is mutually exclusive with the cron parameter. You must specify seconds when using at. For example, if you set at: "2013-12- 05T03:12:00Z". If seconds are not specified, a 400 error is returned. Note, the policy is triggered within a 10-second range of the time specified.

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 webhook for webhook-based policies or schedule for schedule-based policies.

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 ?webhooks=true to display webhook configuration details in the results.

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. Specify replace=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. Specify purge=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 replace=true if not passed. Set replace=false to delete the server without replacing it.

purge

Boolean (Optional)

Defaults to purge=true if not passed. Set purge=false to delete the server from the group without removing it from the account.

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 a 403 GroupPausedError response. If paused=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. If status=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.