Applying an Execution Plan
Function
ApplyExecutionPlan
This API applies an execution plan.
-
Once the execution request is received, the state of the execution plan changes to APPLY_IN_PROGRESS, and the request is processed asynchronously in the background.
-
Once the execution is completed, the state of the execution plan changes to APPLIED.
-
You can call GetStackMetadata to query the stack status to trace the stack deployment status and check whether the execution is successful.
-
If resources defined in template (including imported resources) are deleted, the actual resources will be deleted when execution plan is applied. You can call GetStackMetadata or ListStacks to track the deletion.
If you do not want to deploy a stack using an execution plan, you can call DeployStack for direct deployment.
Expiration of execution plans:
-
If a stack has multiple execution plans, all the remaining plans will expire once any of them is applied (regardless of whether the execution is successful).
-
If the specified execution plan has expired when you call ApplyExecutionPlan, 403 is returned.
If a stack is in a non-final state (ending with IN_PROGRESS), its execution plans cannot be applied and 403 is returned. The non-final states may include:
URI
POST /v1/{project_id}/stacks/{stack_name}/execution-plans/{execution_plan_name}
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| project_id | Yes | String | A project ID is obtained by calling an API or from the console. Minimum: 3 Maximum: 64 |
| stack_name | Yes | String | A stack name is unique within its domain (domain_id), region, and project (project_id). It is case-sensitive and starts with a letter. Only letters, digits, underscores (_), and hyphens (-) are allowed. Minimum: 1 Maximum: 128 |
| execution_plan_name | Yes | String | An execution plan name is unique within its domain (domain_id), region, project (project_id), and stack (stack_id). It is case-sensitive and starts with a letter. Only letters, digits, underscores (_), and hyphens (-) are allowed. Minimum: 1 Maximum: 128 |
Request Parameters
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| Client-Request-Id | Yes | String | A unique request ID is specified by a user to locate a request. UUID is recommended. Minimum: 36 Maximum: 128 |
Response Parameters
Status code: 202
Status code: 400
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. |
| error_msg | String | Response message. |
Status code: 401
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. |
| error_msg | String | Response message. |
Status code: 403
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. |
| error_msg | String | Response message. |
Status code: 404
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. |
| error_msg | String | Response message. |
Status code: 409
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. |
| error_msg | String | Response message. |
Status code: 429
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. |
| error_msg | String | Response message. |
Status code: 500
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
Example Requests
-
Apply an execution plan of a specified stack.
POST https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/execution-plans/my_first_execution_plan -
Apply an execution plan of a specified stack, with a stack ID provided to check whether the stack ID matches the current stack.
POST https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/execution-plans/my_first_execution_plan { "stack_id" : "f689e9fd-97e7-4185-bd8a-7d5f708d45d7" } -
Apply an execution plan of a specified stack, with an execution plan ID provided to check whether the execution plan ID matches the current execution plan.
POST https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/execution-plans/my_first_execution_plan { "execution_plan_id" : "fb5e781e-a27d-46e2-9954-242753857a9f" } -
Apply an execution plan of a specified stack, with a stack ID and an execution plan ID provided to check whether the stack ID matches the current stack and the execution plan ID matches the current execution plan.
POST https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/execution-plans/my_first_execution_plan { "stack_id" : "f689e9fd-97e7-4185-bd8a-7d5f708d45d7", "execution_plan_id" : "fb5e781e-a27d-46e2-9954-242753857a9f" }
Example Responses
Status code: 202
The request is accepted and processed asynchronously.
{
"deployment_id" : "07e21c3e-d33c-4513-9d0f-e9e673817772"
} Status Codes
| Status Code | Description |
|---|---|
| 202 | The request is accepted and processed asynchronously. |
| 400 | Invalid request. |
| 401 | Authentication failed. |
| 403 | |
| 404 | |
| 409 | Execution requests conflict. Another request is being processed on the execution plan. |
| 429 | Too frequent requests. |
| 500 | Internal server error. |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.