
# 创建智能购买组 - CreateAutoLaunchGroup
#### 功能介绍
创建智能购买组。
#### 接口约束
1. 不支持细粒度授权。
2. 不支持包年/包月计费模式。
3. 不支持对接QuotaManager，使用默认配置，单个租户最大支持创建30个智能购买组。
4. 不支持创建IPv6实例。
5. 不支持网络driver_mode配置。
6. 不支持创建时指定云服务器密码（可通过启动模板指定）。
7. 租户创建的实例个数、CPU以及网络配额同租户自身配额保持一致。
8. 不支持创建BMS实例。
 
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=CMS&api=CreateAutoLaunchGroup)中调试该接口。
#### URI
POST /v2/{domain_id}/auto-launch-groups
参数说明请参见[表1]。
 表1参数说明 
| 参数        | 是否必选 | 描述                                                                                                                                                                                                                                                                        |
|:---|:---|:---|
| domain_id | 是    | **参数解释：** 租户域ID。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
#### 请求参数
表2请求参数 
| 参数                                 | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| name                               | 是    | String           | **参数解释：** 智能购买组名称。 **约束限制：** 不涉及 **取值范围：** 1-64个字符，只能包含中文、字母、数字、下划线和中划线。 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                            |
| dry_run                            | 否    | Boolean          | **参数解释：** 是否预检此次请求。配置为预检时，此次请求不会创建智能购买组。 **约束限制：** 不涉及 **取值范围：** - true：预检此次请求，检查项包括是否填写了必需参数、请求格式等。 - 如果检查不通过，则返回对应错误。  - 如果检查通过，则返回202状态码。    - false：发送正常请求，不对请求体做预检。   **默认取值：** 不涉及 |
| type                               | 否    | String           | **参数解释：** 请求类型。 **约束限制：** 不涉及 **取值范围：** - request：一次性。仅在启动时交付实例集群，调度失败后不再重试。  - maintain：持续供应。在启动时尝试交付实例集群，并监控容量，未达到目标容量则尝试继续创建ECS实例。   **默认取值：** maintain                                                                                                                                                                                                        |
| guarantee_plan_id                  | 否    | String           | **参数解释：** 算力保障计划ID。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                         |
| target_capacity                    | 是    | Integer          | **参数解释：** 智能购买组目标容量。 实例数量或者CPU个数目标容量大于等于stable_capacity。竞价实例的容量为满配容量减去stable_capacity。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                        |
| stable_capacity                    | 否    | Integer          | **参数解释：** 按需实例目标容量。 **约束限制：** 目标容量指实例数量或CPU个数，必须小于等于target_capacity，智能购买组中可以没有按需实例。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                         |
| excess_fulfilled_capacity_behavior | 否    | String           | **参数解释：** 超过目标容量或目标容量减少时的实例中断行为。 **约束限制：** 不涉及 **取值范围：** - terminate：释放  - noTermination：不释放   **默认取值：** terminate                                                                                                                                                                                                                                  |
| instances_behavior_with_expiration | 否    | String           | **参数解释：** 请求到期时正在运行实例的中断行为。 **约束限制：** 不涉及 **取值范围：** - terminate：释放  - noTermination：不释放   **默认取值：** terminate                                                                                                                                                                                                                                         |
| valid_since                        | 否    | String           | **参数解释：** 请求开始时间，和valid_until共同确定有效时段。 按照ISO8601标准表示，并使用UTC +0时间，格式为yyyy-MM-ddTHH:mm:ssZ。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                    |
| valid_until                        | 否    | String           | **参数解释：** 请求结束时间，和valid_since共同确定有效时段。 按照ISO8601标准表示，并使用UTC +0时间，格式为yyyy-MM-ddTHH:mm:ssZ。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                |
| allocation_strategy                | 否    | String           | **参数解释：** 实例分配策略。 **约束限制：** 不涉及 **取值范围：** - lowest_price：价格最低策略，智能购买组购买的所有实例的价格总和最低。  - prioritized：优先级策略，按照规格设定的优先级创建实例。  - capacity_optimized：容量最优化策略，智能购买组购买的实例按照大规格优先进行购买。   **默认取值：** lowest_price                                                                           |
| region_specs                       | 是    | Array of objects | **参数解释：** 智能购买组内各区域的资源描述，详情请参见[表3]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                               |
| supply_option                      | 否    | String           | **参数解释：** 资源供给中规格选择策略。 **约束限制：** 不涉及 **取值范围：** - singlation：选择一种规格供给。  - multiple：组合多种规格供给。   **默认取值：** multiple                                                                                                                                                                                                                               |
| spot_price                         | 否    | Double           | **参数解释：** 用户愿意为竞价实例每小时支付的最高价格。 **约束限制：** 如果overrides中没有提供价格，可以使用该价格。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                 |
   
 表3region_specs参数信息 
