
# 获取执行计划元数据
#### 功能介绍
获取执行计划元数据（GetExecutionPlanMetadata）
该API可以获取指定执行计划的元数据，包括资源栈ID、资源栈名称、执行计划ID、执行计划名称、执行计划描述、执行计划的创建时间和执行时间、执行计划状态等信息。
具体信息见GetExecutionPlanMetadataResponseBody。
如果需要获取执行计划的具体内容，请调用GetExecutionPlan。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/AOS/doc?api=GetExecutionPlanMetadata)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### URI
GET /v1/{project_id}/stacks/{stack_name}/execution-plans/{execution_plan_name}/metadata
表1路径参数 
| 参数                  | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| project_id          | 是    | String | 项目ID，可以从调用API处获取，也可以从控制台获取。 [项目ID获取方式](https://support.huaweicloud.com/api-ticket/ticket_api_20002.html) 最小长度：**3** 最大长度：**64** |
| stack_name          | 是    | String | 资源栈的名称。此名字在domain_id+区域+project_id下应唯一，可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文，区分大小写。 最小长度：**1** 最大长度：**128**                                                                                                    |
| execution_plan_name | 是    | String | 执行计划的名称。此名字在domain_id+区域+project_id+stack_id下应唯一，可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文，区分大小写。 最小长度：**1** 最大长度：**128**                                                                                          |
   
表2Query参数 
| 参数                | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| 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** |
   
#### 请求参数
表3请求Header参数 
| 参数                | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| Client-Request-Id | 是    | String | 用户指定的，对于此请求的唯一ID，用于定位某个请求，推荐使用UUID 最小长度：**36** 最大长度：**128** |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数                  | 参数类型                                                                                                                     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|
| stack_id            | String                                                                                                                   | 资源栈（stack）的唯一ID。 此Id由资源编排服务在生成资源栈的时候生成，为UUID。 由于资源栈名仅仅在同一时间下唯一，即用户允许先生成一个叫HelloWorld的资源栈，删除，再重新创建一个同名资源栈。 对于团队并行开发，用户可能希望确保，当前我操作的资源栈就是我认为的那个，而不是其他队友删除后创建的同名资源栈。因此，使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同，更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致，则返回400 最小长度：**36** 最大长度：**36**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| stack_name          | String                                                                                                                   | 资源栈的名称。此名字在domain_id+区域+project_id下应唯一，可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文，区分大小写。 最小长度：**1** 最大长度：**128**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| execution_plan_id   | String                                                                                                                   | 执行计划（execution_plan）的唯一ID。 此Id由资源编排服务在生成执行计划的时候生成，为UUID。 由于执行计划名仅仅在同一时间下唯一，即用户允许先生成一个叫HelloWorld的执行计划，删除，再重新创建一个同名执行计划。 对于团队并行开发，用户可能希望确保，当前我操作的执行计划就是我认为的那个，而不是其他队友删除后创建的同名执行计划。因此，使用ID就可以做到强匹配。 资源编排服务保证每次创建的执行计划所对应的ID都不相同，更新不会影响ID。如果给予的execution_plan_id和当前执行计划的ID不一致，则返回400 **注意：** - 创建执行计划后，资源编排服务持久化请求并立即返回，客户端不等待请求最终处理完成，用户无法实时感知请求处理结果   - 资源编排服务最终会将异步部署请求排队，在服务端空闲的情况下逐个处理。用户最大等待时长为1小时    最小长度：**36** 最大长度：**36**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| execution_plan_name | String                                                                                                                   | 执行计划的名称。此名字在domain_id+区域+project_id+stack_id下应唯一，可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文，区分大小写。 最小长度：**1** 最大长度：**128**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| description         | String                                                                                                                   | 执行计划的描述。可用于客户识别自己的执行计划。 最小长度：**0** 最大长度：**1024**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| vars_structure      | Array of [VarsStructure] objects     | HCL参数结构。HCL模板支持参数传入，即，同一个模板可以给予不同的参数而达到不同的效果。 - var_structure可以允许客户提交最简单的字符串类型的参数   - 资源编排服务支持vars_structure，vars_body和vars_uri，如果以上三种方式中声明了同一个变量，将报错400   - vars_structure中的值只支持简单的字符串类型，如果需要使用其他类型，需要用户自己在HCL引用时转换，   - vars_structure最多允许100项，如果vars_structure过大，可以使用vars_uri   - 注意：vars_structure中默认不应该含有任何敏感信息，资源编排服务会直接明文使用、log、展示和存储对应的vars。如为敏感信息，建议设置encryption字段开启加密    或者用户可以使用vars_uri、vars_body，vars_uri和vars_body中支持HCL支持的各种类型以及复杂结构 数组长度：**0 - 100** |
| vars_uri_content    | String                                                                                                                   | vars_uri对应的文件内容                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| vars_body           | String                                                                                                                   | HCL参数文件的内容。HCL模板支持参数传入，即，同一个模板可以给予不同的参数而达到不同的效果。 - vars_body使用HCL的tfvars格式，用户可以将".tfvars"中的内容提交到vars_body中。   - 资源编排服务支持vars_structure，vars_body和vars_uri，如果以上三种方式中声明了同一个变量，将报错400   - vars_body最大长度为51200字节，如果vars_body过大，可以使用vars_uri   - 如果vars中都是简单的字符串格式，可以使用var_structure   - 注意：vars_body中不应该含有任何敏感信息，资源编排服务会直接明文使用、log、展示和存储对应的vars。如为敏感信息，建议通过vars_structure并设置encryption字段传递    最小长度：**0** 最大长度：**51200**                                                  |
| status              | String                                                                                                                   | 执行计划的状态 - *CREATION_IN_PROGRESS* - 正在创建，请等待   - *CREATION_FAILED* - 创建失败，请从status_message获取错误信息汇总   - *AVAILABLE* - 创建完成，可以调用ApplyExecutionPlan API进行执行   - *APPLY_IN_PROGRESS* - 执行中，可通过GetStackMetadata查询资源栈状态，通过ListStackEvents获取执行过程中产生的资源栈事件   - *APPLIED* - 已执行                                                                                                                                                                                                                                                                             |
| status_message      | String                                                                                                                   | 当执行计划的状态为创建失败状态（即为 *CREATION_FAILED* 时），将会展示简要的错误信息总结以供debug                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| create_time         | String                                                                                                                   | 执行计划的生成时间 格式遵循RFC3339，即yyyy-mm-ddTHH:MM:SSZ，如1970-01-01T00:00:00Z                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| apply_time          | String                                                                                                                   | 执行计划的执行时间 格式遵循RFC3339，即yyyy-mm-ddTHH:MM:SSZ，如1970-01-01T00:00:00Z                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| summary             | [ExecutionPlanSummary] object | 执行计划结果的摘要信息，包括： - 即将新增的资源数量   - 即将更新的资源数量   - 即将删除的资源数量    **注意：** - 只有当执行计划状态为*AVAILABLE* 、*APPLY_IN_PROGRESS* 、*APPLIED*时，才会返回摘要信息   - 由于资源栈中记录的资源状态和远端的资源状态不一致而导致的Drift（资源状态漂移）产生的资源变更也将包含在本摘要信息中                                                                                                                                                                                    |
   
 表5VarsStructure 
| 参数         | 参数类型                                                                                                                   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| var_key    | String                                                                                                                 | 参数的名字 最小长度：**1** 最大长度：**32**                                                                                                                                                                                                                                              |
| var_value  | String                                                                                                                 | 参数的值。 注意，参数需要以字符串形式存在，如果是数字，也需要以字符串形式存在，如'10'。 如果需要支持不同类型，或者复杂结构，请使用vars_uri或vars_body 最小长度：**0** 最大长度：**2048** |
| encryption | [EncryptionStructure] object | 如果用户传递的var_value是已经加密过的，可以通过声明此项以要求资源编排服务在使用前进行解密，目前暂时只支持KMS加解密                                                                                                                                                                                                                                                                                                                                                                     |
   
 表6EncryptionStructure 
| 参数  | 参数类型                                                                                                     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|
| kms | [KmsStructure] object | 如果用户给予的var_value是经过KMS加密的，可以通过传递相关加密信息，资源编排服务在使用的时候会帮助用户进行KMS解密 更多关于KMS加密以及KMS加密的样例代码请见：[KMS加密使用场景介绍](https://support.huaweicloud.com/productdesc-dew/dew_01_0006.html) **注意：** - 请确保用户给予资源编排服务的委托中包含对指定密钥ID的操作权限   - KMS每个月有免费试用的额度，如果超过，则KMS需要收费，此费用不是资源编排服务收取，具体标准见：<https://www.huaweicloud.com/pricing.html?tab=detail#/dew>   - KMS加密只代表资源编排服务在存储和传输的时候传递的是密文，但是在stack-events中依然是明文，如果希望在log中以密文形式对待，请在模板中声明sensitive，更多关于sensitive的介绍见：<https://developer.hashicorp.com/terraform/tutorials/configuration-language/sensitive-variables>    |
   
 表7KmsStructure 
| 参数          | 参数类型   | 描述                                                                                                                                                                                                                       |
|:---|:---|:---|
| id          | String | 解密时，资源编排服务应该使用的KMS密钥的ID，通常是加密时所使用的密钥ID 最小长度：**36** 最大长度：**36** |
| cipher_text | String | 数据加密密钥所对应的密文 最小长度：**2** 最大长度：**2048**                          |
   
 表8ExecutionPlanSummary 
| 参数              | 参数类型    | 描述    |
|:---|:---|:---|
| resource_add    | Integer | 新增资源数 |
| resource_update | Integer | 更新资源数 |
| resource_delete | Integer | 删除资源数 |
| resource_import | Integer | 导入资源数 |
   
**状态码：400**
表9响应Body参数 
| 参数                            | 参数类型                                                                                                   | 描述                                                                                                                                                                                    |
|:---|:---|:---|
| error_code                    | String                                                                                                 | 响应码 最小长度：**11** 最大长度：**11** |
| error_msg                     | String                                                                                                 | 响应消息                                                                                                                                                                                  |
| encoded_authorization_message | String                                                                                                 | 包含有关未经授权请求的信息。                                                                                                                                                                        |
| details                       | Array of [Detail] objects | 权限拒绝时服务返回的详细错误信息。                                                                                                                                                                     |
   
 表10Detail 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 响应码  |
| error_msg  | String | 响应消息 |
   
**状态码：401**
表11响应Body参数 
| 参数                            | 参数类型                                                                                                     | 描述                                                                                                                                                                                    |
|:---|:---|:---|
| error_code                    | String                                                                                                   | 响应码 最小长度：**11** 最大长度：**11** |
| error_msg                     | String                                                                                                   | 响应消息                                                                                                                                                                                  |
| encoded_authorization_message | String                                                                                                   | 包含有关未经授权请求的信息。                                                                                                                                                                        |
| details                       | Array of [Detail] objects | 权限拒绝时服务返回的详细错误信息。                                                                                                                                                                     |
   
 表12Detail 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 响应码  |
| error_msg  | String | 响应消息 |
   
**状态码：403**
表13响应Body参数 
| 参数                            | 参数类型                                                                                                     | 描述                                                                                                                                                                                    |
|:---|:---|:---|
| error_code                    | String                                                                                                   | 响应码 最小长度：**11** 最大长度：**11** |
| error_msg                     | String                                                                                                   | 响应消息                                                                                                                                                                                  |
| encoded_authorization_message | String                                                                                                   | 包含有关未经授权请求的信息。                                                                                                                                                                        |
| details                       | Array of [Detail] objects | 权限拒绝时服务返回的详细错误信息。                                                                                                                                                                     |
   
 表14Detail 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 响应码  |
| error_msg  | String | 响应消息 |
   
**状态码：404**
表15响应Body参数 
| 参数                            | 参数类型                                                                                                     | 描述                                                                                                                                                                                    |
|:---|:---|:---|
| error_code                    | String                                                                                                   | 响应码 最小长度：**11** 最大长度：**11** |
| error_msg                     | String                                                                                                   | 响应消息                                                                                                                                                                                  |
| encoded_authorization_message | String                                                                                                   | 包含有关未经授权请求的信息。                                                                                                                                                                        |
| details                       | Array of [Detail] objects | 权限拒绝时服务返回的详细错误信息。                                                                                                                                                                     |
   
 表16Detail 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 响应码  |
| error_msg  | String | 响应消息 |
   
**状态码：429**
表17响应Body参数 
| 参数                            | 参数类型                                                                                                     | 描述                                                                                                                                                                                    |
|:---|:---|:---|
| error_code                    | String                                                                                                   | 响应码 最小长度：**11** 最大长度：**11** |
| error_msg                     | String                                                                                                   | 响应消息                                                                                                                                                                                  |
| encoded_authorization_message | String                                                                                                   | 包含有关未经授权请求的信息。                                                                                                                                                                        |
| details                       | Array of [Detail] objects | 权限拒绝时服务返回的详细错误信息。                                                                                                                                                                     |
   
 表18Detail 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 响应码  |
| error_msg  | String | 响应消息 |
   
**状态码：500**
表19响应Body参数 
| 参数                            | 参数类型                                                                                                     | 描述                                                                                                                                                                                    |
|:---|:---|:---|
| error_code                    | String                                                                                                   | 响应码 最小长度：**11** 最大长度：**11** |
| error_msg                     | String                                                                                                   | 响应消息                                                                                                                                                                                  |
| encoded_authorization_message | String                                                                                                   | 包含有关未经授权请求的信息。                                                                                                                                                                        |
| details                       | Array of [Detail] objects | 权限拒绝时服务返回的详细错误信息。                                                                                                                                                                     |
   
 表20Detail 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 响应码  |
| error_msg  | String | 响应消息 |
   
#### 请求示例
- 获取指定执行计划的元数据
  ```
  GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/execution-plans/my_first_execution_plan/metadata
  ```
  
- 获取指定执行计划的元数据，并提供资源栈id和执行计划id以校验是否与当前资源栈和执行计划匹配
  ```
  GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/execution-plans/my_first_execution_plan/metadata?stack_id=ea6a4f0e-ee8a-494e-b12a-8be4a1e65af2&execution_plan_id=fb5e781e-a27d-46e2-9954-242753857a9f
  ```
  
 
#### 响应示例
**状态码：200**
获取成功
```
{
  "stack_id" : "f689e9fd-97e7-4185-bd8a-7d5f708d45d7",
  "stack_name" : "my_hello_world_stack",
  "execution_plan_id" : "ebc0979a-c617-4382-9147-57fc83a634aa",
  "execution_plan_name" : "my_first_execution_plan",
  "status" : "APPLIED",
  "apply_time" : "2023-05-17T11:56:40Z",
  "create_time" : "2023-05-16T03:37:24Z",
  "summary" : {
    "resource_add" : 2
  }
}
```
#### 状态码
| 状态码 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|
| 200 | 获取成功                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| 400 | 用户请求非法                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 401 | 用户身份认证失败                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| 403 | 用户无权限调用此API                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| 404 | 1. 执行计划不存在   2. 资源栈不存在    |
| 429 | 请求数量过多                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 500 | 服务器内部错误                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   
