1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package gitlab
18
19 import (
20 "fmt"
21 "net/http"
22 "time"
23 )
24
25
26
27
28
29
30 type InstanceClustersService struct {
31 client *Client
32 }
33
34
35
36
37 type InstanceCluster struct {
38 ID int `json:"id"`
39 Name string `json:"name"`
40 Domain string `json:"domain"`
41 Managed bool `json:"managed"`
42 CreatedAt *time.Time `json:"created_at"`
43 ProviderType string `json:"provider_type"`
44 PlatformType string `json:"platform_type"`
45 EnvironmentScope string `json:"environment_scope"`
46 ClusterType string `json:"cluster_type"`
47 User *User `json:"user"`
48 PlatformKubernetes *PlatformKubernetes `json:"platform_kubernetes"`
49 ManagementProject *ManagementProject `json:"management_project"`
50 }
51
52 func (v InstanceCluster) String() string {
53 return Stringify(v)
54 }
55
56
57
58
59
60 func (s *InstanceClustersService) ListClusters(options ...RequestOptionFunc) ([]*InstanceCluster, *Response, error) {
61 u := "admin/clusters"
62
63 req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
64 if err != nil {
65 return nil, nil, err
66 }
67
68 var ics []*InstanceCluster
69 resp, err := s.client.Do(req, &ics)
70 if err != nil {
71 return nil, resp, err
72 }
73
74 return ics, resp, nil
75 }
76
77
78
79
80
81 func (s *InstanceClustersService) GetCluster(cluster int, options ...RequestOptionFunc) (*InstanceCluster, *Response, error) {
82 u := fmt.Sprintf("admin/clusters/%d", cluster)
83
84 req, err := s.client.NewRequest(http.MethodGet, u, nil, options)
85 if err != nil {
86 return nil, nil, err
87 }
88
89 ic := new(InstanceCluster)
90 resp, err := s.client.Do(req, &ic)
91 if err != nil {
92 return nil, resp, err
93 }
94
95 return ic, resp, nil
96 }
97
98
99
100
101
102 func (s *InstanceClustersService) AddCluster(opt *AddClusterOptions, options ...RequestOptionFunc) (*InstanceCluster, *Response, error) {
103 u := "admin/clusters/add"
104
105 req, err := s.client.NewRequest(http.MethodPost, u, opt, options)
106 if err != nil {
107 return nil, nil, err
108 }
109
110 ic := new(InstanceCluster)
111 resp, err := s.client.Do(req, ic)
112 if err != nil {
113 return nil, resp, err
114 }
115
116 return ic, resp, nil
117 }
118
119
120
121
122
123 func (s *InstanceClustersService) EditCluster(cluster int, opt *EditClusterOptions, options ...RequestOptionFunc) (*InstanceCluster, *Response, error) {
124 u := fmt.Sprintf("admin/clusters/%d", cluster)
125
126 req, err := s.client.NewRequest(http.MethodPut, u, opt, options)
127 if err != nil {
128 return nil, nil, err
129 }
130
131 ic := new(InstanceCluster)
132 resp, err := s.client.Do(req, ic)
133 if err != nil {
134 return nil, resp, err
135 }
136
137 return ic, resp, nil
138 }
139
140
141
142
143
144 func (s *InstanceClustersService) DeleteCluster(cluster int, options ...RequestOptionFunc) (*Response, error) {
145 u := fmt.Sprintf("admin/clusters/%d", cluster)
146
147 req, err := s.client.NewRequest(http.MethodDelete, u, nil, options)
148 if err != nil {
149 return nil, err
150 }
151
152 return s.client.Do(req, nil)
153 }
154
View as plain text