Updating a Stack
Function
This API updates the attributes of a stack based on the information provided by users. One or more of the following attributes can be updated: description, enable_deletion_protection, enable_auto_rollback, and agencies.
This API updates only the fields contained in the information assigned by the user.
Note: All attributes are overwritten once updated. New parameters will overwrite original attributes of a stack.
For example, if you want to add agencies, call GetStackMetadata to obtain the original agencies, integrate the information of old and new agencies, and then call UpdateStack.
- A stack cannot be updated if it is in a non-final state (ending with IN_PROGRESS). The states may include:
- DEPLOYMENT_IN_PROGRESS
- DELETION_IN_PROGRESS
- ROLLBACK_IN_PROGRESS
- If the value of enable_auto_rollback is changed from false to true, the stack state is determined more strictly. A stack cannot be updated if it is in a state ending with _FAILED. The states may include:
- DEPLOYMENT_FAILED
- ROLLBACK_FAILED
- DELETION_FAILED
URI
PATCH /v1/{project_id}/stacks/{stack_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 |
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 |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
description |
No |
String |
Description of a stack. It can be used by customers to identify their own stacks. Minimum: 0 Maximum: 1024 |
stack_id |
No |
String |
Unique stack ID. It is a UUID generated by RFS when a stack is created. Stack names are unique at one specific time, so you can create a stack named HelloWorld and another stack with the same name after deleting the first one. For parallel development, team members may want to ensure that they are operating the stack they created, not one with the same name created by other members after deleting the previous one. To avoid this mismatch, check the ID, since RFS ensures each stack has a unique ID that does not change with updates. If the stack_id value differs from the current stack ID, 400 is returned. Minimum: 36 Maximum: 36 |
enable_deletion_protection |
No |
Boolean |
Deletion protection flag. If this variable is not assigned, the default value is false, indicating that deletion protection is disabled by default. (After deletion protection is enabled, stacks cannot be deleted.) In the UpdateStack API, if this variable is not assigned in the RequestBody, the deletion protection attribute of the stack will not be updated. |
enable_auto_rollback |
No |
Boolean |
Auto-rollback flag. If this variable is not assigned, the default value is false, indicating that auto-rollback is disabled by default. (After auto-rollback is enabled, if the deployment fails, the stack is automatically rolled back and returns to the previous stable status.) In the UpdateStack API, if this variable is not assigned in the RequestBody, the auto-rollback attribute of the stack will not be updated. This property is mutually exclusive with the import resources using templates feature, which does not allow the deployment of templates containing imported resources if the stack's auto-rollback is set to true. |
agencies |
No |
Array of Agency objects |
Agency information. RFS uses an agency only in requests that involve resource operations, such as creating a stack (triggering deployment), creating an execution plan, deploying a stack, and deleting a stack. In addition, the agency applies only to resource operations performed by the provider bound to the agency. If the permissions provided by the agency are insufficient, operations on related resources may fail. Array Length: 0 - 10 |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
provider_name |
Yes |
String |
Name of the provider used by a user. If the provider_name value given by the user is duplicate, 400 is returned. Minimum: 1 Maximum: 128 |
agency_name |
No |
String |
IAM agency used by the corresponding provider. RFS uses this agency to access and create resources of the provider. Either agency_name or agency_urn must be specified. Minimum: 1 Maximum: 64 |
agency_urn |
No |
String |
Agency URN When a user defines an agency, either agency_name or agency_urn must be specified. You are advised to set agency_urn when using the trust agency. agency_name can only receive common agency names. If agency_name is set to a trust agency name, template deployment will fail. |
Response Parameters
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. |
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. |
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. |
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. |
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. |
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. |
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. |
Example Requests
- Update the description of a stack.
PATCH https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack { "stack_id" : "1b15e005-bdbb-4bd7-8f9a-a09b6774b4b3", "description" : "my hello world stack" }
- Disable deletion protection and auto-rollback of a stack.
PATCH https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack { "stack_id" : "1b15e005-bdbb-4bd7-8f9a-a09b6774b4b3", "enable_deletion_protection" : false, "enable_auto_rollback" : false }
- Update agency information of a stack.
PATCH https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack { "stack_id" : "1b15e005-bdbb-4bd7-8f9a-a09b6774b4b3", "agencies" : { "provider_name" : "my_hello_world_provider", "agency_name" : "my_agency" } }
Example Responses
None
Status Codes
Status Code |
Description |
---|---|
204 |
Updated. |
400 |
Invalid request. |
401 |
Authentication failed. |
403 |
|
404 |
The stack does not exist. |
409 |
Request conflict. Another request is being processed on the current stack. |
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.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot