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
Support pagination. If there is next_marker in the response, more output is available than is included in the current response. Use this value in the marker request parameter in a subsequent call to get the next part of the outputs. You should repeat this until the next_marker response is set to null.
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. |
marker |
No |
String |
Pagination marker. When a single page cannot return all results, the previous request will return a next_marker to indicate there are more pages. Users can place the value of next_marker here to query information from the next page. This marker can only be used for requests with the same parameters as the previous request. If not specified, the query will start from the first page by default. |
limit |
No |
Integer |
The maximum number of results to return per page |
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. |
page_info |
page_info object |
Pagination information |
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. |
Parameter |
Type |
Description |
---|---|---|
next_marker |
String |
Forward pagination identifier. Marker for the next set of results. If present, more output is available than is included in the current response. Use this value in the marker request parameter in a subsequent call to get the next part of the outputs. You should repeat this until the next_marker response is set to null. |
previous_marker |
String |
Backward pagination identifier. |
current_count |
Integer |
The number of items returned on current page. |
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" } ], "page_info" : { "current_count" : 1, "next_marker" : null, "previous_marker" : "zxc1oHc08HcCmypYGTsOoRcvoHUvHRUAW5NOSnc1oHc08HcCPZrwP5NOeTlRiukJgtGxeujJeuGwGIihaIUCmypYGTsOtqvKPr2xmH8fPqpGWyQ0axGwGZp9aqvx8pQ7m5FvGTsJiKk7gtNFiuaxetdRCks=" } }
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