# Querying AS Groups

#### Function

This API is used to query AS groups based on search criteria. The results are displayed by page.

- Search criteria can be the AS group name, AS configuration ID, AS group status, start line number, and number of records.
- If no search criteria are specified, a maximum of 20 AS groups can be queried for a tenant by default.

#### URI

GET /autoscaling-api/v1/{project_id}/scaling_group

You can type the question mark (?) and ampersand (&) at the end of the URI to define multiple search criteria. AS groups can be searched by all optional parameters in the following table. For details, see the example request.

Table 1 Parameter description
Parameter | Mandatory | Type | Description
--- | --- | --- | ---
project_id | Yes | String | Specifies the project ID.
scaling_group_name | No | String | Specifies the AS group name. Supports fuzzy search.
scaling_configuration_id | No | String | Specifies the AS configuration ID, which can be obtained using the API for querying AS configurations. For details, see Querying AS Configurations.

scaling_group_status

No

String

Specifies the AS group status. The options are as follows:

- INSERVICE: indicates that the AS group is functional.
- PAUSED: indicates that the AS group is paused.
- ERROR: indicates that the AS group malfunctions.
- DELETING: indicates that the AS group is being deleted.

start_number | No | Integer | Specifies the start line number. The default value is 0. The minimum value is 0, and there is no limit on the maximum value.
limit | No | Integer | Specifies the number of query records. The default value is 20. The value range is 0 to 100.
enterprise_project_id | No | String | Specifies the enterprise project ID. If all_granted_eps is transferred, this API will query AS groups in the enterprise projects that you have permissions to.

#### Request Message

- Request parameters

  None

- Example request
  This example shows how to query AS groups with name as-group-test and AS configuration ID 1d281494-6085-4579-b817-c1f813be835f.

      GET https://{Endpoint}/autoscaling-api/v1/{project_id}/scaling_group?scaling_group_name=as-group-test&scaling_configuration_id=1d281494-6085-4579-b817-c1f813be835f

#### Response Message

- Response parameters

  Table 2 Response parameters
  Parameter | Type | Description
  --- | --- | ---
  total_number | Integer | Specifies the total number of query records.
  start_number | Integer | Specifies the start number of query records.
  limit | Integer | Specifies the number of query records.
  scaling_groups | Array of scaling_groups objects | Specifies the scaling group list.

  Table 3 scaling_groups field description
  Parameter | Type | Description
  --- | --- | ---
  scaling_group_name | String | Specifies the name of the AS group.
  scaling_group_id | String | Specifies the AS group ID.
  scaling_group_status | String | Specifies the status of the AS group.
  scaling_configuration_id | String | Specifies the AS configuration ID.
  scaling_configuration_name | String | Specifies the AS configuration name.
  current_instance_number | Integer | Specifies the number of current instances in the AS group.
  desire_instance_number | Integer | Specifies the expected number of instances in the AS group.
  min_instance_number | Integer | Specifies the minimum number of instances in the AS group.
  max_instance_number | Integer | Specifies the maximum number of instances in the AS group.
  cool_down_time | Integer | Specifies the cooldown period (s).
  lb_listener_id | String | Specifies the ID of a typical ELB listener. ELB listener IDs are separated using a comma (,).
  lbaas_listeners | Array of lbaas_listeners objects | Specifies enhanced load balancers. For details, see Table 4.
  available_zones | Array of strings | Specifies the AZ information.
  networks | Array of networks objects | Specifies the network information. For details, see Table 5.
  security_groups | Array of security_groups objects | Specifies the security group information. For details, see Table 6.
  create_time | String | Specifies the time when an AS group was created. The time format complies with UTC.
  vpc_id | String | Specifies the ID of the VPC to which the AS group belongs.
  detail | String | Specifies details about the AS group. If a scaling action fails, this parameter is used to record errors.
  is_scaling | Boolean | Specifies the scaling flag of the AS group.
  health_periodic_audit_method | String | Specifies the health check method.
  health_periodic_audit_time | Integer | Specifies the health check interval.
  health_periodic_audit_grace_period | Integer | Specifies the grace period for health check.
  instance_terminate_policy | String | Specifies the instance removal policy.
  notifications | Array of strings | Specifies the notification mode. EMAIL refers to notification by email.
  delete_publicip | Boolean | Specifies whether to delete the EIP bound to the ECS when deleting the ECS.
  delete_volume | Boolean | Specifies whether to delete the data disks attached to the ECS when deleting the ECS.
  cloud_location_id | String | This parameter is reserved.
  enterprise_project_id | String | Specifies the enterprise project ID.
  activity_type | String | Specifies the type of the AS action.
  multi_az_priority_policy | String | Specifies the priority policy used to select target AZs when adjusting the number of instances in an AS group.
  description | String | Specifies the description of the AS group.

  Table 4 lbaas_listeners field description
  Parameter | Type | Description
  --- | --- | ---
  listener_id | String | Specifies the listener ID.
  pool_id | String | Specifies the backend ECS group ID.
  protocol_port | Integer | Specifies the backend protocol ID, which is the port on which a backend ECS listens for traffic.
  weight | Integer | Specifies the weight, which determines the portion of requests a backend ECS processes when being compared to other backend ECSs added to the same listener.

  Table 5 networks field description
  Parameter | Type | Description
  --- | --- | ---
  id | String | Specifies the subnet ID.

  Table 6 security_groups field description
  Parameter | Type | Description
  --- | --- | ---
  id | String | Specifies the security group ID.

