in client_tag.go [161:205]
func (c *Client) ListTagResources(project string,
resourceType string,
resourceIDs []string,
tags []ResourceFilterTag,
nextToken string) (respTags []*ResourceTagResponse, respNextToken string, err error) {
tagsBuf, err := json.Marshal(tags)
if err != nil {
return nil, "", NewClientError(err)
}
resourceIDBuf, err := json.Marshal(resourceIDs)
if err != nil {
return nil, "", NewClientError(err)
}
h := map[string]string{
"x-log-bodyrawsize": "0",
"Content-Type": "application/json",
}
v := url.Values{}
v.Add("tags", string(tagsBuf))
v.Add("resourceType", resourceType)
v.Add("resourceId", string(resourceIDBuf))
if nextToken != "" {
v.Add("nextToken", nextToken)
}
uri := "/tags?" + v.Encode()
r, err := c.request(project, "GET", uri, h, nil)
if err != nil {
return nil, "", err
}
defer r.Body.Close()
type ListTagResp struct {
NextToken string `json:"nextToken"`
TagResource []*ResourceTagResponse `json:"tagResources"`
}
buf, err := ioutil.ReadAll(r.Body)
if err != nil {
return nil, "", readResponseError(err)
}
listTagResp := &ListTagResp{}
if err = json.Unmarshal(buf, listTagResp); err != nil {
err = NewClientError(err)
}
return listTagResp.TagResource, listTagResp.NextToken, err
}