File: changeLogs.go

package info (click to toggle)
golang-github-denverdino-aliyungo 0.0~git20180921.13fa8aa-4
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 1,824 kB
  • sloc: xml: 1,359; makefile: 3
file content (66 lines) | stat: -rw-r--r-- 1,326 bytes parent folder | download | duplicates (3)
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
package pvtz

import (
	"github.com/denverdino/aliyungo/common"
	"github.com/denverdino/aliyungo/util"
)

type DescribeChangeLogsArgs struct {
	StartTime    int64
	EndTime      int64
	EntityType   string
	Keyword      string
	Lang         string
	UserClientIp string
	common.Pagination
}

//
type ChangeLogType struct {
	OperTimestamp int64
	OperAction    string
	OperObject    string
	EntityId      string
	EntityName    string
	OperIp        string
	OperTime      util.ISO6801Time
	Id            int64
	Content       string
	IsPtr         bool
	RecordCount   int
}

type DescribeChangeLogsResponse struct {
	common.Response
	common.PaginationResult
	ChangeLogs struct {
		ChangeLog []ChangeLogType
	}
}

// DescribeChangeLogs describes change logs
//
// You can read doc at https://help.aliyun.com/document_detail/66253.html
func (client *Client) DescribeChangeLogs(args *DescribeChangeLogsArgs) (logs []ChangeLogType, err error) {

	result := []ChangeLogType{}

	for {
		response := DescribeChangeLogsResponse{}
		err = client.Invoke("DescribeChangeLogs", args, &response)

		if err != nil {
			return result, err
		}

		result = append(result, response.ChangeLogs.ChangeLog...)

		nextPage := response.PaginationResult.NextPage()
		if nextPage == nil {
			break
		}
		args.Pagination = *nextPage
	}

	return result, nil
}