预估执行计划价格
功能介绍
预估执行计划价格(EstimateExecutionPlanPrice)
此API可以基于一份已有的执行计划中增量的资源进行询价,当前支持询价的计费模式有按需计费、免费,暂不支持其他形式的计费模式,例如竞价计费模式等。
注:
- 由于某些资源的属性值含有默认值,且该属性和询价参数相关。如果用户的模板中描述的资源没有声明这些属性,则询价结果可能存在偏差。
 - 询价结果仅为预估结果,具体请以实际为准。
 - 如果用户在模板中使用了depends_on参数,如A资源询价必要字段依赖于B资源的创建,则A资源不支持询价。
 - 暂不支持传入data sources的flavor.id的场景的询价。
 - 暂不支持镜像询价。
 - 如果A资源的询价必要字段设置了sensitive = true,则A资源不支持询价。
 - 模板中询价的资源的个数是有限制的。当前一个模板中最多支持24个按需计费资源。
 - 支持询价的资源列表和询价必要参数
    
- huaweicloud_cce_cluster:
      
- 支持的计费模式:按需
 
 - huaweicloud_css_cluster:
      
- 支持的计费模式:按需
 
 - huaweicloud_evs_volume:
      
- 支持的计费模式:按需
 - 询价必要参数:size(磁盘规格)
 
 - huaweicloud_compute_instance:
      
- 支持的计费模式:按需
 - 询价必要参数:flavor_id(规格ID)、flavor_name(规格名称,flavor_id和flavor_name至少给出一个)、system_disk_size(系统磁盘大小)
 
 - huaweicloud_vpc_bandwidth:
      
- 支持的计费模式:按需
 - 询价必要参数:charge_mode仅支持bandwidth
 
 - huaweicloud_vpc_eip:
      
- 支持的计费模式:按需
 - 询价必要参数:bandwidth.size(带宽大小)
 
 - huaweicloud_gaussdb_redis_instance:
      
- 支持的计费模式:按需
 
 - huaweicloud_nat_gateway:
      
- 支持的计费模式:按需
 
 - huaweicloud_rds_instance:
      
- 支持的计费模式:按需
 - 支持的数据库类型:MySQL、PostgreSQL、Microsoft SQL Server
 
 - huaweicloud_sfs_turbo:
      
- 支持的计费模式:按需
 - 询价必要参数:share_type(文件系统类型)
 
 - huaweicloud_dms_kafka_instance:
      
- 支持的计费模式:按需
 - 询价必要参数:flavor_id(规格ID)、product_id(产品ID。flavor_id和product_id至少给出一个。)、storage_space(存储容量)
 
 - huaweicloud_dcs_instance:
      
- 支持的计费模式:按需
 
 - huaweicloud_gaussdb_mysql_instance:
      
- 支持的计费模式:按需
 - 询价必要参数:proxy_node_number(代理节点数量)、volume_size(挂载卷的存储空间)
 
 - huaweicloud_vpc:
      
- 支持的计费模式:免费
 
 - huaweicloud_drs_job:
      
- 支持的计费模式:按需
 
 - huaweicloud_apig_instance:
      
- 支持的计费模式:按需
 
 
 - huaweicloud_cce_cluster:
      
 
URI
GET /v1/{project_id}/stacks/{stack_name}/execution-plans/{execution_plan_name}/prices
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        project_id  | 
      
        是  | 
      
        String  | 
      
        项目ID,可以从调用API处获取,也可以从控制台获取。 最小长度:3 最大长度:64  | 
     
| 
        stack_name  | 
      
        是  | 
      
        String  | 
      
        资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128  | 
     
| 
        execution_plan_name  | 
      
        是  | 
      
        String  | 
      
        执行计划的名称。此名字在domain_id+区域+project_id+stack_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128  | 
     
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        stack_id  | 
      
        否  | 
      
        String  | 
      
        资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 最小长度:36 最大长度:36  | 
     
| 
        execution_plan_id  | 
      
        否  | 
      
        String  | 
      
        执行计划(execution_plan)的唯一Id。 此Id由资源编排服务在生成执行计划的时候生成,为UUID。 由于执行计划名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的执行计划,删除,再重新创建一个同名执行计划。 对于团队并行开发,用户可能希望确保,当前我操作的执行计划就是我认为的那个,而不是其他队友删除后创建的同名执行计划。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的执行计划所对应的ID都不相同,更新不会影响ID。如果给予的execution_plan_id和当前执行计划的ID不一致,则返回400 最小长度:36 最大长度:36  | 
     
请求参数
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        Client-Request-Id  | 
      
        是  | 
      
        String  | 
      
        用户指定的,对于此请求的唯一ID,用于定位某个请求,推荐使用UUID 最小长度:36 最大长度:128  | 
     
响应参数
状态码: 200
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        currency  | 
      
        String  | 
      
        币种,枚举值  | 
     
| 
        items  | 
      
        Array of ItemsResponse objects  | 
      
        执行计划中所有资源的询价结果  | 
     
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        resource_type  | 
      
        String  | 
      
        资源的类型 以HCL格式的模板为例,resource_type 为 huaweicloud_vpc resource "huaweicloud_vpc" "my_hello_world_vpc" {
  name = "test_vpc"
}
       以json格式的模板为例,resource_type 为 huaweicloud_vpc {
  "resource": {
    "huaweicloud_vpc": {
      "my_hello_world_vpc": {
        "name": "test_vpc"
      }
    }
  }
} | 
     
