1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
package ros
import (
"fmt"
"net/http"
"github.com/denverdino/aliyungo/common"
"github.com/denverdino/aliyungo/util"
)
//https://help.aliyun.com/document_detail/28916.html?spm=5176.doc49066.6.588.d7Ntjs
type Resource struct {
Id string
Name string
Type string
Status string
StatusReason string
Updated string
PhysicalId string
}
func (client *Client) DescribeResources(stackId, stackName string) ([]*Resource, error) {
response := make([]*Resource, 0)
err := client.Invoke("", http.MethodGet, fmt.Sprintf("/stacks/%s/%s/resources", stackName, stackId), nil, nil, &response)
if err != nil {
return nil, err
}
return response, nil
}
//https://help.aliyun.com/document_detail/28917.html?spm=5176.doc28916.6.589.BUPJqx
func (client *Client) DescribeResource(stackId, stackName, resourceName string) (*Resource, error) {
response := &Resource{}
err := client.Invoke("", http.MethodGet, fmt.Sprintf("/stacks/%s/%s/resources/%s", stackName, stackId, resourceName), nil, nil, &response)
if err != nil {
return nil, err
}
return response, nil
}
//https://help.aliyun.com/document_detail/28918.html?spm=5176.doc28917.6.590.smknll
type SupportStatus string
const (
SUPPORT_STATUS_UNKNOWN = "UNKNOWN"
SUPPORT_STATUS_SUPPORTED = "SUPPORTED"
SUPPORT_STATUS_DEPRECATED = "DEPRECATED"
SUPPORT_STATUS_UNSUPPORTED = "UNSUPPORTED"
SUPPORT_STATUS_HIDDEN = "HIDDEN"
)
type DescribeResoureTypesRequest struct {
SupportStatus SupportStatus
}
type DescribeResoureTypesResponse struct {
common.Response
ResourceTypes []string
}
func (client *Client) DescribeResoureTypes(supportStatus SupportStatus) (*DescribeResoureTypesResponse, error) {
query := util.ConvertToQueryValues(&DescribeResoureTypesRequest{
SupportStatus: supportStatus,
})
response := &DescribeResoureTypesResponse{}
err := client.Invoke("", http.MethodGet, "/resource_types", query, nil, response)
if err != nil {
return nil, err
}
return response, nil
}
//https://help.aliyun.com/document_detail/28919.html?spm=5176.doc28918.6.591.7QkDYC
type DescribeResoureTypeResponse struct {
common.Response
ResourceType string
Attributes interface{}
SupportStatus interface{}
Properties interface{}
}
func (client *Client) DescribeResoureType(typeName string) (*DescribeResoureTypeResponse, error) {
response := &DescribeResoureTypeResponse{}
err := client.Invoke("", http.MethodGet, fmt.Sprintf("/resource_types/%s", typeName), nil, nil, response)
if err != nil {
return nil, err
}
return response, nil
}
//https://help.aliyun.com/document_detail/28920.html?spm=5176.doc28919.6.592.IiEwar
type DescribeResoureTypeTemplateResponse struct {
common.Response
ROSTemplateFormatVersion string
Parameters interface{}
Outputs interface{}
Resources interface{}
}
func (client *Client) DescribeResoureTypeTemplate(typeName string) (*DescribeResoureTypeTemplateResponse, error) {
response := &DescribeResoureTypeTemplateResponse{}
err := client.Invoke("", http.MethodGet, fmt.Sprintf("/resource_types/%s/template", typeName), nil, nil, response)
if err != nil {
return nil, err
}
return response, nil
}
|