/
opsgenie_userv2_client.go
105 lines (93 loc) · 3.23 KB
/
opsgenie_userv2_client.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
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
package client
import (
"github.com/AcalephStorage/consul-alerts/Godeps/_workspace/src/github.com/opsgenie/opsgenie-go-sdk/userv2"
)
// OpsGenieUserV2Client is the data type to make User API requests.
type OpsGenieUserV2Client struct {
RestClient
}
// SetOpsGenieClient sets the embedded OpsGenieClient type of the OpsGenieUserV2Client.
func (cli *OpsGenieUserV2Client) SetOpsGenieClient(ogCli OpsGenieClient) {
cli.OpsGenieClient = ogCli
}
// List method retrieves the list of users from OpsGenie.
func (cli *OpsGenieUserV2Client) List(req userv2.ListUsersRequest) (*userv2.ListUsersResponse, error) {
var response userv2.ListUsersResponse
err := cli.sendGetRequest(&req, &response)
if err != nil {
return nil, err
}
return &response, nil
}
// Create method creates new user in OpsGenie.
func (cli *OpsGenieUserV2Client) Create(req userv2.CreateUserRequest) (*userv2.CreateUserResponse, error) {
var response userv2.CreateUserResponse
err := cli.sendPostRequest(&req, &response)
if err != nil {
return nil, err
}
return &response, nil
}
// Get method returns user.
func (cli *OpsGenieUserV2Client) Get(req userv2.GetUserRequest) (*userv2.GetUserResponse, error) {
var response userv2.GetUserResponse
err := cli.sendGetRequest(&req, &response)
if err != nil {
return nil, err
}
return &response, nil
}
// Update method updates data of user
func (cli *OpsGenieUserV2Client) Update(req userv2.UpdateUserRequest) (*userv2.UpdateUserResponse, error) {
var response userv2.UpdateUserResponse
err := cli.sendPatchRequest(&req, &response)
if err != nil {
return nil, err
}
return &response, nil
}
// Delete method deletes user.
func (cli *OpsGenieUserV2Client) Delete(req userv2.DeleteUserRequest) (*userv2.DeleteUserResponse, error) {
var response userv2.DeleteUserResponse
err := cli.sendDeleteRequest(&req, &response)
if err != nil {
return nil, err
}
return &response, nil
}
// ListEscalations method returns list of user escalations.
func (cli *OpsGenieUserV2Client) ListEscalations(req userv2.ListUserEscalationsRequest) (*userv2.ListUserEscalationsResponse, error) {
var response userv2.ListUserEscalationsResponse
err := cli.sendGetRequest(&req, &response)
if err != nil {
return nil, err
}
return &response, nil
}
// ListTeams method returns list of user teams.
func (cli *OpsGenieUserV2Client) ListTeams(req userv2.ListUserTeamsRequest) (*userv2.ListUserTeamsResponse, error) {
var response userv2.ListUserTeamsResponse
err := cli.sendGetRequest(&req, &response)
if err != nil {
return nil, err
}
return &response, nil
}
// ListForwardingRules method returns list of user forwarding rules.
func (cli *OpsGenieUserV2Client) ListForwardingRules(req userv2.ListUserForwardingRulesRequest) (*userv2.ListUserForwardingRulesResponse, error) {
var response userv2.ListUserForwardingRulesResponse
err := cli.sendGetRequest(&req, &response)
if err != nil {
return nil, err
}
return &response, nil
}
// ListSchedules method returns list of user schedules.
func (cli *OpsGenieUserV2Client) ListSchedules(req userv2.ListUserSchedulesRequest) (*userv2.ListUserSchedulesResponse, error) {
var response userv2.ListUserSchedulesResponse
err := cli.sendGetRequest(&req, &response)
if err != nil {
return nil, err
}
return &response, nil
}