| 
        resource_name  | 
      
        String  | 
      
        资源的名称,默认为资源的逻辑名称 以HCL格式的模板为例,resource_name 为 my_hello_world_vpc resource "huaweicloud_vpc" "my_hello_world_vpc" {
  name = "test_vpc"
}
       以json格式的模板为例,resource_name 为 my_hello_world_vpc {
  "resource": {
    "huaweicloud_vpc": {
      "my_hello_world_vpc": {
        "name": "test_vpc"
      }
    }
  }
} | 
     
| 
        index  | 
      
        String  | 
      
        资源的索引,如果用户在模板中使用了count或for_each则会返回index。如果index出现,则resource_name + index可以作为该资源的一种标识 如果用户在模板中使用count,则index为从0开始的数字 以HCL格式的模板为例,用户在模板中可以通过huaweicloud_vpc.my_hello_world_vpc[0]和huaweicloud_vpc.my_hello_world_vpc[1]标识两个资源 resource "huaweicloud_vpc" "my_hello_world_vpc" {
  count = 2
  name = "test_vpc"
}
       以json格式的模板为例,用户在模板中可以通过huaweicloud_vpc.my_hello_world_vpc[0]和huaweicloud_vpc.my_hello_world_vpc[1]标识两个资源 {
  "resource": {
    "huaweicloud_vpc": {
      "my_hello_world_vpc": {
        "name": "test_vpc",
        "count": 2
      }
    }
  }
}
       如果用户在模板中使用for_each,则index为用户自定义的字符串 以HCL格式的模板为例,用户在模板中可以通过huaweicloud_vpc.my_hello_world_vpc["vpc1"]和huaweicloud_vpc.my_hello_world_vpc["vpc2"]标识两个资源 resource "huaweicloud_vpc" "my_hello_world_vpc" {
  for_each = {
    "vpc1" = "test_vpc"
    "vpc2" = "test_vpc"
  }
  name = each.value
}
       以json格式的模板为例,用户在模板中可以通过huaweicloud_vpc.my_hello_world_vpc["vpc1"]和huaweicloud_vpc.my_hello_world_vpc["vpc2"]标识两个资源 {
  "resource": {
    "huaweicloud_vpc": {
      "my_hello_world_vpc": {
        "for_each": {
          "vpc1": "test_vpc",
          "vpc2": "test_vpc"
        }
        "name": "${each.value}"
      }
    }
  }
} | 
     
| 
        supported  | 
      
        Boolean  | 
      
        该资源或该资源当前所给予的参数是否支持进行询价  | 
     
| 
        unsupported_message  | 
      
        String  | 
      
        该资源不支持询价的具体原因  | 
     
| 
        resource_price  | 
      
        Array of ResourcePriceResponse objects  | 
      
        该资源的询价信息 如果该资源支持按需计费,或者该资源为免费资源,则返回该字段;如果该资源不支持询价,则不返回该字段。  | 
     
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        charge_mode  | 
      
        String  | 
      
        计费模式 
 枚举值: 
  | 
     
| 
        sale_price  | 
      
        Double  | 
      
        该资源最终优惠后的金额(只考虑官网折扣、商务折扣以及伙伴折扣,不包含促销折扣及优惠券),保留小数点后2位,向上取整。  | 
     
| 
        discount  | 
      
        Double  | 
      
        该资源的总优惠额,保留小数点后2位,向上取整。  | 
     
| 
        original_price  | 
      
        Double  | 
      
        该资源的原价,保留小数点后2位,向上取整。  | 
     
| 
        period_type  | 
      
        String  | 
      
        计费单位 如果该资源支持按需计费,则会返回该字段;如果该资源为免费资源,则不返回该字段。 
 枚举值: 
  | 
     
| 
        period_count  | 
      
        Integer  | 
      
        该资源的计费数量,需要和period_type搭配使用 如果该资源支持按需计费,则会返回该字段;如果该资源为免费资源,则不返回该字段。 
  | 
     
状态码: 400
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
状态码: 401
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
状态码: 403
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
状态码: 404
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
状态码: 429
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
状态码: 500
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
请求示例
- 预估执行计划价格,该执行计划中包含了一个新创建的vpc资源
    
GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/execution-plans/my_first_execution_plan/prices - 预估执行计划价格,该执行计划中包含了一个新创建的vpc资源,并提供资源栈id和执行计划id以校验是否与当前资源栈和执行计划匹配
    
GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/execution-plans/my_first_execution_plan/prices?stack_id=ea6a4f0e-ee8a-494e-b12a-8be4a1e65af2&execution_plan_id=fb5e781e-a27d-46e2-9954-242753857a9f 
响应示例
状态码: 200
{
   "items" : [ {
    "resource_type" : "huaweicloud_vpc",
    "resource_name" : "vpc",
    "resource_price" : [ {
      "charge_mode" : "FREE",
      "discount" : 0,
      "original_price" : 0,
      "sale_price" : 0
    } ],
    "supported" : true
  } ]
}
  状态码
| 
        状态码  | 
      
        描述  | 
     
|---|---|
| 
        200  | 
      
        询价成功  | 
     
| 
        400  | 
      
        用户请求非法  | 
     
| 
        401  | 
      
        用户身份认证失败  | 
     
| 
        403  | 
      
        用户无权限调用此API  | 
     
| 
        404  | 
      
        执行计划不存在  | 
     
| 
        429  | 
      
        请求数量过多  | 
     
| 
        500  | 
      
        服务器内部错误  |