Listing Stack Resources
Function
ListStackResources
This API lists the information about all resources managed by a stack.
When the stack is in a non-final state, only brief information about the resources in the stack is output, including logical_resource_name, logical_resource_type, physical_resource_id, physical_resource_name, and status. When the stack is in the final status, additional detailed information is output. For example, the resource_attributes.
The non-final states may include:
-
DEPLOYMENT_IN_PROGRESS
-
DELETION_IN_PROGRESS
-
ROLLBACK_IN_PROGRESS
URI
GET /v1/{project_id}/stacks/{stack_name}/resources
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
A project ID is obtained by calling an API or from the console. |
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. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
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. |
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. |
Response Parameters
Status code: 200
Parameter |
Type |
Description |
---|---|---|
stack_resources |
Array of StackResource objects |
List of resources managed by a stack. |
Parameter |
Type |
Description |
---|---|---|
physical_resource_id |
String |
Physical ID of a resource, generated by the resource provider, cloud service provider, or other service providers during resource deployment. |
physical_resource_name |
String |
Physical name of the resource, defined by the resource provider, cloud service provider, or other service providers during resource deployment. |
logical_resource_name |
String |
Logical name of the resource, defined in a template. Logical variables are only used as identifiers of the resource in the template. For example, in the following HCL template, the value of logical_resource_name is my_hello_world_vpc. resource "huaweicloud_vpc" "my_hello_world_vpc" { name = "test_vpc" } In a JSON template, the value of logical_resource_name is my_hello_world_vpc. { "resource": { "huaweicloud_vpc": { "my_hello_world_vpc": { "name": "test_vpc" } } } } |
logical_resource_type |
String |
Resource type. Logical variables are only used as identifiers of the resource in the template. For example, in the following HCL template, the value of logical_resource_type is huaweicloud_vpc. resource "huaweicloud_vpc" "my_hello_world_vpc" { name = "test_vpc" } In a JSON template, the value of logical_resource_type is huaweicloud_vpc. { "resource": { "huaweicloud_vpc": { "my_hello_world_vpc": { "name": "test_vpc" } } } } |
index_key |
String |
Resource index. If count or for_each is used in a template, index_key is returned. If index_key appears, logical_resource_name + index_key can be used as an identifier of the resource. If count is used in a template, index_key is a number starting from 0. For example, in the following HCL template, you can use huaweicloud_vpc.my_hello_world_vpc[0] and huaweicloud_vpc.my_hello_world_vpc[1] to identify two resources. resource "huaweicloud_vpc" "my_hello_world_vpc" { count = 2 name = "test_vpc" } In a JSON template, you can use huaweicloud_vpc.my_hello_world_vpc[0] and huaweicloud_vpc.my_hello_world_vpc[1] to identify two resources. { "resource": { "huaweicloud_vpc": { "my_hello_world_vpc": { "name": "test_vpc", "count": 2 } } } } If for_each is used in a template, index_key is a user-defined string. For example, in the following HCL template, huaweicloud_vpc.my_hello_world_vpc["vpc1"] and huaweicloud_vpc.my_hello_world_vpc["vpc2"] identify two resources. resource "huaweicloud_vpc" "my_hello_world_vpc" { for_each = { "vpc1" = "test_vpc" "vpc2" = "test_vpc" } name = each.value } In a JSON template, huaweicloud_vpc.my_hello_world_vpc["vpc1"] and huaweicloud_vpc.my_hello_world_vpc["vpc2"] identify two resources. { "resource": { "huaweicloud_vpc": { "my_hello_world_vpc": { "for_each": { "vpc1": "test_vpc", "vpc2": "test_vpc" } "name": "${each.value}" } } } } |
resource_status |
String |
Status of the resource.
|
status_message |
String |
If the resource is in a failure state (ending with FAILED), a summary of the error information is displayed for debugging. |
resource_attributes |
Array of ResourceAttribute objects |
Resource attribute list. |
Parameter |
Type |
Description |
---|---|---|
key |
String |
Resource attribute key. |
value |
String |
Resource attribute value. |
Status code: 400
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Response code. |
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. |
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. |
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. |
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. |
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. |
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
-
List the stack resources.
GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/resources
-
List the stack resources and check whether the stack ID matches the current stack.
GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/resources?stack_id=ea6a4f0e-ee8a-494e-b12a-8be4a1e65af2
Example Responses
Status code: 200
Stack resources listed.
{ "stack_resources" : [ { "logical_resource_name" : "vpc", "logical_resource_type" : "huaweicloud_vpc", "physical_resource_id" : "38d617da-9b7f-4550-9ff7-d0e271dd4735", "physical_resource_name" : "my_vpc", "resource_attributes" : [ { "key" : "cidr", "value" : "172.16.0.0/16" }, { "key" : "description", "value" : "" }, { "key" : "enterprise_project_id", "value" : "0" }, { "key" : "id", "value" : "38d617da-9b7f-4550-9ff7-d0e271dd4735" }, { "key" : "name", "value" : "test_name" }, { "key" : "region", "value" : "cn-north-7" }, { "key" : "routes", "value" : "[]" }, { "key" : "secondary_cidr", "value" : "null" }, { "key" : "status", "value" : "OK" }, { "key" : "tags", "value" : "null" }, { "key" : "timeouts", "value" : "null" } ], "resource_status" : "CREATION_COMPLETE" } ] }
Status Codes
Status Code |
Description |
---|---|
200 |
Stack resources listed. |
400 |
Invalid request. |
401 |
Authentication failed. |
403 |
The user does not have the permission to call this API. |
404 |
The stack does not exist. |
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