- Example response

      {
          "limit": 20,
          "scaling_groups": [
              {
                  "networks": [
                      {
                          "id": "a8327883-6b07-4497-9c61-68d03ee193a",
                          "ipv6_enable": false,
                          "ipv6_bandwidth":  null,
                      }
                  ],
                  "available_zones": [
                         "XXXa",
                         "XXXb"
                  ],
                  "detail": null,
                  "scaling_group_name": "as-group-test",
                  "scaling_group_id": "77a7a397-7d2f-4e79-9da9-6a35e2709150",
                  "scaling_group_status": "INSERVICE",
                  "scaling_configuration_id": "1d281494-6085-4579-b817-c1f813be835f",
                  "scaling_configuration_name": "healthCheck",
                  "current_instance_number": 0,
                  "desire_instance_number": 1,
                  "min_instance_number": 0,
                  "max_instance_number": 500,
                  "cool_down_time": 300,
                  "lb_listener_id": "f06c0112570743b51c0e8fbe1f235bab",
                  "security_groups": [
                      {
                          "id": "8a4b1d5b-0054-419f-84b1-5c8a59ebc829"
                      }
                  ],
                  "create_time": "2015-07-23T02:46:29Z",
                  "vpc_id": "863ccae2-ee85-4d27-bc5b-3ba2a198a9e2",
                  "health_periodic_audit_method": "ELB_AUDIT",
                  "health_periodic_audit_time": 5,
                  "health_periodic_audit_grace_period": 600,
                  "instance_terminate_policy": "OLD_CONFIG_OLD_INSTANCE",
                  "is_scaling": false,
                  "delete_publicip": false,
                  "notifications": [
                      "EMAIL"
                  ]
                 "enterprise_project_id": "c92b1a5d-6f20-43f2-b1b7-7ce35e58e413",
                  "multi_az_priority_policy": "PICK_FIRST"
              }
          ],
          "total_number": 1,
          "start_number": 0
      }

#### Returned Values

- Normal

  200

- Abnormal

  Returned Value | Description
  --- | ---
  400 Bad Request | The server failed to process the request.
  401 Unauthorized | You must enter the username and password to access the requested page.
  403 Forbidden | You are forbidden to access the requested page.
  404 Not Found | The server could not find the requested page.
  405 Method Not Allowed | You are not allowed to use the method specified in the request.
  406 Not Acceptable | The response generated by the server could not be accepted by the client.
  407 Proxy Authentication Required | You must use the proxy server for authentication so that the request can be processed.
  408 Request Timeout | The request timed out.
  409 Conflict | The request could not be processed due to a conflict.
  500 Internal Server Error | Failed to complete the request because of an internal service error.
  501 Not Implemented | Failed to complete the request because the server does not support the requested function.
  502 Bad Gateway | Failed to complete the request because the request is invalid.
  503 Service Unavailable | Failed to complete the request because the system is unavailable.
  504 Gateway Timeout | A gateway timeout error occurred.

#### Error Codes

See Error Codes.

Parent topic: AS Groups