1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package monitoring
18
19 import (
20 "context"
21 "fmt"
22 "math"
23 "net/url"
24 "time"
25
26 "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb"
27 gax "github.com/googleapis/gax-go/v2"
28 "google.golang.org/api/iterator"
29 "google.golang.org/api/option"
30 gtransport "google.golang.org/api/transport/grpc"
31 "google.golang.org/grpc"
32 "google.golang.org/grpc/codes"
33 "google.golang.org/grpc/metadata"
34 "google.golang.org/protobuf/proto"
35 )
36
37 var newUptimeCheckClientHook clientHook
38
39
40 type UptimeCheckCallOptions struct {
41 ListUptimeCheckConfigs []gax.CallOption
42 GetUptimeCheckConfig []gax.CallOption
43 CreateUptimeCheckConfig []gax.CallOption
44 UpdateUptimeCheckConfig []gax.CallOption
45 DeleteUptimeCheckConfig []gax.CallOption
46 ListUptimeCheckIps []gax.CallOption
47 }
48
49 func defaultUptimeCheckClientOptions() []option.ClientOption {
50 return []option.ClientOption{
51 option.WithEndpoint("monitoring.googleapis.com:443"),
52 option.WithGRPCDialOption(grpc.WithDisableServiceConfig()),
53 option.WithScopes(DefaultAuthScopes()...),
54 option.WithGRPCDialOption(grpc.WithDefaultCallOptions(
55 grpc.MaxCallRecvMsgSize(math.MaxInt32))),
56 }
57 }
58
59 func defaultUptimeCheckCallOptions() *UptimeCheckCallOptions {
60 return &UptimeCheckCallOptions{
61 ListUptimeCheckConfigs: []gax.CallOption{
62 gax.WithRetry(func() gax.Retryer {
63 return gax.OnCodes([]codes.Code{
64 codes.DeadlineExceeded,
65 codes.Unavailable,
66 }, gax.Backoff{
67 Initial: 100 * time.Millisecond,
68 Max: 30000 * time.Millisecond,
69 Multiplier: 1.30,
70 })
71 }),
72 },
73 GetUptimeCheckConfig: []gax.CallOption{
74 gax.WithRetry(func() gax.Retryer {
75 return gax.OnCodes([]codes.Code{
76 codes.DeadlineExceeded,
77 codes.Unavailable,
78 }, gax.Backoff{
79 Initial: 100 * time.Millisecond,
80 Max: 30000 * time.Millisecond,
81 Multiplier: 1.30,
82 })
83 }),
84 },
85 CreateUptimeCheckConfig: []gax.CallOption{},
86 UpdateUptimeCheckConfig: []gax.CallOption{},
87 DeleteUptimeCheckConfig: []gax.CallOption{
88 gax.WithRetry(func() gax.Retryer {
89 return gax.OnCodes([]codes.Code{
90 codes.DeadlineExceeded,
91 codes.Unavailable,
92 }, gax.Backoff{
93 Initial: 100 * time.Millisecond,
94 Max: 30000 * time.Millisecond,
95 Multiplier: 1.30,
96 })
97 }),
98 },
99 ListUptimeCheckIps: []gax.CallOption{
100 gax.WithRetry(func() gax.Retryer {
101 return gax.OnCodes([]codes.Code{
102 codes.DeadlineExceeded,
103 codes.Unavailable,
104 }, gax.Backoff{
105 Initial: 100 * time.Millisecond,
106 Max: 30000 * time.Millisecond,
107 Multiplier: 1.30,
108 })
109 }),
110 },
111 }
112 }
113
114
115
116
117 type UptimeCheckClient struct {
118
119 connPool gtransport.ConnPool
120
121
122 uptimeCheckClient monitoringpb.UptimeCheckServiceClient
123
124
125 CallOptions *UptimeCheckCallOptions
126
127
128 xGoogMetadata metadata.MD
129 }
130
131
132
133
134
135
136
137
138
139
140
141 func NewUptimeCheckClient(ctx context.Context, opts ...option.ClientOption) (*UptimeCheckClient, error) {
142 clientOpts := defaultUptimeCheckClientOptions()
143
144 if newUptimeCheckClientHook != nil {
145 hookOpts, err := newUptimeCheckClientHook(ctx, clientHookParams{})
146 if err != nil {
147 return nil, err
148 }
149 clientOpts = append(clientOpts, hookOpts...)
150 }
151
152 connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...)
153 if err != nil {
154 return nil, err
155 }
156 c := &UptimeCheckClient{
157 connPool: connPool,
158 CallOptions: defaultUptimeCheckCallOptions(),
159
160 uptimeCheckClient: monitoringpb.NewUptimeCheckServiceClient(connPool),
161 }
162 c.setGoogleClientInfo()
163
164 return c, nil
165 }
166
167
168
169
170 func (c *UptimeCheckClient) Connection() *grpc.ClientConn {
171 return c.connPool.Conn()
172 }
173
174
175
176 func (c *UptimeCheckClient) Close() error {
177 return c.connPool.Close()
178 }
179
180
181
182
183 func (c *UptimeCheckClient) setGoogleClientInfo(keyval ...string) {
184 kv := append([]string{"gl-go", gax.GoVersion}, keyval...)
185 kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version)
186 c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...))
187 }
188
189
190
191 func (c *UptimeCheckClient) ListUptimeCheckConfigs(ctx context.Context, req *monitoringpb.ListUptimeCheckConfigsRequest, opts ...gax.CallOption) *UptimeCheckConfigIterator {
192 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent())))
193 ctx = insertMetadata(ctx, c.xGoogMetadata, md)
194 opts = append(c.CallOptions.ListUptimeCheckConfigs[0:len(c.CallOptions.ListUptimeCheckConfigs):len(c.CallOptions.ListUptimeCheckConfigs)], opts...)
195 it := &UptimeCheckConfigIterator{}
196 req = proto.Clone(req).(*monitoringpb.ListUptimeCheckConfigsRequest)
197 it.InternalFetch = func(pageSize int, pageToken string) ([]*monitoringpb.UptimeCheckConfig, string, error) {
198 var resp *monitoringpb.ListUptimeCheckConfigsResponse
199 req.PageToken = pageToken
200 if pageSize > math.MaxInt32 {
201 req.PageSize = math.MaxInt32
202 } else {
203 req.PageSize = int32(pageSize)
204 }
205 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
206 var err error
207 resp, err = c.uptimeCheckClient.ListUptimeCheckConfigs(ctx, req, settings.GRPC...)
208 return err
209 }, opts...)
210 if err != nil {
211 return nil, "", err
212 }
213
214 it.Response = resp
215 return resp.UptimeCheckConfigs, resp.NextPageToken, nil
216 }
217 fetch := func(pageSize int, pageToken string) (string, error) {
218 items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
219 if err != nil {
220 return "", err
221 }
222 it.items = append(it.items, items...)
223 return nextPageToken, nil
224 }
225 it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
226 it.pageInfo.MaxSize = int(req.PageSize)
227 it.pageInfo.Token = req.PageToken
228 return it
229 }
230
231
232 func (c *UptimeCheckClient) GetUptimeCheckConfig(ctx context.Context, req *monitoringpb.GetUptimeCheckConfigRequest, opts ...gax.CallOption) (*monitoringpb.UptimeCheckConfig, error) {
233 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
234 ctx = insertMetadata(ctx, c.xGoogMetadata, md)
235 opts = append(c.CallOptions.GetUptimeCheckConfig[0:len(c.CallOptions.GetUptimeCheckConfig):len(c.CallOptions.GetUptimeCheckConfig)], opts...)
236 var resp *monitoringpb.UptimeCheckConfig
237 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
238 var err error
239 resp, err = c.uptimeCheckClient.GetUptimeCheckConfig(ctx, req, settings.GRPC...)
240 return err
241 }, opts...)
242 if err != nil {
243 return nil, err
244 }
245 return resp, nil
246 }
247
248
249 func (c *UptimeCheckClient) CreateUptimeCheckConfig(ctx context.Context, req *monitoringpb.CreateUptimeCheckConfigRequest, opts ...gax.CallOption) (*monitoringpb.UptimeCheckConfig, error) {
250 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent())))
251 ctx = insertMetadata(ctx, c.xGoogMetadata, md)
252 opts = append(c.CallOptions.CreateUptimeCheckConfig[0:len(c.CallOptions.CreateUptimeCheckConfig):len(c.CallOptions.CreateUptimeCheckConfig)], opts...)
253 var resp *monitoringpb.UptimeCheckConfig
254 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
255 var err error
256 resp, err = c.uptimeCheckClient.CreateUptimeCheckConfig(ctx, req, settings.GRPC...)
257 return err
258 }, opts...)
259 if err != nil {
260 return nil, err
261 }
262 return resp, nil
263 }
264
265
266
267
268
269 func (c *UptimeCheckClient) UpdateUptimeCheckConfig(ctx context.Context, req *monitoringpb.UpdateUptimeCheckConfigRequest, opts ...gax.CallOption) (*monitoringpb.UptimeCheckConfig, error) {
270 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "uptime_check_config.name", url.QueryEscape(req.GetUptimeCheckConfig().GetName())))
271 ctx = insertMetadata(ctx, c.xGoogMetadata, md)
272 opts = append(c.CallOptions.UpdateUptimeCheckConfig[0:len(c.CallOptions.UpdateUptimeCheckConfig):len(c.CallOptions.UpdateUptimeCheckConfig)], opts...)
273 var resp *monitoringpb.UptimeCheckConfig
274 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
275 var err error
276 resp, err = c.uptimeCheckClient.UpdateUptimeCheckConfig(ctx, req, settings.GRPC...)
277 return err
278 }, opts...)
279 if err != nil {
280 return nil, err
281 }
282 return resp, nil
283 }
284
285
286
287
288 func (c *UptimeCheckClient) DeleteUptimeCheckConfig(ctx context.Context, req *monitoringpb.DeleteUptimeCheckConfigRequest, opts ...gax.CallOption) error {
289 md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName())))
290 ctx = insertMetadata(ctx, c.xGoogMetadata, md)
291 opts = append(c.CallOptions.DeleteUptimeCheckConfig[0:len(c.CallOptions.DeleteUptimeCheckConfig):len(c.CallOptions.DeleteUptimeCheckConfig)], opts...)
292 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
293 var err error
294 _, err = c.uptimeCheckClient.DeleteUptimeCheckConfig(ctx, req, settings.GRPC...)
295 return err
296 }, opts...)
297 return err
298 }
299
300
301 func (c *UptimeCheckClient) ListUptimeCheckIps(ctx context.Context, req *monitoringpb.ListUptimeCheckIpsRequest, opts ...gax.CallOption) *UptimeCheckIpIterator {
302 ctx = insertMetadata(ctx, c.xGoogMetadata)
303 opts = append(c.CallOptions.ListUptimeCheckIps[0:len(c.CallOptions.ListUptimeCheckIps):len(c.CallOptions.ListUptimeCheckIps)], opts...)
304 it := &UptimeCheckIpIterator{}
305 req = proto.Clone(req).(*monitoringpb.ListUptimeCheckIpsRequest)
306 it.InternalFetch = func(pageSize int, pageToken string) ([]*monitoringpb.UptimeCheckIp, string, error) {
307 var resp *monitoringpb.ListUptimeCheckIpsResponse
308 req.PageToken = pageToken
309 if pageSize > math.MaxInt32 {
310 req.PageSize = math.MaxInt32
311 } else {
312 req.PageSize = int32(pageSize)
313 }
314 err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
315 var err error
316 resp, err = c.uptimeCheckClient.ListUptimeCheckIps(ctx, req, settings.GRPC...)
317 return err
318 }, opts...)
319 if err != nil {
320 return nil, "", err
321 }
322
323 it.Response = resp
324 return resp.UptimeCheckIps, resp.NextPageToken, nil
325 }
326 fetch := func(pageSize int, pageToken string) (string, error) {
327 items, nextPageToken, err := it.InternalFetch(pageSize, pageToken)
328 if err != nil {
329 return "", err
330 }
331 it.items = append(it.items, items...)
332 return nextPageToken, nil
333 }
334 it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf)
335 it.pageInfo.MaxSize = int(req.PageSize)
336 it.pageInfo.Token = req.PageToken
337 return it
338 }
339
340
341 type UptimeCheckConfigIterator struct {
342 items []*monitoringpb.UptimeCheckConfig
343 pageInfo *iterator.PageInfo
344 nextFunc func() error
345
346
347
348
349 Response interface{}
350
351
352
353
354
355
356
357 InternalFetch func(pageSize int, pageToken string) (results []*monitoringpb.UptimeCheckConfig, nextPageToken string, err error)
358 }
359
360
361 func (it *UptimeCheckConfigIterator) PageInfo() *iterator.PageInfo {
362 return it.pageInfo
363 }
364
365
366
367 func (it *UptimeCheckConfigIterator) Next() (*monitoringpb.UptimeCheckConfig, error) {
368 var item *monitoringpb.UptimeCheckConfig
369 if err := it.nextFunc(); err != nil {
370 return item, err
371 }
372 item = it.items[0]
373 it.items = it.items[1:]
374 return item, nil
375 }
376
377 func (it *UptimeCheckConfigIterator) bufLen() int {
378 return len(it.items)
379 }
380
381 func (it *UptimeCheckConfigIterator) takeBuf() interface{} {
382 b := it.items
383 it.items = nil
384 return b
385 }
386
387
388 type UptimeCheckIpIterator struct {
389 items []*monitoringpb.UptimeCheckIp
390 pageInfo *iterator.PageInfo
391 nextFunc func() error
392
393
394
395
396 Response interface{}
397
398
399
400
401
402
403
404 InternalFetch func(pageSize int, pageToken string) (results []*monitoringpb.UptimeCheckIp, nextPageToken string, err error)
405 }
406
407
408 func (it *UptimeCheckIpIterator) PageInfo() *iterator.PageInfo {
409 return it.pageInfo
410 }
411
412
413
414 func (it *UptimeCheckIpIterator) Next() (*monitoringpb.UptimeCheckIp, error) {
415 var item *monitoringpb.UptimeCheckIp
416 if err := it.nextFunc(); err != nil {
417 return item, err
418 }
419 item = it.items[0]
420 it.items = it.items[1:]
421 return item, nil
422 }
423
424 func (it *UptimeCheckIpIterator) bufLen() int {
425 return len(it.items)
426 }
427
428 func (it *UptimeCheckIpIterator) takeBuf() interface{} {
429 b := it.items
430 it.items = nil
431 return b
432 }
433
View as plain text