--- swagger: '2.0' info: title: autoscale version: Unknown consumes: - application/json produces: - application/json paths: "/v1.0/{tenantId}/groups": parameters: - name: tenantId required: true in: path type: string description: | A subscriber to the auto scaling service. - name: X-Auth-Token required: true in: header type: string description: | A valid authentication token. 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": { "links": [ { "href": "https://dfw.autoscale.api.rackspacecloud.com/v1.0/829409/groups/48692442-2dbe-4311-955e-bc29f02ae311/", "rel": "self" } ], "state": { "desiredCapacity": 0, "paused": false, "active": [], "pendingCapacity": 0, "activeCapacity": 0, "name": "testscalinggroup" }, "scalingPolicies_links": [ { "href": "https://dfw.autoscale.api.rackspacecloud.com/v1.0/829409/groups/48692442-2dbe-4311-955e-bc29f02ae311/policies/", "rel": "policies" } ], "scalingPolicies": [ { "name": "scale up by 1", "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" } ], "args": { "cron": "23 * * * *" }, "cooldown": 0, "type": "schedule", "id": "9fa63149-c93d-4116-8069-74d68f48fadc", "change": 1 } ], "launchConfiguration": { "args": { "loadBalancers": [ { "port": 80, "loadBalancerId": 237935 } ], "server": { "flavorRef": "performance1-2", "OS-DCF:diskConfig": "AUTO", "name": "autoscale_server", "imageRef": "7cf5ffc3-7b20-46fd-98e4-fefa9908d7e8", "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, "metadata": {} }, "id": "48692442-2dbe-4311-955e-bc29f02ae311" } } get: operationId: listGroups summary: List scaling groups description: | Lists the scaling groups that are 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_links": [], "groups": [ { "state": { "desiredCapacity": 0, "paused": false, "active": [], "pendingCapacity": 0, "activeCapacity": 0, "name": "testscalinggroup198547" }, "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": { "desiredCapacity": 0, "paused": false, "active": [], "pendingCapacity": 0, "activeCapacity": 0, "name": "testscalinggroup198547" }, "id": "f82bb000-f451-40c8-9dc3-6919097d2f7e", "links": [ { "href": "https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/f82bb000-f451-40c8-9dc3-6919097d2f7e/", "rel": "self" } ] } ] } "/v1.0/{tenantId}/groups/{groupId}": parameters: - name: tenantId required: true in: path type: string description: | A subscriber to the auto scaling service. - name: X-Auth-Token required: true in: header type: string description: | A valid authentication token. - name: groupId required: true in: path type: string description: | A scaling group. get: operationId: showGroupManifestWebhook summary: Show scaling group details including webhooks description: | Shows configuration details for a 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: |- { "group": { "links": [ { "href": "https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/", "rel": "self" } ], "scalingPolicies": [ { "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" } ], "name": "scale down by 5.5 percent", "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" } ], "changePercent": -5.5, "cooldown": 1800, "webhooks": [ { "metadata": {}, "id": "05f7d9d9-b9d0-40ac-8d3b-610197775c7f", "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" } ], "name": "automatically generated" } ], "type": "webhook", "id": "eb0fe1bf-3428-4f34-afd9-a5ac36f60511" } ], "scalingPolicies_links": [ { "href": "https://dfw.autoscale.api.rackspacecloud.com/v1.0/676873/groups/605e13f6-1452-4588-b5da-ac6bb468c5bf/policies/", "rel": "policies" } ], "state": { "active": [], "paused": false, "pendingCapacity": 0, "activeCapacity": 0, "desiredCapacity": 0 }, "launchConfiguration": { "args": { "server": {} }, "type": "launch_server" }, "groupConfiguration": { "maxEntities": 0, "cooldown": 60, "name": "smallest possible launch config group", "minEntities": 0, "metadata": {} }, "id": "605e13f6-1452-4588-b5da-ac6bb468c5bf" } } delete: operationId: deleteGroup summary: Delete scaling group description: | Deletes a specified scaling group. produces: [] responses: '204': description: The delete scaling group request succeeded. "/v1.0/{tenantId}/groups/{groupId}/servers/{serverId}": parameters: - name: tenantId required: true in: path type: string description: | A subscriber to the auto scaling service. - name: X-Auth-Token required: true in: header type: string description: | A valid authentication token. - name: groupId required: true in: path type: string description: | A scaling group. - name: serverId required: true in: path type: string description: | The Nova server ID for the server you want to delete from the scaling group. 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": parameters: - name: tenantId required: true in: path type: string description: | A subscriber to the auto scaling service. - name: X-Auth-Token required: true in: header type: string description: | A valid authentication token. - name: groupId required: true in: path type: string description: | A scaling group. get: operationId: getGroupState summary: Get scaling group state description: | Gets the current state of a scaling 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": { "name": "testscalinggroup198547", "paused": false, "active": [], "pendingCapacity": 0, "activeCapacity": 0, "desiredCapacity": 0 } } "/v1.0/{tenantId}/groups/{groupId}/config": parameters: - name: tenantId required: true in: path type: string description: | A subscriber to the auto scaling service. - name: X-Auth-Token required: true in: header type: string description: | A valid authentication token. - name: groupId required: true in: path type: string description: | A scaling group. get: operationId: getGroupConfig summary: Show scaling group configuration description: | Shows the configuration for a 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": { "maxEntities": 0, "cooldown": 60, "name": "smallest possible group", "minEntities": 0, "metadata": {} } } put: operationId: putGroupConfig summary: Update scaling group configuration description: | Updates the configuration for the scaling group. produces: [] responses: '204': description: The update group configuration request succeeded. "/v1.0/{tenantId}/groups/{groupId}/launch": parameters: - name: tenantId required: true in: path type: string description: | A subscriber to the auto scaling service. - name: X-Auth-Token required: true in: header type: string description: | A valid authentication token. - name: groupId required: true in: path type: string description: | A scaling group. get: operationId: getLaunchConfig summary: Show launch configuration description: | Shows launch configuration details 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": { "args": { "loadBalancers": [], "server": { "name": "webhead", "imageRef": "0d589460-f177-4b0f-81c1-8ab8903ac7d8", "flavorRef": "performance1-4", "OS-DCF:diskConfig": "AUTO", "metadata": { "mykey": "myvalue" }, "networks": [ { "uuid": "11111111-1111-1111-1111-111111111111" } ], "personality": [] } }, "type": "launch_server" } } put: operationId: putLaunchConfig summary: Update launch configuration description: | Updates an existing launch configuration for the specified scaling group. produces: [] responses: '204': description: The update launch configuration request succeeded. "/v1.0/{tenantId}/groups/{groupId}/pause": parameters: - name: tenantId required: true in: path type: string description: | A subscriber to the auto scaling service. - name: X-Auth-Token required: true in: header type: string description: | A valid authentication token. - name: groupId required: true in: path type: string description: | A scaling group. post: operationId: pauseGroup summary: Pause group policy execution description: | Pauses the execution of all scaling policies for a specified scaling group. produces: [] responses: '204': description: 204 response "/v1.0/{tenantId}/groups/{groupId}/resume": parameters: - name: tenantId required: true in: path type: string description: | A subscriber to the auto scaling service. - name: X-Auth-Token required: true in: header type: string description: | A valid authentication token. - name: groupId required: true in: path type: string description: | A scaling group. post: operationId: resumeGroup summary: Resume group policy execution description: | Resumes the execution of all scaling policies for a specified scaling group. produces: [] responses: '204': description: 204 response "/v1.0/{tenantId}/groups/{groupId}/policies": parameters: - name: tenantId required: true in: path type: string description: | A subscriber to the auto scaling service. - name: X-Auth-Token required: true in: header type: string description: | A valid authentication token. - name: groupId required: true in: path type: string description: | A scaling group. get: operationId: getPolicies summary: List policies description: | Lists scaling policies that are 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_links": [], "policies": [ { "name": "scale down by 5.5 percent at 11pm", "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" } ], "args": { "cron": "23 * * * *" }, "changePercent": -5.5, "cooldown": 1800, "type": "schedule", "id": "5f26e16c-5fa7-4d4f-8e78-257ea711389f" }, { "name": "scale down by 5.5 percent on the 5th", "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" } ], "args": { "at": "2013-12-05T03:12:00Z" }, "changePercent": -5.5, "cooldown": 1800, "type": "schedule", "id": "9f7c5801-6b25-4f5a-af07-4bb752e23d53" }, { "name": "scale down by 5.5 percent", "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" } ], "changePercent": -5.5, "cooldown": 1800, "type": "webhook", "id": "eb0fe1bf-3428-4f34-afd9-a5ac36f60511" }, { "name": "set group to 5 servers", "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" } ], "cooldown": 1800, "type": "webhook", "id": "2f45092a-fde7-4461-a67a-3519e0366cd6", "desiredCapacity": 5 }, { "name": "scale up by one server", "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" } ], "cooldown": 1800, "type": "webhook", "id": "e36e6a43-2a7a-433c-918c-39fa45b75d12", "change": 1 } ] } post: operationId: createPolicies summary: Create policy description: | Creates one or more scaling policies for a specified scaling group. produces: - application/json responses: '201': description: The scaling policy has been created. examples: application/json: |- { "policies": [ { "name": "scale down by 5.5 percent on the 5th", "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" } ], "args": { "at": "2013-12-05T03:12:00Z" }, "changePercent": -5.5, "cooldown": 1800, "type": "schedule", "id": "9f7c5801-6b25-4f5a-af07-4bb752e23d53" }, { "name": "set group to 5 servers", "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" } ], "cooldown": 1800, "type": "webhook", "id": "b0555a35-b2cb-4f0e-8743-d59e1621b980", "desiredCapacity": 5 }, { "name": "scale down by 5.5 percent at 11pm", "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" } ], "args": { "cron": "23 * * * *" }, "changePercent": -5.5, "cooldown": 1800, "type": "schedule", "id": "30707675-8e7c-4ea5-9358-c21648afcf29" }, { "name": "scale up by one server", "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" } ], "cooldown": 1800, "type": "webhook", "id": "1f3bdd08-7aae-4009-a3b7-49aa47fc0876", "change": 1 }, { "name": "scale down by 5.5 percent", "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" } ], "changePercent": -5.5, "cooldown": 1800, "type": "webhook", "id": "5afac18c-41e5-49d6-aba8-dec17c0d8ed7" } ] } "/v1.0/{tenantId}/groups/{groupId}/policies/{policyId}": parameters: - name: tenantId required: true in: path type: string description: | A subscriber to the auto scaling service. - name: X-Auth-Token required: true in: header type: string description: | A valid authentication token. - name: groupId required: true in: path type: string description: | A scaling group. - name: policyId required: true in: path type: string description: | A scaling policy. delete: operationId: deletePolicy summary: Delete policy description: | Deletes a specified scaling policy 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 details. produces: - application/json responses: '200': description: The request succeeded and the response contains details about the specified scaling policy. examples: application/json: |- { "policy": { "name": "scale down by 5.5 percent at 11pm", "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" } ], "args": { "cron": "23 * * * *" }, "changePercent": -5.5, "cooldown": 1800, "type": "schedule", "id": "5f26e16c-5fa7-4d4f-8e78-257ea711389f" } } put: operationId: putPolicy summary: Update policy description: | Updates an existing scaling policy for the specified tenant. produces: [] responses: '204': description: The update scaling policy request succeeded. "/v1.0/{tenantId}/groups/{groupId}/policies/{policyId}/execute": parameters: - name: tenantId required: true in: path type: string description: | A subscriber to the auto scaling service. - name: X-Auth-Token required: true in: header type: string description: | A valid authentication token. - name: groupId required: true in: path type: string description: | A scaling group. - name: policyId required: true in: path type: string description: | A scaling policy. post: operationId: executePolicy summary: Execute policy description: | Runs a specified scaling 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": parameters: - name: tenantId required: true in: path type: string description: | A subscriber to the auto scaling service. - name: X-Auth-Token required: true in: header type: string description: | A valid authentication token. - name: groupId required: true in: path type: string description: | A scaling group. - name: policyId required: true in: path type: string description: | A scaling policy. get: operationId: getWebhooks summary: List webhooks for the policy description: | Lists web hooks and their IDs for a 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: |- { "webhooks": [ { "name": "PagerDuty", "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": "Nagios", "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": {} } ], "webhooks_links": [] } post: operationId: createWebhook summary: Create webhook description: | Creates one or more webhooks for the specified scaling policy. produces: - application/json responses: '201': description: The webhook has been created. examples: application/json: |- { "webhooks": [ { "name": "PagerDuty", "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": "Nagios", "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": {} } ] } "/v1.0/{tenantId}/groups/{groupId}/policies/{policyId}/webhooks/{webhookId}": parameters: - name: tenantId required: true in: path type: string description: | A subscriber to the auto scaling service. - name: X-Auth-Token required: true in: header type: string description: | A valid authentication token. - name: groupId required: true in: path type: string description: | A scaling group. - name: policyId required: true in: path type: string description: | A scaling policy. - name: webhookId required: true in: path type: string description: | A webhook. get: operationId: getWebhook summary: Show webhook details description: | Shows webhook details for a specified scaling policy. produces: - application/json responses: '200': description: The request succeeded and the response contains details about the specified webhook. examples: application/json: |- { "webhook": { "name": "Nagios", "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": {} } } put: operationId: putWebhook summary: Update webhook description: | Updates a webhook for a specified tenant and scaling policy. produces: [] responses: '204': description: The update webhook request succeeded. delete: operationId: deleteWebhook summary: Delete webhook description: | Deletes a webhook for a specified scaling policy. produces: [] responses: '204': description: The delete webhook request succeeded. "/v1.0/execute/{capability_version}/{capability_hash}": parameters: - name: capability_version required: true in: path type: string - name: capability_hash required: true in: path type: string post: operationId: anonymousExecute summary: Execute anonymous webhook description: | Runs an anonymous webhook. produces: [] responses: '202': description: The execute webhook request was accepted.