/
DescribeInstances.go
37 lines (31 loc) · 1.12 KB
/
DescribeInstances.go
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
package tcapi
import (
"encoding/json"
"fmt"
)
type DescribeInstancesRequest struct {
InstanceIds []string `json:",omitempty" url:",omitempty,dotnumbered"`
Filters []Filter `json:",omitempty" url:",omitempty,dotnumbered"`
Offset int `json:",omitempty" url:",omitempty"`
Limit int `json:",omitempty" url:",omitempty"`
}
type DescribeInstancesResponse struct {
RequestId string `json:",omitempty" url:",omitempty"`
TotalCount int `json:",omitempty" url:",omitempty"`
InstanceSet []Instance `json:",omitempty" url:",omitempty,dotnumbered"`
}
func (c *Client) DescribeInstances(req *DescribeInstancesRequest) (*DescribeInstancesResponse, error) {
resp, err := c.Do("cvm", "DescribeInstances", req)
if err != nil {
return nil, fmt.Errorf("[cvm:DescribeInstances] request failed: %s", err)
}
ret := new(DescribeInstancesResponse)
err = json.Unmarshal(*resp, ret)
if err != nil {
return nil, fmt.Errorf("[cvm:DescribeInstances] response unmarshal failed: %s", err)
}
if ret == nil {
return nil, fmt.Errorf("[cvm:DescribeInstances] response unmarshaled to nil")
}
return ret, nil
}