func()

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
}