File: schedule.go

package info (click to toggle)
golang-github-denverdino-aliyungo 0.0~git20180921.13fa8aa-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 1,824 kB
  • sloc: xml: 1,359; makefile: 3
file content (140 lines) | stat: -rw-r--r-- 3,837 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
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
package ess

import "github.com/denverdino/aliyungo/common"

type RecurrenceType string

const (
	Daily   = RecurrenceType("Daily")
	Weekly  = RecurrenceType("Weekly")
	Monthly = RecurrenceType("Monthly")
)

type CreateScheduledTaskArgs struct {
	RegionId             common.Region
	ScheduledAction      string
	LaunchTime           string
	ScheduledTaskName    string
	Description          string
	LaunchExpirationTime int
	RecurrenceType       RecurrenceType
	RecurrenceValue      string
	RecurrenceEndTime    string
	TaskEnabled          bool
}

type CreateScheduledTaskResponse struct {
	common.Response
	ScheduledTaskId string
}

// CreateScheduledTask create schedule task
//
// You can read doc at https://help.aliyun.com/document_detail/25957.html?spm=5176.doc25950.6.638.FfQ0BR
func (client *Client) CreateScheduledTask(args *CreateScheduledTaskArgs) (resp *CreateScheduledTaskResponse, err error) {
	response := CreateScheduledTaskResponse{}
	err = client.Invoke("CreateScheduledTask", args, &response)

	if err != nil {
		return nil, err
	}
	return &response, nil
}

type ModifyScheduledTaskArgs struct {
	RegionId             common.Region
	ScheduledTaskId      string
	ScheduledAction      string
	LaunchTime           string
	ScheduledTaskName    string
	Description          string
	LaunchExpirationTime int
	RecurrenceType       RecurrenceType
	RecurrenceValue      string
	RecurrenceEndTime    string
	TaskEnabled          bool
}

type ModifyScheduledTaskResponse struct {
	common.Response
}

// ModifyScheduledTask modify schedule task
//
// You can read doc at https://help.aliyun.com/document_detail/25958.html?spm=5176.doc25957.6.639.rgxQ1c
func (client *Client) ModifyScheduledTask(args *ModifyScheduledTaskArgs) (resp *ModifyScheduledTaskResponse, err error) {
	response := ModifyScheduledTaskResponse{}
	err = client.Invoke("ModifyScheduledTask", args, &response)

	if err != nil {
		return nil, err
	}
	return &response, nil
}

type DescribeScheduledTasksArgs struct {
	RegionId          common.Region
	ScheduledTaskId   common.FlattenArray
	ScheduledTaskName common.FlattenArray
	ScheduledAction   common.FlattenArray
	common.Pagination
}

type DescribeScheduledTasksResponse struct {
	common.Response
	common.PaginationResult
	ScheduledTasks struct {
		ScheduledTask []ScheduledTaskItemType
	}
}

type ScheduledTaskItemType struct {
	ScheduledTaskId      string
	ScheduledTaskName    string
	Description          string
	ScheduledAction      string
	LaunchTime           string
	RecurrenceType       string
	RecurrenceValue      string
	RecurrenceEndTime    string
	LaunchExpirationTime int
	TaskEnabled          bool
}

// DescribeScheduledTasks describes scaling tasks
//
// You can read doc at https://help.aliyun.com/document_detail/25959.html?spm=5176.doc25958.6.640.cLccdR
func (client *Client) DescribeScheduledTasks(args *DescribeScheduledTasksArgs) (tasks []ScheduledTaskItemType, pagination *common.PaginationResult, err error) {
	args.Validate()
	response := DescribeScheduledTasksResponse{}

	err = client.InvokeByFlattenMethod("DescribeScheduledTasks", args, &response)

	if err == nil {
		return response.ScheduledTasks.ScheduledTask, &response.PaginationResult, nil
	}

	return nil, nil, err
}

type DeleteScheduledTaskArgs struct {
	RegionId        common.Region
	ScheduledTaskId string
}

type DeleteScheduledTaskResponse struct {
	common.Response
}

// DeleteScheduledTask delete schedule task
//
// You can read doc at https://help.aliyun.com/document_detail/25960.html?spm=5176.doc25959.6.641.aGdNuW
func (client *Client) DeleteScheduledTask(args *DeleteScheduledTaskArgs) (resp *DeleteScheduledTaskResponse, err error) {
	response := DeleteScheduledTaskResponse{}
	err = client.Invoke("DeleteScheduledTask", args, &response)

	if err != nil {
		return nil, err
	}
	return &response, nil
}