| 参数                     | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| region_id              | 是    | String  | **参数解释：** 区域ID。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                |
| expect_target_capacity | 是    | Integer | **参数解释：** 区域内期望的总算力容量。 **约束限制：** 不涉及 **取值范围：** 0\~Integer.MAX_VALUE（2147483647） **默认取值：** 不涉及              |
| expect_stable_capacity | 是    | Integer | **参数解释：** 区域内期望的稳定算力容量。 **约束限制：** 不涉及 **取值范围：** 0\~Integer.MAX_VALUE（2147483647） **默认取值：** 不涉及             |
| launch_template_config | 是    | Object  | **参数解释：** 启动模板配置，详情请参见[表4]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
 表4launch_template_config参数信息 
| 参数              | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| launch_template | 是    | Object           | **参数解释：** 实例的启动模板，详情请参见[表5]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| overrides       | 是    | Array of objects | **参数解释：** 实例的详细信息，详情请参见[表6]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及        |
   
 表5launch_template参数信息 
| 参数                 | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| launch_template_id | 是    | String | **参数解释：** 实例的启动模板ID，唯一标识一个启动模板。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| version            | 是    | String | **参数解释：** 启动模板版本号。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及            |
   
 表6overrides参数信息 
| 参数                   | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| availability_zone_id | 是    | String  | **参数解释：** 可用区ID。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                       |
| flavor_id            | 是    | String  | **参数解释：** 实例规格ID。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                          |
| spot_price           | 否    | Double  | **参数解释：** 用户愿意为竞价实例每小时支付的最高价格。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                  |
| priority             | 否    | Integer | **参数解释：** 优先级。数值越小，优先级越高，优先购买。 **约束限制：** 不涉及 **取值范围：** 0\~Integer.MAX_VALUE（2147483647） **默认取值：** Integer.MAX_VALUE（2147483647）                                                                                                                                         |
| weighted_capacity    | 否    | Double  | **参数解释：** 实例规格的权重。取值越高，单台实例满足计算力需求的能力越大，所需的实例数量越小。 可以根据指定实例规格的计算力和集群单节点最低计算力得出权重值。 假设单节点最低计算力为8vCPU、60GiB，则8vCPU、60GiB实例规格的权重可设置为1，16vCPU、120GiB实例规格的权重可设置为2。 **约束限制：** 不涉及 **取值范围：** 大于0 **默认取值：** 不涉及 |
   
#### 响应参数
表7响应参数 
| 参数                   | 参数类型    | 描述                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| auto_launch_group_id | String  | **参数解释：** 创建的智能购买组ID。 **取值范围：** 不涉及                                                                                                                                                                        |
| error_code           | Integer | **参数解释：** 错误码。 **取值范围：** - 请求失败时，响应体中包含错误。  - 请求成功时，响应消息体中不包含错误码。           |
| error_msg            | String  | **参数解释：** 错误描述。 **取值范围：** - 请求失败时，响应体中包含错误描述。  - 请求成功时，响应消息体中不包含错误描述。   |
   
#### 请求示例
创建一个智能购买组，名称为"test"，持续供应类型，目标容量为10，按需实例目标容量为5。
```
POST https://{endpoint}/v2/{domain_id}/auto-launch-groups
{
    "name":"test",
    "guarantee_plan_id":"plan_id",
    "type":"maintain",
    "target_capacity":10,
    "stable_capacity":5,
    "excess_fulfilled_capacity_behavior":"terminate",
    "instances_behavior_with_expiration":"terminate",
    "valid_since":"2020-04-04T15:58:13Z",
    "valid_until":"2021-04-06T15:58:13Z",
    "region_specs":[
        {
            "region_id":"region1",
            "expect_target_capacity":10,
            "expect_stable_capacity":5,
            "launch_template_config":{
                "launch_template":{
                    "launch_template_id":"c516c350-7091-4490-9338-47ddb90360f2",
                    "version":"1.0"
                },
                "overrides":[
                    {
                        "availability_zone_id":"az1",
                        "flavor_id":"s3.large.2",
                        "spot_price":2,
                        "priority":4,
                        "weighted_capacity":6
                    },
                    {
                        "availability_zone_id":"az2",
                        "flavor_id":"s3.large.2",
                        "spot_price":2,
                        "priority":4,
                        "weighted_capacity":12
                    },
                    {
                        "availability_zone_id":"az3",
                        "flavor_id":"s3.large.2",
                        "spot_price":2,
                        "priority":4,
                        "weighted_capacity":2
                    }
                ]
            }
        }
    ],
    "allocation_strategy":"lowest_price",
    "spot_price":0.5,
    "supply_option":"multiple",
    "dry_run":false
}
```
#### 响应示例
```
{
    "auto_launch_group_id": "c516c350-7091-4490-9338-47ddb90360f2"
}
```
#### 返回值
请参考[通用请求返回值](https://support.huaweicloud.com/api-ecs/ecs_07_0001.html)。
#### 错误码
请参考[错误码](https://support.huaweicloud.com/api-ecs/ecs_07_0002.html)。
