google-apis-beyondcorp_v1alpha 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2939 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module BeyondcorpV1alpha
24
+
25
+ # Allocated connection of the AppGateway.
26
+ class AllocatedConnection
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Required. The ingress port of an allocated connection
30
+ # Corresponds to the JSON property `ingressPort`
31
+ # @return [Fixnum]
32
+ attr_accessor :ingress_port
33
+
34
+ # Required. The PSC uri of an allocated connection
35
+ # Corresponds to the JSON property `pscUri`
36
+ # @return [String]
37
+ attr_accessor :psc_uri
38
+
39
+ def initialize(**args)
40
+ update!(**args)
41
+ end
42
+
43
+ # Update properties of this object
44
+ def update!(**args)
45
+ @ingress_port = args[:ingress_port] if args.key?(:ingress_port)
46
+ @psc_uri = args[:psc_uri] if args.key?(:psc_uri)
47
+ end
48
+ end
49
+
50
+ # A BeyondCorp AppGateway resource represents a BeyondCorp protected AppGateway
51
+ # to a remote application. It creates all the necessary GCP components needed
52
+ # for creating a BeyondCorp protected AppGateway. Multiple connectors can be
53
+ # authorised for a single AppGateway.
54
+ class AppGateway
55
+ include Google::Apis::Core::Hashable
56
+
57
+ # Output only. A list of connections allocated for the Gateway
58
+ # Corresponds to the JSON property `allocatedConnections`
59
+ # @return [Array<Google::Apis::BeyondcorpV1alpha::AllocatedConnection>]
60
+ attr_accessor :allocated_connections
61
+
62
+ # Output only. Timestamp when the resource was created.
63
+ # Corresponds to the JSON property `createTime`
64
+ # @return [String]
65
+ attr_accessor :create_time
66
+
67
+ # Optional. An arbitrary user-provided name for the AppGateway. Cannot exceed 64
68
+ # characters.
69
+ # Corresponds to the JSON property `displayName`
70
+ # @return [String]
71
+ attr_accessor :display_name
72
+
73
+ # Required. The type of hosting used by the AppGateway.
74
+ # Corresponds to the JSON property `hostType`
75
+ # @return [String]
76
+ attr_accessor :host_type
77
+
78
+ # Optional. Resource labels to represent user provided metadata.
79
+ # Corresponds to the JSON property `labels`
80
+ # @return [Hash<String,String>]
81
+ attr_accessor :labels
82
+
83
+ # Required. Unique resource name of the AppGateway. The name is ignored when
84
+ # creating an AppGateway.
85
+ # Corresponds to the JSON property `name`
86
+ # @return [String]
87
+ attr_accessor :name
88
+
89
+ # Output only. The current state of the AppGateway.
90
+ # Corresponds to the JSON property `state`
91
+ # @return [String]
92
+ attr_accessor :state
93
+
94
+ # Required. The type of network connectivity used by the AppGateway.
95
+ # Corresponds to the JSON property `type`
96
+ # @return [String]
97
+ attr_accessor :type
98
+
99
+ # Output only. A unique identifier for the instance generated by the system.
100
+ # Corresponds to the JSON property `uid`
101
+ # @return [String]
102
+ attr_accessor :uid
103
+
104
+ # Output only. Timestamp when the resource was last modified.
105
+ # Corresponds to the JSON property `updateTime`
106
+ # @return [String]
107
+ attr_accessor :update_time
108
+
109
+ # Output only. Server-defined URI for this resource.
110
+ # Corresponds to the JSON property `uri`
111
+ # @return [String]
112
+ attr_accessor :uri
113
+
114
+ def initialize(**args)
115
+ update!(**args)
116
+ end
117
+
118
+ # Update properties of this object
119
+ def update!(**args)
120
+ @allocated_connections = args[:allocated_connections] if args.key?(:allocated_connections)
121
+ @create_time = args[:create_time] if args.key?(:create_time)
122
+ @display_name = args[:display_name] if args.key?(:display_name)
123
+ @host_type = args[:host_type] if args.key?(:host_type)
124
+ @labels = args[:labels] if args.key?(:labels)
125
+ @name = args[:name] if args.key?(:name)
126
+ @state = args[:state] if args.key?(:state)
127
+ @type = args[:type] if args.key?(:type)
128
+ @uid = args[:uid] if args.key?(:uid)
129
+ @update_time = args[:update_time] if args.key?(:update_time)
130
+ @uri = args[:uri] if args.key?(:uri)
131
+ end
132
+ end
133
+
134
+ # Represents the metadata of the long-running operation.
135
+ class AppGatewayOperationMetadata
136
+ include Google::Apis::Core::Hashable
137
+
138
+ # Output only. API version used to start the operation.
139
+ # Corresponds to the JSON property `apiVersion`
140
+ # @return [String]
141
+ attr_accessor :api_version
142
+
143
+ # Output only. The time the operation was created.
144
+ # Corresponds to the JSON property `createTime`
145
+ # @return [String]
146
+ attr_accessor :create_time
147
+
148
+ # Output only. The time the operation finished running.
149
+ # Corresponds to the JSON property `endTime`
150
+ # @return [String]
151
+ attr_accessor :end_time
152
+
153
+ # Output only. Identifies whether the user has requested cancellation of the
154
+ # operation. Operations that have successfully been cancelled have Operation.
155
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
156
+ # CANCELLED`.
157
+ # Corresponds to the JSON property `requestedCancellation`
158
+ # @return [Boolean]
159
+ attr_accessor :requested_cancellation
160
+ alias_method :requested_cancellation?, :requested_cancellation
161
+
162
+ # Output only. Human-readable status of the operation, if any.
163
+ # Corresponds to the JSON property `statusMessage`
164
+ # @return [String]
165
+ attr_accessor :status_message
166
+
167
+ # Output only. Server-defined resource path for the target of the operation.
168
+ # Corresponds to the JSON property `target`
169
+ # @return [String]
170
+ attr_accessor :target
171
+
172
+ # Output only. Name of the verb executed by the operation.
173
+ # Corresponds to the JSON property `verb`
174
+ # @return [String]
175
+ attr_accessor :verb
176
+
177
+ def initialize(**args)
178
+ update!(**args)
179
+ end
180
+
181
+ # Update properties of this object
182
+ def update!(**args)
183
+ @api_version = args[:api_version] if args.key?(:api_version)
184
+ @create_time = args[:create_time] if args.key?(:create_time)
185
+ @end_time = args[:end_time] if args.key?(:end_time)
186
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
187
+ @status_message = args[:status_message] if args.key?(:status_message)
188
+ @target = args[:target] if args.key?(:target)
189
+ @verb = args[:verb] if args.key?(:verb)
190
+ end
191
+ end
192
+
193
+ # ApplicationEndpoint represents a remote application endpoint.
194
+ class ApplicationEndpoint
195
+ include Google::Apis::Core::Hashable
196
+
197
+ # Required. Hostname or IP address of the remote application endpoint.
198
+ # Corresponds to the JSON property `host`
199
+ # @return [String]
200
+ attr_accessor :host
201
+
202
+ # Required. Port of the remote application endpoint.
203
+ # Corresponds to the JSON property `port`
204
+ # @return [Fixnum]
205
+ attr_accessor :port
206
+
207
+ def initialize(**args)
208
+ update!(**args)
209
+ end
210
+
211
+ # Update properties of this object
212
+ def update!(**args)
213
+ @host = args[:host] if args.key?(:host)
214
+ @port = args[:port] if args.key?(:port)
215
+ end
216
+ end
217
+
218
+ # Message describing ClientConnectorService object.
219
+ class ClientConnectorService
220
+ include Google::Apis::Core::Hashable
221
+
222
+ # Output only. [Output only] Create time stamp.
223
+ # Corresponds to the JSON property `createTime`
224
+ # @return [String]
225
+ attr_accessor :create_time
226
+
227
+ # Optional. User-provided name. The display name should follow certain format. *
228
+ # Must be 6 to 30 characters in length. * Can only contain lowercase letters,
229
+ # numbers, and hyphens. * Must start with a letter.
230
+ # Corresponds to the JSON property `displayName`
231
+ # @return [String]
232
+ attr_accessor :display_name
233
+
234
+ # The details of the egress info. One of the following options should be set.
235
+ # Corresponds to the JSON property `egress`
236
+ # @return [Google::Apis::BeyondcorpV1alpha::Egress]
237
+ attr_accessor :egress
238
+
239
+ # Settings of how to connect to the ClientGateway. One of the following options
240
+ # should be set.
241
+ # Corresponds to the JSON property `ingress`
242
+ # @return [Google::Apis::BeyondcorpV1alpha::Ingress]
243
+ attr_accessor :ingress
244
+
245
+ # Required. Name of resource. The name is ignored during creation.
246
+ # Corresponds to the JSON property `name`
247
+ # @return [String]
248
+ attr_accessor :name
249
+
250
+ # Output only. The operational state of the ClientConnectorService.
251
+ # Corresponds to the JSON property `state`
252
+ # @return [String]
253
+ attr_accessor :state
254
+
255
+ # Output only. [Output only] Update time stamp.
256
+ # Corresponds to the JSON property `updateTime`
257
+ # @return [String]
258
+ attr_accessor :update_time
259
+
260
+ def initialize(**args)
261
+ update!(**args)
262
+ end
263
+
264
+ # Update properties of this object
265
+ def update!(**args)
266
+ @create_time = args[:create_time] if args.key?(:create_time)
267
+ @display_name = args[:display_name] if args.key?(:display_name)
268
+ @egress = args[:egress] if args.key?(:egress)
269
+ @ingress = args[:ingress] if args.key?(:ingress)
270
+ @name = args[:name] if args.key?(:name)
271
+ @state = args[:state] if args.key?(:state)
272
+ @update_time = args[:update_time] if args.key?(:update_time)
273
+ end
274
+ end
275
+
276
+ # Represents the metadata of the long-running operation.
277
+ class ClientConnectorServiceOperationMetadata
278
+ include Google::Apis::Core::Hashable
279
+
280
+ # Output only. API version used to start the operation.
281
+ # Corresponds to the JSON property `apiVersion`
282
+ # @return [String]
283
+ attr_accessor :api_version
284
+
285
+ # Output only. The time the operation was created.
286
+ # Corresponds to the JSON property `createTime`
287
+ # @return [String]
288
+ attr_accessor :create_time
289
+
290
+ # Output only. The time the operation finished running.
291
+ # Corresponds to the JSON property `endTime`
292
+ # @return [String]
293
+ attr_accessor :end_time
294
+
295
+ # Output only. Identifies whether the user has requested cancellation of the
296
+ # operation. Operations that have successfully been cancelled have Operation.
297
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
298
+ # CANCELLED`.
299
+ # Corresponds to the JSON property `requestedCancellation`
300
+ # @return [Boolean]
301
+ attr_accessor :requested_cancellation
302
+ alias_method :requested_cancellation?, :requested_cancellation
303
+
304
+ # Output only. Human-readable status of the operation, if any.
305
+ # Corresponds to the JSON property `statusMessage`
306
+ # @return [String]
307
+ attr_accessor :status_message
308
+
309
+ # Output only. Server-defined resource path for the target of the operation.
310
+ # Corresponds to the JSON property `target`
311
+ # @return [String]
312
+ attr_accessor :target
313
+
314
+ # Output only. Name of the verb executed by the operation.
315
+ # Corresponds to the JSON property `verb`
316
+ # @return [String]
317
+ attr_accessor :verb
318
+
319
+ def initialize(**args)
320
+ update!(**args)
321
+ end
322
+
323
+ # Update properties of this object
324
+ def update!(**args)
325
+ @api_version = args[:api_version] if args.key?(:api_version)
326
+ @create_time = args[:create_time] if args.key?(:create_time)
327
+ @end_time = args[:end_time] if args.key?(:end_time)
328
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
329
+ @status_message = args[:status_message] if args.key?(:status_message)
330
+ @target = args[:target] if args.key?(:target)
331
+ @verb = args[:verb] if args.key?(:verb)
332
+ end
333
+ end
334
+
335
+ # Message describing ClientGateway object.
336
+ class ClientGateway
337
+ include Google::Apis::Core::Hashable
338
+
339
+ # Output only. The client connector service name that the client gateway is
340
+ # associated to. Client Connector Services, named as follows: `projects/`
341
+ # project_id`/locations/`location_id`/client_connector_services/`
342
+ # client_connector_service_id``.
343
+ # Corresponds to the JSON property `clientConnectorService`
344
+ # @return [String]
345
+ attr_accessor :client_connector_service
346
+
347
+ # Output only. [Output only] Create time stamp.
348
+ # Corresponds to the JSON property `createTime`
349
+ # @return [String]
350
+ attr_accessor :create_time
351
+
352
+ # Output only. A unique identifier for the instance generated by the system.
353
+ # Corresponds to the JSON property `id`
354
+ # @return [String]
355
+ attr_accessor :id
356
+
357
+ # Required. name of resource. The name is ignored during creation.
358
+ # Corresponds to the JSON property `name`
359
+ # @return [String]
360
+ attr_accessor :name
361
+
362
+ # Output only. The operational state of the gateway.
363
+ # Corresponds to the JSON property `state`
364
+ # @return [String]
365
+ attr_accessor :state
366
+
367
+ # Output only. [Output only] Update time stamp.
368
+ # Corresponds to the JSON property `updateTime`
369
+ # @return [String]
370
+ attr_accessor :update_time
371
+
372
+ def initialize(**args)
373
+ update!(**args)
374
+ end
375
+
376
+ # Update properties of this object
377
+ def update!(**args)
378
+ @client_connector_service = args[:client_connector_service] if args.key?(:client_connector_service)
379
+ @create_time = args[:create_time] if args.key?(:create_time)
380
+ @id = args[:id] if args.key?(:id)
381
+ @name = args[:name] if args.key?(:name)
382
+ @state = args[:state] if args.key?(:state)
383
+ @update_time = args[:update_time] if args.key?(:update_time)
384
+ end
385
+ end
386
+
387
+ # Represents the metadata of the long-running operation.
388
+ class ClientGatewayOperationMetadata
389
+ include Google::Apis::Core::Hashable
390
+
391
+ # Output only. API version used to start the operation.
392
+ # Corresponds to the JSON property `apiVersion`
393
+ # @return [String]
394
+ attr_accessor :api_version
395
+
396
+ # Output only. The time the operation was created.
397
+ # Corresponds to the JSON property `createTime`
398
+ # @return [String]
399
+ attr_accessor :create_time
400
+
401
+ # Output only. The time the operation finished running.
402
+ # Corresponds to the JSON property `endTime`
403
+ # @return [String]
404
+ attr_accessor :end_time
405
+
406
+ # Output only. Identifies whether the user has requested cancellation of the
407
+ # operation. Operations that have been cancelled successfully have Operation.
408
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
409
+ # CANCELLED`.
410
+ # Corresponds to the JSON property `requestedCancellation`
411
+ # @return [Boolean]
412
+ attr_accessor :requested_cancellation
413
+ alias_method :requested_cancellation?, :requested_cancellation
414
+
415
+ # Output only. Human-readable status of the operation, if any.
416
+ # Corresponds to the JSON property `statusMessage`
417
+ # @return [String]
418
+ attr_accessor :status_message
419
+
420
+ # Output only. Server-defined resource path for the target of the operation.
421
+ # Corresponds to the JSON property `target`
422
+ # @return [String]
423
+ attr_accessor :target
424
+
425
+ # Output only. Name of the verb executed by the operation.
426
+ # Corresponds to the JSON property `verb`
427
+ # @return [String]
428
+ attr_accessor :verb
429
+
430
+ def initialize(**args)
431
+ update!(**args)
432
+ end
433
+
434
+ # Update properties of this object
435
+ def update!(**args)
436
+ @api_version = args[:api_version] if args.key?(:api_version)
437
+ @create_time = args[:create_time] if args.key?(:create_time)
438
+ @end_time = args[:end_time] if args.key?(:end_time)
439
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
440
+ @status_message = args[:status_message] if args.key?(:status_message)
441
+ @target = args[:target] if args.key?(:target)
442
+ @verb = args[:verb] if args.key?(:verb)
443
+ end
444
+ end
445
+
446
+ # The configuration for Pub/Sub messaging for the connector.
447
+ class CloudPubSubNotificationConfig
448
+ include Google::Apis::Core::Hashable
449
+
450
+ # The Pub/Sub subscription the connector uses to receive notifications.
451
+ # Corresponds to the JSON property `pubsubSubscription`
452
+ # @return [String]
453
+ attr_accessor :pubsub_subscription
454
+
455
+ def initialize(**args)
456
+ update!(**args)
457
+ end
458
+
459
+ # Update properties of this object
460
+ def update!(**args)
461
+ @pubsub_subscription = args[:pubsub_subscription] if args.key?(:pubsub_subscription)
462
+ end
463
+ end
464
+
465
+ # ConnectionConfig represents a Connection Configuration object.
466
+ class CloudSecurityZerotrustApplinkAppConnectorProtoConnectionConfig
467
+ include Google::Apis::Core::Hashable
468
+
469
+ # application_endpoint is the endpoint of the application the form of host:port.
470
+ # For example, "localhost:80".
471
+ # Corresponds to the JSON property `applicationEndpoint`
472
+ # @return [String]
473
+ attr_accessor :application_endpoint
474
+
475
+ # application_name represents the given name of the application the connection
476
+ # is connecting with.
477
+ # Corresponds to the JSON property `applicationName`
478
+ # @return [String]
479
+ attr_accessor :application_name
480
+
481
+ # gateway lists all instances running a gateway in GCP. They all connect to a
482
+ # connector on the host.
483
+ # Corresponds to the JSON property `gateway`
484
+ # @return [Array<Google::Apis::BeyondcorpV1alpha::CloudSecurityZerotrustApplinkAppConnectorProtoGateway>]
485
+ attr_accessor :gateway
486
+
487
+ # name is the unique ID for each connection. TODO(b/190732451) returns
488
+ # connection name from user-specified name in config. Now, name = $`
489
+ # application_name`:$`application_endpoint`
490
+ # Corresponds to the JSON property `name`
491
+ # @return [String]
492
+ attr_accessor :name
493
+
494
+ # project represents the consumer project the connection belongs to.
495
+ # Corresponds to the JSON property `project`
496
+ # @return [String]
497
+ attr_accessor :project
498
+
499
+ # tunnels_per_gateway reflects the number of tunnels between a connector and a
500
+ # gateway.
501
+ # Corresponds to the JSON property `tunnelsPerGateway`
502
+ # @return [Fixnum]
503
+ attr_accessor :tunnels_per_gateway
504
+
505
+ # user_port specifies the reserved port on gateways for user connections.
506
+ # Corresponds to the JSON property `userPort`
507
+ # @return [Fixnum]
508
+ attr_accessor :user_port
509
+
510
+ def initialize(**args)
511
+ update!(**args)
512
+ end
513
+
514
+ # Update properties of this object
515
+ def update!(**args)
516
+ @application_endpoint = args[:application_endpoint] if args.key?(:application_endpoint)
517
+ @application_name = args[:application_name] if args.key?(:application_name)
518
+ @gateway = args[:gateway] if args.key?(:gateway)
519
+ @name = args[:name] if args.key?(:name)
520
+ @project = args[:project] if args.key?(:project)
521
+ @tunnels_per_gateway = args[:tunnels_per_gateway] if args.key?(:tunnels_per_gateway)
522
+ @user_port = args[:user_port] if args.key?(:user_port)
523
+ end
524
+ end
525
+
526
+ # ConnectorDetails reflects the details of a connector.
527
+ class CloudSecurityZerotrustApplinkAppConnectorProtoConnectorDetails
528
+ include Google::Apis::Core::Hashable
529
+
530
+ def initialize(**args)
531
+ update!(**args)
532
+ end
533
+
534
+ # Update properties of this object
535
+ def update!(**args)
536
+ end
537
+ end
538
+
539
+ # Gateway represents a GCE VM Instance endpoint for use by IAP TCP.
540
+ class CloudSecurityZerotrustApplinkAppConnectorProtoGateway
541
+ include Google::Apis::Core::Hashable
542
+
543
+ # interface specifies the network interface of the gateway to connect to.
544
+ # Corresponds to the JSON property `interface`
545
+ # @return [String]
546
+ attr_accessor :interface
547
+
548
+ # name is the name of an instance running a gateway. It is the unique ID for a
549
+ # gateway. All gateways under the same connection have the same prefix. It is
550
+ # derived from the gateway URL. For example, name=$`instance` assuming a gateway
551
+ # URL. https://www.googleapis.com/compute/$`version`/projects/$`project`/zones/$`
552
+ # zone`/instances/$`instance`
553
+ # Corresponds to the JSON property `name`
554
+ # @return [String]
555
+ attr_accessor :name
556
+
557
+ # port specifies the port of the gateway for tunnel connections from the
558
+ # connectors.
559
+ # Corresponds to the JSON property `port`
560
+ # @return [Fixnum]
561
+ attr_accessor :port
562
+
563
+ # project is the tenant project the gateway belongs to. Different from the
564
+ # project in the connection, it is a BeyondCorpAPI internally created project to
565
+ # manage all the gateways. It is sharing the same network with the consumer
566
+ # project user owned. It is derived from the gateway URL. For example, project=$`
567
+ # project` assuming a gateway URL. https://www.googleapis.com/compute/$`version`/
568
+ # projects/$`project`/zones/$`zone`/instances/$`instance`
569
+ # Corresponds to the JSON property `project`
570
+ # @return [String]
571
+ attr_accessor :project
572
+
573
+ # self_link is the gateway URL in the form https://www.googleapis.com/compute/$`
574
+ # version`/projects/$`project`/zones/$`zone`/instances/$`instance`
575
+ # Corresponds to the JSON property `selfLink`
576
+ # @return [String]
577
+ attr_accessor :self_link
578
+
579
+ # zone represents the zone the instance belongs. It is derived from the gateway
580
+ # URL. For example, zone=$`zone` assuming a gateway URL. https://www.googleapis.
581
+ # com/compute/$`version`/projects/$`project`/zones/$`zone`/instances/$`instance`
582
+ # Corresponds to the JSON property `zone`
583
+ # @return [String]
584
+ attr_accessor :zone
585
+
586
+ def initialize(**args)
587
+ update!(**args)
588
+ end
589
+
590
+ # Update properties of this object
591
+ def update!(**args)
592
+ @interface = args[:interface] if args.key?(:interface)
593
+ @name = args[:name] if args.key?(:name)
594
+ @port = args[:port] if args.key?(:port)
595
+ @project = args[:project] if args.key?(:project)
596
+ @self_link = args[:self_link] if args.key?(:self_link)
597
+ @zone = args[:zone] if args.key?(:zone)
598
+ end
599
+ end
600
+
601
+ # LogAgentDetails reflects the details of a log agent.
602
+ class CloudSecurityZerotrustApplinkLogagentProtoLogAgentDetails
603
+ include Google::Apis::Core::Hashable
604
+
605
+ def initialize(**args)
606
+ update!(**args)
607
+ end
608
+
609
+ # Update properties of this object
610
+ def update!(**args)
611
+ end
612
+ end
613
+
614
+ # The basic ingress config for ClientGateways.
615
+ class Config
616
+ include Google::Apis::Core::Hashable
617
+
618
+ # Required. The settings used to configure basic ClientGateways.
619
+ # Corresponds to the JSON property `destinationRoutes`
620
+ # @return [Array<Google::Apis::BeyondcorpV1alpha::DestinationRoute>]
621
+ attr_accessor :destination_routes
622
+
623
+ # Required. Immutable. The transport protocol used between the client and the
624
+ # server.
625
+ # Corresponds to the JSON property `transportProtocol`
626
+ # @return [String]
627
+ attr_accessor :transport_protocol
628
+
629
+ def initialize(**args)
630
+ update!(**args)
631
+ end
632
+
633
+ # Update properties of this object
634
+ def update!(**args)
635
+ @destination_routes = args[:destination_routes] if args.key?(:destination_routes)
636
+ @transport_protocol = args[:transport_protocol] if args.key?(:transport_protocol)
637
+ end
638
+ end
639
+
640
+ # A BeyondCorp Connection resource represents a BeyondCorp protected connection
641
+ # to a remote application. It creates all the necessary GCP components needed
642
+ # for creating a BeyondCorp protected connection. Multiple connectors can be
643
+ # authorised for a single Connection.
644
+ class Connection
645
+ include Google::Apis::Core::Hashable
646
+
647
+ # ApplicationEndpoint represents a remote application endpoint.
648
+ # Corresponds to the JSON property `applicationEndpoint`
649
+ # @return [Google::Apis::BeyondcorpV1alpha::ApplicationEndpoint]
650
+ attr_accessor :application_endpoint
651
+
652
+ # Optional. List of [google.cloud.beyondcorp.v1main.Connector.name] that are
653
+ # authorised to be associated with this Connection.
654
+ # Corresponds to the JSON property `connectors`
655
+ # @return [Array<String>]
656
+ attr_accessor :connectors
657
+
658
+ # Output only. Timestamp when the resource was created.
659
+ # Corresponds to the JSON property `createTime`
660
+ # @return [String]
661
+ attr_accessor :create_time
662
+
663
+ # Optional. An arbitrary user-provided name for the connection. Cannot exceed 64
664
+ # characters.
665
+ # Corresponds to the JSON property `displayName`
666
+ # @return [String]
667
+ attr_accessor :display_name
668
+
669
+ # Gateway represents a user facing component that serves as an entrance to
670
+ # enable connectivity.
671
+ # Corresponds to the JSON property `gateway`
672
+ # @return [Google::Apis::BeyondcorpV1alpha::Gateway]
673
+ attr_accessor :gateway
674
+
675
+ # Optional. Resource labels to represent user provided metadata.
676
+ # Corresponds to the JSON property `labels`
677
+ # @return [Hash<String,String>]
678
+ attr_accessor :labels
679
+
680
+ # Required. Unique resource name of the connection. The name is ignored when
681
+ # creating a connection.
682
+ # Corresponds to the JSON property `name`
683
+ # @return [String]
684
+ attr_accessor :name
685
+
686
+ # Output only. The current state of the connection.
687
+ # Corresponds to the JSON property `state`
688
+ # @return [String]
689
+ attr_accessor :state
690
+
691
+ # Required. The type of network connectivity used by the connection.
692
+ # Corresponds to the JSON property `type`
693
+ # @return [String]
694
+ attr_accessor :type
695
+
696
+ # Output only. A unique identifier for the instance generated by the system.
697
+ # Corresponds to the JSON property `uid`
698
+ # @return [String]
699
+ attr_accessor :uid
700
+
701
+ # Output only. Timestamp when the resource was last modified.
702
+ # Corresponds to the JSON property `updateTime`
703
+ # @return [String]
704
+ attr_accessor :update_time
705
+
706
+ def initialize(**args)
707
+ update!(**args)
708
+ end
709
+
710
+ # Update properties of this object
711
+ def update!(**args)
712
+ @application_endpoint = args[:application_endpoint] if args.key?(:application_endpoint)
713
+ @connectors = args[:connectors] if args.key?(:connectors)
714
+ @create_time = args[:create_time] if args.key?(:create_time)
715
+ @display_name = args[:display_name] if args.key?(:display_name)
716
+ @gateway = args[:gateway] if args.key?(:gateway)
717
+ @labels = args[:labels] if args.key?(:labels)
718
+ @name = args[:name] if args.key?(:name)
719
+ @state = args[:state] if args.key?(:state)
720
+ @type = args[:type] if args.key?(:type)
721
+ @uid = args[:uid] if args.key?(:uid)
722
+ @update_time = args[:update_time] if args.key?(:update_time)
723
+ end
724
+ end
725
+
726
+ # Details of the Connection.
727
+ class ConnectionDetails
728
+ include Google::Apis::Core::Hashable
729
+
730
+ # A BeyondCorp Connection resource represents a BeyondCorp protected connection
731
+ # to a remote application. It creates all the necessary GCP components needed
732
+ # for creating a BeyondCorp protected connection. Multiple connectors can be
733
+ # authorised for a single Connection.
734
+ # Corresponds to the JSON property `connection`
735
+ # @return [Google::Apis::BeyondcorpV1alpha::Connection]
736
+ attr_accessor :connection
737
+
738
+ # If type=GCP_REGIONAL_MIG, contains most recent VM instances, like "https://www.
739
+ # googleapis.com/compute/v1/projects/`project_id`/zones/`zone_id`/instances/`
740
+ # instance_id`".
741
+ # Corresponds to the JSON property `recentMigVms`
742
+ # @return [Array<String>]
743
+ attr_accessor :recent_mig_vms
744
+
745
+ def initialize(**args)
746
+ update!(**args)
747
+ end
748
+
749
+ # Update properties of this object
750
+ def update!(**args)
751
+ @connection = args[:connection] if args.key?(:connection)
752
+ @recent_mig_vms = args[:recent_mig_vms] if args.key?(:recent_mig_vms)
753
+ end
754
+ end
755
+
756
+ # Represents the metadata of the long-running operation.
757
+ class ConnectionOperationMetadata
758
+ include Google::Apis::Core::Hashable
759
+
760
+ # Output only. API version used to start the operation.
761
+ # Corresponds to the JSON property `apiVersion`
762
+ # @return [String]
763
+ attr_accessor :api_version
764
+
765
+ # Output only. The time the operation was created.
766
+ # Corresponds to the JSON property `createTime`
767
+ # @return [String]
768
+ attr_accessor :create_time
769
+
770
+ # Output only. The time the operation finished running.
771
+ # Corresponds to the JSON property `endTime`
772
+ # @return [String]
773
+ attr_accessor :end_time
774
+
775
+ # Output only. Identifies whether the user has requested cancellation of the
776
+ # operation. Operations that have successfully been cancelled have Operation.
777
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
778
+ # CANCELLED`.
779
+ # Corresponds to the JSON property `requestedCancellation`
780
+ # @return [Boolean]
781
+ attr_accessor :requested_cancellation
782
+ alias_method :requested_cancellation?, :requested_cancellation
783
+
784
+ # Output only. Human-readable status of the operation, if any.
785
+ # Corresponds to the JSON property `statusMessage`
786
+ # @return [String]
787
+ attr_accessor :status_message
788
+
789
+ # Output only. Server-defined resource path for the target of the operation.
790
+ # Corresponds to the JSON property `target`
791
+ # @return [String]
792
+ attr_accessor :target
793
+
794
+ # Output only. Name of the verb executed by the operation.
795
+ # Corresponds to the JSON property `verb`
796
+ # @return [String]
797
+ attr_accessor :verb
798
+
799
+ def initialize(**args)
800
+ update!(**args)
801
+ end
802
+
803
+ # Update properties of this object
804
+ def update!(**args)
805
+ @api_version = args[:api_version] if args.key?(:api_version)
806
+ @create_time = args[:create_time] if args.key?(:create_time)
807
+ @end_time = args[:end_time] if args.key?(:end_time)
808
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
809
+ @status_message = args[:status_message] if args.key?(:status_message)
810
+ @target = args[:target] if args.key?(:target)
811
+ @verb = args[:verb] if args.key?(:verb)
812
+ end
813
+ end
814
+
815
+ # A BeyondCorp connector resource that represents an application facing
816
+ # component deployed proximal to and with direct access to the application
817
+ # instances. It is used to establish connectivity between the remote enterprise
818
+ # environment and GCP. It initiates connections to the applications and can
819
+ # proxy the data from users over the connection.
820
+ class Connector
821
+ include Google::Apis::Core::Hashable
822
+
823
+ # Output only. Timestamp when the resource was created.
824
+ # Corresponds to the JSON property `createTime`
825
+ # @return [String]
826
+ attr_accessor :create_time
827
+
828
+ # Optional. An arbitrary user-provided name for the connector. Cannot exceed 64
829
+ # characters.
830
+ # Corresponds to the JSON property `displayName`
831
+ # @return [String]
832
+ attr_accessor :display_name
833
+
834
+ # Optional. Resource labels to represent user provided metadata.
835
+ # Corresponds to the JSON property `labels`
836
+ # @return [Hash<String,String>]
837
+ attr_accessor :labels
838
+
839
+ # Required. Unique resource name of the connector. The name is ignored when
840
+ # creating a connector.
841
+ # Corresponds to the JSON property `name`
842
+ # @return [String]
843
+ attr_accessor :name
844
+
845
+ # PrincipalInfo represents an Identity oneof.
846
+ # Corresponds to the JSON property `principalInfo`
847
+ # @return [Google::Apis::BeyondcorpV1alpha::PrincipalInfo]
848
+ attr_accessor :principal_info
849
+
850
+ # ResourceInfo represents the information/status of the associated resource.
851
+ # Corresponds to the JSON property `resourceInfo`
852
+ # @return [Google::Apis::BeyondcorpV1alpha::ResourceInfo]
853
+ attr_accessor :resource_info
854
+
855
+ # Output only. The current state of the connector.
856
+ # Corresponds to the JSON property `state`
857
+ # @return [String]
858
+ attr_accessor :state
859
+
860
+ # Output only. A unique identifier for the instance generated by the system.
861
+ # Corresponds to the JSON property `uid`
862
+ # @return [String]
863
+ attr_accessor :uid
864
+
865
+ # Output only. Timestamp when the resource was last modified.
866
+ # Corresponds to the JSON property `updateTime`
867
+ # @return [String]
868
+ attr_accessor :update_time
869
+
870
+ def initialize(**args)
871
+ update!(**args)
872
+ end
873
+
874
+ # Update properties of this object
875
+ def update!(**args)
876
+ @create_time = args[:create_time] if args.key?(:create_time)
877
+ @display_name = args[:display_name] if args.key?(:display_name)
878
+ @labels = args[:labels] if args.key?(:labels)
879
+ @name = args[:name] if args.key?(:name)
880
+ @principal_info = args[:principal_info] if args.key?(:principal_info)
881
+ @resource_info = args[:resource_info] if args.key?(:resource_info)
882
+ @state = args[:state] if args.key?(:state)
883
+ @uid = args[:uid] if args.key?(:uid)
884
+ @update_time = args[:update_time] if args.key?(:update_time)
885
+ end
886
+ end
887
+
888
+ # ConnectorInstanceConfig defines the instance config of a connector.
889
+ class ConnectorInstanceConfig
890
+ include Google::Apis::Core::Hashable
891
+
892
+ # ImageConfig defines the control plane images to run.
893
+ # Corresponds to the JSON property `imageConfig`
894
+ # @return [Google::Apis::BeyondcorpV1alpha::ImageConfig]
895
+ attr_accessor :image_config
896
+
897
+ # The SLM instance agent configuration.
898
+ # Corresponds to the JSON property `instanceConfig`
899
+ # @return [Hash<String,Object>]
900
+ attr_accessor :instance_config
901
+
902
+ # NotificationConfig defines the mechanisms to notify instance agent.
903
+ # Corresponds to the JSON property `notificationConfig`
904
+ # @return [Google::Apis::BeyondcorpV1alpha::NotificationConfig]
905
+ attr_accessor :notification_config
906
+
907
+ # Required. A monotonically increasing number generated and maintained by the
908
+ # API provider. Every time a config changes in the backend, the sequenceNumber
909
+ # should be bumped up to reflect the change.
910
+ # Corresponds to the JSON property `sequenceNumber`
911
+ # @return [Fixnum]
912
+ attr_accessor :sequence_number
913
+
914
+ def initialize(**args)
915
+ update!(**args)
916
+ end
917
+
918
+ # Update properties of this object
919
+ def update!(**args)
920
+ @image_config = args[:image_config] if args.key?(:image_config)
921
+ @instance_config = args[:instance_config] if args.key?(:instance_config)
922
+ @notification_config = args[:notification_config] if args.key?(:notification_config)
923
+ @sequence_number = args[:sequence_number] if args.key?(:sequence_number)
924
+ end
925
+ end
926
+
927
+ # Represents the metadata of the long-running operation.
928
+ class ConnectorOperationMetadata
929
+ include Google::Apis::Core::Hashable
930
+
931
+ # Output only. API version used to start the operation.
932
+ # Corresponds to the JSON property `apiVersion`
933
+ # @return [String]
934
+ attr_accessor :api_version
935
+
936
+ # Output only. The time the operation was created.
937
+ # Corresponds to the JSON property `createTime`
938
+ # @return [String]
939
+ attr_accessor :create_time
940
+
941
+ # Output only. The time the operation finished running.
942
+ # Corresponds to the JSON property `endTime`
943
+ # @return [String]
944
+ attr_accessor :end_time
945
+
946
+ # Output only. Identifies whether the user has requested cancellation of the
947
+ # operation. Operations that have successfully been cancelled have Operation.
948
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
949
+ # CANCELLED`.
950
+ # Corresponds to the JSON property `requestedCancellation`
951
+ # @return [Boolean]
952
+ attr_accessor :requested_cancellation
953
+ alias_method :requested_cancellation?, :requested_cancellation
954
+
955
+ # Output only. Human-readable status of the operation, if any.
956
+ # Corresponds to the JSON property `statusMessage`
957
+ # @return [String]
958
+ attr_accessor :status_message
959
+
960
+ # Output only. Server-defined resource path for the target of the operation.
961
+ # Corresponds to the JSON property `target`
962
+ # @return [String]
963
+ attr_accessor :target
964
+
965
+ # Output only. Name of the verb executed by the operation.
966
+ # Corresponds to the JSON property `verb`
967
+ # @return [String]
968
+ attr_accessor :verb
969
+
970
+ def initialize(**args)
971
+ update!(**args)
972
+ end
973
+
974
+ # Update properties of this object
975
+ def update!(**args)
976
+ @api_version = args[:api_version] if args.key?(:api_version)
977
+ @create_time = args[:create_time] if args.key?(:create_time)
978
+ @end_time = args[:end_time] if args.key?(:end_time)
979
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
980
+ @status_message = args[:status_message] if args.key?(:status_message)
981
+ @target = args[:target] if args.key?(:target)
982
+ @verb = args[:verb] if args.key?(:verb)
983
+ end
984
+ end
985
+
986
+ # ContainerHealthDetails reflects the health details of a container.
987
+ class ContainerHealthDetails
988
+ include Google::Apis::Core::Hashable
989
+
990
+ # The version of the current config.
991
+ # Corresponds to the JSON property `currentConfigVersion`
992
+ # @return [String]
993
+ attr_accessor :current_config_version
994
+
995
+ # The latest error message.
996
+ # Corresponds to the JSON property `errorMsg`
997
+ # @return [String]
998
+ attr_accessor :error_msg
999
+
1000
+ # The version of the expected config.
1001
+ # Corresponds to the JSON property `expectedConfigVersion`
1002
+ # @return [String]
1003
+ attr_accessor :expected_config_version
1004
+
1005
+ # The extended status. Such as ExitCode, StartedAt, FinishedAt, etc.
1006
+ # Corresponds to the JSON property `extendedStatus`
1007
+ # @return [Hash<String,String>]
1008
+ attr_accessor :extended_status
1009
+
1010
+ def initialize(**args)
1011
+ update!(**args)
1012
+ end
1013
+
1014
+ # Update properties of this object
1015
+ def update!(**args)
1016
+ @current_config_version = args[:current_config_version] if args.key?(:current_config_version)
1017
+ @error_msg = args[:error_msg] if args.key?(:error_msg)
1018
+ @expected_config_version = args[:expected_config_version] if args.key?(:expected_config_version)
1019
+ @extended_status = args[:extended_status] if args.key?(:extended_status)
1020
+ end
1021
+ end
1022
+
1023
+ # The setting used to configure ClientGateways. It is adding routes to the
1024
+ # client's routing table after the connection is established.
1025
+ class DestinationRoute
1026
+ include Google::Apis::Core::Hashable
1027
+
1028
+ # Required. The network address of the subnet for which the packet is routed to
1029
+ # the ClientGateway.
1030
+ # Corresponds to the JSON property `address`
1031
+ # @return [String]
1032
+ attr_accessor :address
1033
+
1034
+ # Required. The network mask of the subnet for which the packet is routed to the
1035
+ # ClientGateway.
1036
+ # Corresponds to the JSON property `netmask`
1037
+ # @return [String]
1038
+ attr_accessor :netmask
1039
+
1040
+ def initialize(**args)
1041
+ update!(**args)
1042
+ end
1043
+
1044
+ # Update properties of this object
1045
+ def update!(**args)
1046
+ @address = args[:address] if args.key?(:address)
1047
+ @netmask = args[:netmask] if args.key?(:netmask)
1048
+ end
1049
+ end
1050
+
1051
+ # The details of the egress info. One of the following options should be set.
1052
+ class Egress
1053
+ include Google::Apis::Core::Hashable
1054
+
1055
+ # The peered VPC owned by the consumer project.
1056
+ # Corresponds to the JSON property `peeredVpc`
1057
+ # @return [Google::Apis::BeyondcorpV1alpha::PeeredVpc]
1058
+ attr_accessor :peered_vpc
1059
+
1060
+ def initialize(**args)
1061
+ update!(**args)
1062
+ end
1063
+
1064
+ # Update properties of this object
1065
+ def update!(**args)
1066
+ @peered_vpc = args[:peered_vpc] if args.key?(:peered_vpc)
1067
+ end
1068
+ end
1069
+
1070
+ # A generic empty message that you can re-use to avoid defining duplicated empty
1071
+ # messages in your APIs. A typical example is to use it as the request or the
1072
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
1073
+ # protobuf.Empty) returns (google.protobuf.Empty); `
1074
+ class Empty
1075
+ include Google::Apis::Core::Hashable
1076
+
1077
+ def initialize(**args)
1078
+ update!(**args)
1079
+ end
1080
+
1081
+ # Update properties of this object
1082
+ def update!(**args)
1083
+ end
1084
+ end
1085
+
1086
+ # Gateway represents a user facing component that serves as an entrance to
1087
+ # enable connectivity.
1088
+ class Gateway
1089
+ include Google::Apis::Core::Hashable
1090
+
1091
+ # Required. The type of hosting used by the gateway.
1092
+ # Corresponds to the JSON property `type`
1093
+ # @return [String]
1094
+ attr_accessor :type
1095
+
1096
+ # Output only. Server-defined URI for this resource.
1097
+ # Corresponds to the JSON property `uri`
1098
+ # @return [String]
1099
+ attr_accessor :uri
1100
+
1101
+ # Output only. User port reserved on the gateways for this connection, if not
1102
+ # specified or zero, the default port is 19443.
1103
+ # Corresponds to the JSON property `userPort`
1104
+ # @return [Fixnum]
1105
+ attr_accessor :user_port
1106
+
1107
+ def initialize(**args)
1108
+ update!(**args)
1109
+ end
1110
+
1111
+ # Update properties of this object
1112
+ def update!(**args)
1113
+ @type = args[:type] if args.key?(:type)
1114
+ @uri = args[:uri] if args.key?(:uri)
1115
+ @user_port = args[:user_port] if args.key?(:user_port)
1116
+ end
1117
+ end
1118
+
1119
+ # A BeyondCorp AppConnection resource represents a BeyondCorp protected
1120
+ # AppConnection to a remote application. It creates all the necessary GCP
1121
+ # components needed for creating a BeyondCorp protected AppConnection. Multiple
1122
+ # connectors can be authorised for a single AppConnection.
1123
+ class GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnection
1124
+ include Google::Apis::Core::Hashable
1125
+
1126
+ # ApplicationEndpoint represents a remote application endpoint.
1127
+ # Corresponds to the JSON property `applicationEndpoint`
1128
+ # @return [Google::Apis::BeyondcorpV1alpha::GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnectionApplicationEndpoint]
1129
+ attr_accessor :application_endpoint
1130
+
1131
+ # Optional. List of [google.cloud.beyondcorp.v1main.Connector.name] that are
1132
+ # authorised to be associated with this AppConnection.
1133
+ # Corresponds to the JSON property `connectors`
1134
+ # @return [Array<String>]
1135
+ attr_accessor :connectors
1136
+
1137
+ # Output only. Timestamp when the resource was created.
1138
+ # Corresponds to the JSON property `createTime`
1139
+ # @return [String]
1140
+ attr_accessor :create_time
1141
+
1142
+ # Optional. An arbitrary user-provided name for the AppConnection. Cannot exceed
1143
+ # 64 characters.
1144
+ # Corresponds to the JSON property `displayName`
1145
+ # @return [String]
1146
+ attr_accessor :display_name
1147
+
1148
+ # Gateway represents a user facing component that serves as an entrance to
1149
+ # enable connectivity.
1150
+ # Corresponds to the JSON property `gateway`
1151
+ # @return [Google::Apis::BeyondcorpV1alpha::GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnectionGateway]
1152
+ attr_accessor :gateway
1153
+
1154
+ # Optional. Resource labels to represent user provided metadata.
1155
+ # Corresponds to the JSON property `labels`
1156
+ # @return [Hash<String,String>]
1157
+ attr_accessor :labels
1158
+
1159
+ # Required. Unique resource name of the AppConnection. The name is ignored when
1160
+ # creating a AppConnection.
1161
+ # Corresponds to the JSON property `name`
1162
+ # @return [String]
1163
+ attr_accessor :name
1164
+
1165
+ # Output only. The current state of the AppConnection.
1166
+ # Corresponds to the JSON property `state`
1167
+ # @return [String]
1168
+ attr_accessor :state
1169
+
1170
+ # Required. The type of network connectivity used by the AppConnection.
1171
+ # Corresponds to the JSON property `type`
1172
+ # @return [String]
1173
+ attr_accessor :type
1174
+
1175
+ # Output only. A unique identifier for the instance generated by the system.
1176
+ # Corresponds to the JSON property `uid`
1177
+ # @return [String]
1178
+ attr_accessor :uid
1179
+
1180
+ # Output only. Timestamp when the resource was last modified.
1181
+ # Corresponds to the JSON property `updateTime`
1182
+ # @return [String]
1183
+ attr_accessor :update_time
1184
+
1185
+ def initialize(**args)
1186
+ update!(**args)
1187
+ end
1188
+
1189
+ # Update properties of this object
1190
+ def update!(**args)
1191
+ @application_endpoint = args[:application_endpoint] if args.key?(:application_endpoint)
1192
+ @connectors = args[:connectors] if args.key?(:connectors)
1193
+ @create_time = args[:create_time] if args.key?(:create_time)
1194
+ @display_name = args[:display_name] if args.key?(:display_name)
1195
+ @gateway = args[:gateway] if args.key?(:gateway)
1196
+ @labels = args[:labels] if args.key?(:labels)
1197
+ @name = args[:name] if args.key?(:name)
1198
+ @state = args[:state] if args.key?(:state)
1199
+ @type = args[:type] if args.key?(:type)
1200
+ @uid = args[:uid] if args.key?(:uid)
1201
+ @update_time = args[:update_time] if args.key?(:update_time)
1202
+ end
1203
+ end
1204
+
1205
+ # ApplicationEndpoint represents a remote application endpoint.
1206
+ class GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnectionApplicationEndpoint
1207
+ include Google::Apis::Core::Hashable
1208
+
1209
+ # Required. Hostname or IP address of the remote application endpoint.
1210
+ # Corresponds to the JSON property `host`
1211
+ # @return [String]
1212
+ attr_accessor :host
1213
+
1214
+ # Required. Port of the remote application endpoint.
1215
+ # Corresponds to the JSON property `port`
1216
+ # @return [Fixnum]
1217
+ attr_accessor :port
1218
+
1219
+ def initialize(**args)
1220
+ update!(**args)
1221
+ end
1222
+
1223
+ # Update properties of this object
1224
+ def update!(**args)
1225
+ @host = args[:host] if args.key?(:host)
1226
+ @port = args[:port] if args.key?(:port)
1227
+ end
1228
+ end
1229
+
1230
+ # Gateway represents a user facing component that serves as an entrance to
1231
+ # enable connectivity.
1232
+ class GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnectionGateway
1233
+ include Google::Apis::Core::Hashable
1234
+
1235
+ # Required. AppGateway name in following format: projects/`project_id`/locations/
1236
+ # `location_id`/appgateways/`gateway_id`
1237
+ # Corresponds to the JSON property `appGateway`
1238
+ # @return [String]
1239
+ attr_accessor :app_gateway
1240
+
1241
+ # Output only. Ingress port reserved on the gateways for this AppConnection, if
1242
+ # not specified or zero, the default port is 19443.
1243
+ # Corresponds to the JSON property `ingressPort`
1244
+ # @return [Fixnum]
1245
+ attr_accessor :ingress_port
1246
+
1247
+ # Required. The type of hosting used by the gateway.
1248
+ # Corresponds to the JSON property `type`
1249
+ # @return [String]
1250
+ attr_accessor :type
1251
+
1252
+ # Output only. Server-defined URI for this resource.
1253
+ # Corresponds to the JSON property `uri`
1254
+ # @return [String]
1255
+ attr_accessor :uri
1256
+
1257
+ def initialize(**args)
1258
+ update!(**args)
1259
+ end
1260
+
1261
+ # Update properties of this object
1262
+ def update!(**args)
1263
+ @app_gateway = args[:app_gateway] if args.key?(:app_gateway)
1264
+ @ingress_port = args[:ingress_port] if args.key?(:ingress_port)
1265
+ @type = args[:type] if args.key?(:type)
1266
+ @uri = args[:uri] if args.key?(:uri)
1267
+ end
1268
+ end
1269
+
1270
+ # Represents the metadata of the long-running operation.
1271
+ class GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnectionOperationMetadata
1272
+ include Google::Apis::Core::Hashable
1273
+
1274
+ # Output only. API version used to start the operation.
1275
+ # Corresponds to the JSON property `apiVersion`
1276
+ # @return [String]
1277
+ attr_accessor :api_version
1278
+
1279
+ # Output only. The time the operation was created.
1280
+ # Corresponds to the JSON property `createTime`
1281
+ # @return [String]
1282
+ attr_accessor :create_time
1283
+
1284
+ # Output only. The time the operation finished running.
1285
+ # Corresponds to the JSON property `endTime`
1286
+ # @return [String]
1287
+ attr_accessor :end_time
1288
+
1289
+ # Output only. Identifies whether the user has requested cancellation of the
1290
+ # operation. Operations that have successfully been cancelled have Operation.
1291
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
1292
+ # CANCELLED`.
1293
+ # Corresponds to the JSON property `requestedCancellation`
1294
+ # @return [Boolean]
1295
+ attr_accessor :requested_cancellation
1296
+ alias_method :requested_cancellation?, :requested_cancellation
1297
+
1298
+ # Output only. Human-readable status of the operation, if any.
1299
+ # Corresponds to the JSON property `statusMessage`
1300
+ # @return [String]
1301
+ attr_accessor :status_message
1302
+
1303
+ # Output only. Server-defined resource path for the target of the operation.
1304
+ # Corresponds to the JSON property `target`
1305
+ # @return [String]
1306
+ attr_accessor :target
1307
+
1308
+ # Output only. Name of the verb executed by the operation.
1309
+ # Corresponds to the JSON property `verb`
1310
+ # @return [String]
1311
+ attr_accessor :verb
1312
+
1313
+ def initialize(**args)
1314
+ update!(**args)
1315
+ end
1316
+
1317
+ # Update properties of this object
1318
+ def update!(**args)
1319
+ @api_version = args[:api_version] if args.key?(:api_version)
1320
+ @create_time = args[:create_time] if args.key?(:create_time)
1321
+ @end_time = args[:end_time] if args.key?(:end_time)
1322
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
1323
+ @status_message = args[:status_message] if args.key?(:status_message)
1324
+ @target = args[:target] if args.key?(:target)
1325
+ @verb = args[:verb] if args.key?(:verb)
1326
+ end
1327
+ end
1328
+
1329
+ # Response message for BeyondCorp.ListAppConnections.
1330
+ class GoogleCloudBeyondcorpAppconnectionsV1alphaListAppConnectionsResponse
1331
+ include Google::Apis::Core::Hashable
1332
+
1333
+ # A list of BeyondCorp AppConnections in the project.
1334
+ # Corresponds to the JSON property `appConnections`
1335
+ # @return [Array<Google::Apis::BeyondcorpV1alpha::GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnection>]
1336
+ attr_accessor :app_connections
1337
+
1338
+ # A token to retrieve the next page of results, or empty if there are no more
1339
+ # results in the list.
1340
+ # Corresponds to the JSON property `nextPageToken`
1341
+ # @return [String]
1342
+ attr_accessor :next_page_token
1343
+
1344
+ # A list of locations that could not be reached.
1345
+ # Corresponds to the JSON property `unreachable`
1346
+ # @return [Array<String>]
1347
+ attr_accessor :unreachable
1348
+
1349
+ def initialize(**args)
1350
+ update!(**args)
1351
+ end
1352
+
1353
+ # Update properties of this object
1354
+ def update!(**args)
1355
+ @app_connections = args[:app_connections] if args.key?(:app_connections)
1356
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1357
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1358
+ end
1359
+ end
1360
+
1361
+ # Response message for BeyondCorp.ResolveAppConnections.
1362
+ class GoogleCloudBeyondcorpAppconnectionsV1alphaResolveAppConnectionsResponse
1363
+ include Google::Apis::Core::Hashable
1364
+
1365
+ # A list of BeyondCorp AppConnections with details in the project.
1366
+ # Corresponds to the JSON property `appConnectionDetails`
1367
+ # @return [Array<Google::Apis::BeyondcorpV1alpha::GoogleCloudBeyondcorpAppconnectionsV1alphaResolveAppConnectionsResponseAppConnectionDetails>]
1368
+ attr_accessor :app_connection_details
1369
+
1370
+ # A token to retrieve the next page of results, or empty if there are no more
1371
+ # results in the list.
1372
+ # Corresponds to the JSON property `nextPageToken`
1373
+ # @return [String]
1374
+ attr_accessor :next_page_token
1375
+
1376
+ # A list of locations that could not be reached.
1377
+ # Corresponds to the JSON property `unreachable`
1378
+ # @return [Array<String>]
1379
+ attr_accessor :unreachable
1380
+
1381
+ def initialize(**args)
1382
+ update!(**args)
1383
+ end
1384
+
1385
+ # Update properties of this object
1386
+ def update!(**args)
1387
+ @app_connection_details = args[:app_connection_details] if args.key?(:app_connection_details)
1388
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1389
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1390
+ end
1391
+ end
1392
+
1393
+ # Details of the AppConnection.
1394
+ class GoogleCloudBeyondcorpAppconnectionsV1alphaResolveAppConnectionsResponseAppConnectionDetails
1395
+ include Google::Apis::Core::Hashable
1396
+
1397
+ # A BeyondCorp AppConnection resource represents a BeyondCorp protected
1398
+ # AppConnection to a remote application. It creates all the necessary GCP
1399
+ # components needed for creating a BeyondCorp protected AppConnection. Multiple
1400
+ # connectors can be authorised for a single AppConnection.
1401
+ # Corresponds to the JSON property `appConnection`
1402
+ # @return [Google::Apis::BeyondcorpV1alpha::GoogleCloudBeyondcorpAppconnectionsV1alphaAppConnection]
1403
+ attr_accessor :app_connection
1404
+
1405
+ # If type=GCP_REGIONAL_MIG, contains most recent VM instances, like "https://www.
1406
+ # googleapis.com/compute/v1/projects/`project_id`/zones/`zone_id`/instances/`
1407
+ # instance_id`".
1408
+ # Corresponds to the JSON property `recentMigVms`
1409
+ # @return [Array<String>]
1410
+ attr_accessor :recent_mig_vms
1411
+
1412
+ def initialize(**args)
1413
+ update!(**args)
1414
+ end
1415
+
1416
+ # Update properties of this object
1417
+ def update!(**args)
1418
+ @app_connection = args[:app_connection] if args.key?(:app_connection)
1419
+ @recent_mig_vms = args[:recent_mig_vms] if args.key?(:recent_mig_vms)
1420
+ end
1421
+ end
1422
+
1423
+ # A BeyondCorp connector resource that represents an application facing
1424
+ # component deployed proximal to and with direct access to the application
1425
+ # instances. It is used to establish connectivity between the remote enterprise
1426
+ # environment and GCP. It initiates connections to the applications and can
1427
+ # proxy the data from users over the connection.
1428
+ class GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnector
1429
+ include Google::Apis::Core::Hashable
1430
+
1431
+ # Output only. Timestamp when the resource was created.
1432
+ # Corresponds to the JSON property `createTime`
1433
+ # @return [String]
1434
+ attr_accessor :create_time
1435
+
1436
+ # Optional. An arbitrary user-provided name for the AppConnector. Cannot exceed
1437
+ # 64 characters.
1438
+ # Corresponds to the JSON property `displayName`
1439
+ # @return [String]
1440
+ attr_accessor :display_name
1441
+
1442
+ # Optional. Resource labels to represent user provided metadata.
1443
+ # Corresponds to the JSON property `labels`
1444
+ # @return [Hash<String,String>]
1445
+ attr_accessor :labels
1446
+
1447
+ # Required. Unique resource name of the AppConnector. The name is ignored when
1448
+ # creating a AppConnector.
1449
+ # Corresponds to the JSON property `name`
1450
+ # @return [String]
1451
+ attr_accessor :name
1452
+
1453
+ # PrincipalInfo represents an Identity oneof.
1454
+ # Corresponds to the JSON property `principalInfo`
1455
+ # @return [Google::Apis::BeyondcorpV1alpha::GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorPrincipalInfo]
1456
+ attr_accessor :principal_info
1457
+
1458
+ # ResourceInfo represents the information/status of an app connector resource.
1459
+ # Such as: - remote_agent - container - runtime - appgateway - appconnector -
1460
+ # appconnection - tunnel - logagent
1461
+ # Corresponds to the JSON property `resourceInfo`
1462
+ # @return [Google::Apis::BeyondcorpV1alpha::GoogleCloudBeyondcorpAppconnectorsV1alphaResourceInfo]
1463
+ attr_accessor :resource_info
1464
+
1465
+ # Output only. The current state of the AppConnector.
1466
+ # Corresponds to the JSON property `state`
1467
+ # @return [String]
1468
+ attr_accessor :state
1469
+
1470
+ # Output only. A unique identifier for the instance generated by the system.
1471
+ # Corresponds to the JSON property `uid`
1472
+ # @return [String]
1473
+ attr_accessor :uid
1474
+
1475
+ # Output only. Timestamp when the resource was last modified.
1476
+ # Corresponds to the JSON property `updateTime`
1477
+ # @return [String]
1478
+ attr_accessor :update_time
1479
+
1480
+ def initialize(**args)
1481
+ update!(**args)
1482
+ end
1483
+
1484
+ # Update properties of this object
1485
+ def update!(**args)
1486
+ @create_time = args[:create_time] if args.key?(:create_time)
1487
+ @display_name = args[:display_name] if args.key?(:display_name)
1488
+ @labels = args[:labels] if args.key?(:labels)
1489
+ @name = args[:name] if args.key?(:name)
1490
+ @principal_info = args[:principal_info] if args.key?(:principal_info)
1491
+ @resource_info = args[:resource_info] if args.key?(:resource_info)
1492
+ @state = args[:state] if args.key?(:state)
1493
+ @uid = args[:uid] if args.key?(:uid)
1494
+ @update_time = args[:update_time] if args.key?(:update_time)
1495
+ end
1496
+ end
1497
+
1498
+ # AppConnectorInstanceConfig defines the instance config of a AppConnector.
1499
+ class GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorInstanceConfig
1500
+ include Google::Apis::Core::Hashable
1501
+
1502
+ # ImageConfig defines the control plane images to run.
1503
+ # Corresponds to the JSON property `imageConfig`
1504
+ # @return [Google::Apis::BeyondcorpV1alpha::GoogleCloudBeyondcorpAppconnectorsV1alphaImageConfig]
1505
+ attr_accessor :image_config
1506
+
1507
+ # The SLM instance agent configuration.
1508
+ # Corresponds to the JSON property `instanceConfig`
1509
+ # @return [Hash<String,Object>]
1510
+ attr_accessor :instance_config
1511
+
1512
+ # NotificationConfig defines the mechanisms to notify instance agent.
1513
+ # Corresponds to the JSON property `notificationConfig`
1514
+ # @return [Google::Apis::BeyondcorpV1alpha::GoogleCloudBeyondcorpAppconnectorsV1alphaNotificationConfig]
1515
+ attr_accessor :notification_config
1516
+
1517
+ # Required. A monotonically increasing number generated and maintained by the
1518
+ # API provider. Every time a config changes in the backend, the sequenceNumber
1519
+ # should be bumped up to reflect the change.
1520
+ # Corresponds to the JSON property `sequenceNumber`
1521
+ # @return [Fixnum]
1522
+ attr_accessor :sequence_number
1523
+
1524
+ def initialize(**args)
1525
+ update!(**args)
1526
+ end
1527
+
1528
+ # Update properties of this object
1529
+ def update!(**args)
1530
+ @image_config = args[:image_config] if args.key?(:image_config)
1531
+ @instance_config = args[:instance_config] if args.key?(:instance_config)
1532
+ @notification_config = args[:notification_config] if args.key?(:notification_config)
1533
+ @sequence_number = args[:sequence_number] if args.key?(:sequence_number)
1534
+ end
1535
+ end
1536
+
1537
+ # Represents the metadata of the long-running operation.
1538
+ class GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorOperationMetadata
1539
+ include Google::Apis::Core::Hashable
1540
+
1541
+ # Output only. API version used to start the operation.
1542
+ # Corresponds to the JSON property `apiVersion`
1543
+ # @return [String]
1544
+ attr_accessor :api_version
1545
+
1546
+ # Output only. The time the operation was created.
1547
+ # Corresponds to the JSON property `createTime`
1548
+ # @return [String]
1549
+ attr_accessor :create_time
1550
+
1551
+ # Output only. The time the operation finished running.
1552
+ # Corresponds to the JSON property `endTime`
1553
+ # @return [String]
1554
+ attr_accessor :end_time
1555
+
1556
+ # Output only. Identifies whether the user has requested cancellation of the
1557
+ # operation. Operations that have successfully been cancelled have Operation.
1558
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
1559
+ # CANCELLED`.
1560
+ # Corresponds to the JSON property `requestedCancellation`
1561
+ # @return [Boolean]
1562
+ attr_accessor :requested_cancellation
1563
+ alias_method :requested_cancellation?, :requested_cancellation
1564
+
1565
+ # Output only. Human-readable status of the operation, if any.
1566
+ # Corresponds to the JSON property `statusMessage`
1567
+ # @return [String]
1568
+ attr_accessor :status_message
1569
+
1570
+ # Output only. Server-defined resource path for the target of the operation.
1571
+ # Corresponds to the JSON property `target`
1572
+ # @return [String]
1573
+ attr_accessor :target
1574
+
1575
+ # Output only. Name of the verb executed by the operation.
1576
+ # Corresponds to the JSON property `verb`
1577
+ # @return [String]
1578
+ attr_accessor :verb
1579
+
1580
+ def initialize(**args)
1581
+ update!(**args)
1582
+ end
1583
+
1584
+ # Update properties of this object
1585
+ def update!(**args)
1586
+ @api_version = args[:api_version] if args.key?(:api_version)
1587
+ @create_time = args[:create_time] if args.key?(:create_time)
1588
+ @end_time = args[:end_time] if args.key?(:end_time)
1589
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
1590
+ @status_message = args[:status_message] if args.key?(:status_message)
1591
+ @target = args[:target] if args.key?(:target)
1592
+ @verb = args[:verb] if args.key?(:verb)
1593
+ end
1594
+ end
1595
+
1596
+ # PrincipalInfo represents an Identity oneof.
1597
+ class GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorPrincipalInfo
1598
+ include Google::Apis::Core::Hashable
1599
+
1600
+ # ServiceAccount represents a GCP service account.
1601
+ # Corresponds to the JSON property `serviceAccount`
1602
+ # @return [Google::Apis::BeyondcorpV1alpha::GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorPrincipalInfoServiceAccount]
1603
+ attr_accessor :service_account
1604
+
1605
+ def initialize(**args)
1606
+ update!(**args)
1607
+ end
1608
+
1609
+ # Update properties of this object
1610
+ def update!(**args)
1611
+ @service_account = args[:service_account] if args.key?(:service_account)
1612
+ end
1613
+ end
1614
+
1615
+ # ServiceAccount represents a GCP service account.
1616
+ class GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorPrincipalInfoServiceAccount
1617
+ include Google::Apis::Core::Hashable
1618
+
1619
+ # Email address of the service account.
1620
+ # Corresponds to the JSON property `email`
1621
+ # @return [String]
1622
+ attr_accessor :email
1623
+
1624
+ def initialize(**args)
1625
+ update!(**args)
1626
+ end
1627
+
1628
+ # Update properties of this object
1629
+ def update!(**args)
1630
+ @email = args[:email] if args.key?(:email)
1631
+ end
1632
+ end
1633
+
1634
+ # ImageConfig defines the control plane images to run.
1635
+ class GoogleCloudBeyondcorpAppconnectorsV1alphaImageConfig
1636
+ include Google::Apis::Core::Hashable
1637
+
1638
+ # The stable image that the remote agent will fallback to if the target image
1639
+ # fails.
1640
+ # Corresponds to the JSON property `stableImage`
1641
+ # @return [String]
1642
+ attr_accessor :stable_image
1643
+
1644
+ # The initial image the remote agent will attempt to run for the control plane.
1645
+ # Corresponds to the JSON property `targetImage`
1646
+ # @return [String]
1647
+ attr_accessor :target_image
1648
+
1649
+ def initialize(**args)
1650
+ update!(**args)
1651
+ end
1652
+
1653
+ # Update properties of this object
1654
+ def update!(**args)
1655
+ @stable_image = args[:stable_image] if args.key?(:stable_image)
1656
+ @target_image = args[:target_image] if args.key?(:target_image)
1657
+ end
1658
+ end
1659
+
1660
+ # Response message for BeyondCorp.ListAppConnectors.
1661
+ class GoogleCloudBeyondcorpAppconnectorsV1alphaListAppConnectorsResponse
1662
+ include Google::Apis::Core::Hashable
1663
+
1664
+ # A list of BeyondCorp AppConnectors in the project.
1665
+ # Corresponds to the JSON property `appConnectors`
1666
+ # @return [Array<Google::Apis::BeyondcorpV1alpha::GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnector>]
1667
+ attr_accessor :app_connectors
1668
+
1669
+ # A token to retrieve the next page of results, or empty if there are no more
1670
+ # results in the list.
1671
+ # Corresponds to the JSON property `nextPageToken`
1672
+ # @return [String]
1673
+ attr_accessor :next_page_token
1674
+
1675
+ # A list of locations that could not be reached.
1676
+ # Corresponds to the JSON property `unreachable`
1677
+ # @return [Array<String>]
1678
+ attr_accessor :unreachable
1679
+
1680
+ def initialize(**args)
1681
+ update!(**args)
1682
+ end
1683
+
1684
+ # Update properties of this object
1685
+ def update!(**args)
1686
+ @app_connectors = args[:app_connectors] if args.key?(:app_connectors)
1687
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1688
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1689
+ end
1690
+ end
1691
+
1692
+ # NotificationConfig defines the mechanisms to notify instance agent.
1693
+ class GoogleCloudBeyondcorpAppconnectorsV1alphaNotificationConfig
1694
+ include Google::Apis::Core::Hashable
1695
+
1696
+ # The configuration for Pub/Sub messaging for the AppConnector.
1697
+ # Corresponds to the JSON property `pubsubNotification`
1698
+ # @return [Google::Apis::BeyondcorpV1alpha::GoogleCloudBeyondcorpAppconnectorsV1alphaNotificationConfigCloudPubSubNotificationConfig]
1699
+ attr_accessor :pubsub_notification
1700
+
1701
+ def initialize(**args)
1702
+ update!(**args)
1703
+ end
1704
+
1705
+ # Update properties of this object
1706
+ def update!(**args)
1707
+ @pubsub_notification = args[:pubsub_notification] if args.key?(:pubsub_notification)
1708
+ end
1709
+ end
1710
+
1711
+ # The configuration for Pub/Sub messaging for the AppConnector.
1712
+ class GoogleCloudBeyondcorpAppconnectorsV1alphaNotificationConfigCloudPubSubNotificationConfig
1713
+ include Google::Apis::Core::Hashable
1714
+
1715
+ # The Pub/Sub subscription the AppConnector uses to receive notifications.
1716
+ # Corresponds to the JSON property `pubsubSubscription`
1717
+ # @return [String]
1718
+ attr_accessor :pubsub_subscription
1719
+
1720
+ def initialize(**args)
1721
+ update!(**args)
1722
+ end
1723
+
1724
+ # Update properties of this object
1725
+ def update!(**args)
1726
+ @pubsub_subscription = args[:pubsub_subscription] if args.key?(:pubsub_subscription)
1727
+ end
1728
+ end
1729
+
1730
+ # Request report the connector status.
1731
+ class GoogleCloudBeyondcorpAppconnectorsV1alphaReportStatusRequest
1732
+ include Google::Apis::Core::Hashable
1733
+
1734
+ # Optional. An optional request ID to identify requests. Specify a unique
1735
+ # request ID so that if you must retry your request, the server will know to
1736
+ # ignore the request if it has already been completed. The server will guarantee
1737
+ # that for at least 60 minutes since the first request. For example, consider a
1738
+ # situation where you make an initial request and t he request times out. If you
1739
+ # make the request again with the same request ID, the server can check if
1740
+ # original operation with the same request ID was received, and if so, will
1741
+ # ignore the second request. This prevents clients from accidentally creating
1742
+ # duplicate commitments. The request ID must be a valid UUID with the exception
1743
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
1744
+ # Corresponds to the JSON property `requestId`
1745
+ # @return [String]
1746
+ attr_accessor :request_id
1747
+
1748
+ # ResourceInfo represents the information/status of an app connector resource.
1749
+ # Such as: - remote_agent - container - runtime - appgateway - appconnector -
1750
+ # appconnection - tunnel - logagent
1751
+ # Corresponds to the JSON property `resourceInfo`
1752
+ # @return [Google::Apis::BeyondcorpV1alpha::GoogleCloudBeyondcorpAppconnectorsV1alphaResourceInfo]
1753
+ attr_accessor :resource_info
1754
+
1755
+ # Optional. If set, validates request by executing a dry-run which would not
1756
+ # alter the resource in any way.
1757
+ # Corresponds to the JSON property `validateOnly`
1758
+ # @return [Boolean]
1759
+ attr_accessor :validate_only
1760
+ alias_method :validate_only?, :validate_only
1761
+
1762
+ def initialize(**args)
1763
+ update!(**args)
1764
+ end
1765
+
1766
+ # Update properties of this object
1767
+ def update!(**args)
1768
+ @request_id = args[:request_id] if args.key?(:request_id)
1769
+ @resource_info = args[:resource_info] if args.key?(:resource_info)
1770
+ @validate_only = args[:validate_only] if args.key?(:validate_only)
1771
+ end
1772
+ end
1773
+
1774
+ # Response message for BeyondCorp.ResolveInstanceConfig.
1775
+ class GoogleCloudBeyondcorpAppconnectorsV1alphaResolveInstanceConfigResponse
1776
+ include Google::Apis::Core::Hashable
1777
+
1778
+ # AppConnectorInstanceConfig defines the instance config of a AppConnector.
1779
+ # Corresponds to the JSON property `instanceConfig`
1780
+ # @return [Google::Apis::BeyondcorpV1alpha::GoogleCloudBeyondcorpAppconnectorsV1alphaAppConnectorInstanceConfig]
1781
+ attr_accessor :instance_config
1782
+
1783
+ def initialize(**args)
1784
+ update!(**args)
1785
+ end
1786
+
1787
+ # Update properties of this object
1788
+ def update!(**args)
1789
+ @instance_config = args[:instance_config] if args.key?(:instance_config)
1790
+ end
1791
+ end
1792
+
1793
+ # ResourceInfo represents the information/status of an app connector resource.
1794
+ # Such as: - remote_agent - container - runtime - appgateway - appconnector -
1795
+ # appconnection - tunnel - logagent
1796
+ class GoogleCloudBeyondcorpAppconnectorsV1alphaResourceInfo
1797
+ include Google::Apis::Core::Hashable
1798
+
1799
+ # Required. Unique Id for the resource.
1800
+ # Corresponds to the JSON property `id`
1801
+ # @return [String]
1802
+ attr_accessor :id
1803
+
1804
+ # Specific details for the resource. This is for internal use only.
1805
+ # Corresponds to the JSON property `resource`
1806
+ # @return [Hash<String,Object>]
1807
+ attr_accessor :resource
1808
+
1809
+ # Overall health status. Overall status is derived based on the status of each
1810
+ # sub level resources.
1811
+ # Corresponds to the JSON property `status`
1812
+ # @return [String]
1813
+ attr_accessor :status
1814
+
1815
+ # List of Info for the sub level resources.
1816
+ # Corresponds to the JSON property `sub`
1817
+ # @return [Array<Google::Apis::BeyondcorpV1alpha::GoogleCloudBeyondcorpAppconnectorsV1alphaResourceInfo>]
1818
+ attr_accessor :sub
1819
+
1820
+ # The timestamp to collect the info. It is suggested to be set by the topmost
1821
+ # level resource only.
1822
+ # Corresponds to the JSON property `time`
1823
+ # @return [String]
1824
+ attr_accessor :time
1825
+
1826
+ def initialize(**args)
1827
+ update!(**args)
1828
+ end
1829
+
1830
+ # Update properties of this object
1831
+ def update!(**args)
1832
+ @id = args[:id] if args.key?(:id)
1833
+ @resource = args[:resource] if args.key?(:resource)
1834
+ @status = args[:status] if args.key?(:status)
1835
+ @sub = args[:sub] if args.key?(:sub)
1836
+ @time = args[:time] if args.key?(:time)
1837
+ end
1838
+ end
1839
+
1840
+ # The response message for Locations.ListLocations.
1841
+ class GoogleCloudLocationListLocationsResponse
1842
+ include Google::Apis::Core::Hashable
1843
+
1844
+ # A list of locations that matches the specified filter in the request.
1845
+ # Corresponds to the JSON property `locations`
1846
+ # @return [Array<Google::Apis::BeyondcorpV1alpha::GoogleCloudLocationLocation>]
1847
+ attr_accessor :locations
1848
+
1849
+ # The standard List next-page token.
1850
+ # Corresponds to the JSON property `nextPageToken`
1851
+ # @return [String]
1852
+ attr_accessor :next_page_token
1853
+
1854
+ def initialize(**args)
1855
+ update!(**args)
1856
+ end
1857
+
1858
+ # Update properties of this object
1859
+ def update!(**args)
1860
+ @locations = args[:locations] if args.key?(:locations)
1861
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1862
+ end
1863
+ end
1864
+
1865
+ # A resource that represents Google Cloud Platform location.
1866
+ class GoogleCloudLocationLocation
1867
+ include Google::Apis::Core::Hashable
1868
+
1869
+ # The friendly name for this location, typically a nearby city name. For example,
1870
+ # "Tokyo".
1871
+ # Corresponds to the JSON property `displayName`
1872
+ # @return [String]
1873
+ attr_accessor :display_name
1874
+
1875
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
1876
+ # region": "us-east1"`
1877
+ # Corresponds to the JSON property `labels`
1878
+ # @return [Hash<String,String>]
1879
+ attr_accessor :labels
1880
+
1881
+ # The canonical id for this location. For example: `"us-east1"`.
1882
+ # Corresponds to the JSON property `locationId`
1883
+ # @return [String]
1884
+ attr_accessor :location_id
1885
+
1886
+ # Service-specific metadata. For example the available capacity at the given
1887
+ # location.
1888
+ # Corresponds to the JSON property `metadata`
1889
+ # @return [Hash<String,Object>]
1890
+ attr_accessor :metadata
1891
+
1892
+ # Resource name for the location, which may vary between implementations. For
1893
+ # example: `"projects/example-project/locations/us-east1"`
1894
+ # Corresponds to the JSON property `name`
1895
+ # @return [String]
1896
+ attr_accessor :name
1897
+
1898
+ def initialize(**args)
1899
+ update!(**args)
1900
+ end
1901
+
1902
+ # Update properties of this object
1903
+ def update!(**args)
1904
+ @display_name = args[:display_name] if args.key?(:display_name)
1905
+ @labels = args[:labels] if args.key?(:labels)
1906
+ @location_id = args[:location_id] if args.key?(:location_id)
1907
+ @metadata = args[:metadata] if args.key?(:metadata)
1908
+ @name = args[:name] if args.key?(:name)
1909
+ end
1910
+ end
1911
+
1912
+ # Specifies the audit configuration for a service. The configuration determines
1913
+ # which permission types are logged, and what identities, if any, are exempted
1914
+ # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
1915
+ # are AuditConfigs for both `allServices` and a specific service, the union of
1916
+ # the two AuditConfigs is used for that service: the log_types specified in each
1917
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
1918
+ # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
1919
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
1920
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
1921
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
1922
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
1923
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
1924
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
1925
+ # exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com`
1926
+ # from DATA_WRITE logging.
1927
+ class GoogleIamV1AuditConfig
1928
+ include Google::Apis::Core::Hashable
1929
+
1930
+ # The configuration for logging of each type of permission.
1931
+ # Corresponds to the JSON property `auditLogConfigs`
1932
+ # @return [Array<Google::Apis::BeyondcorpV1alpha::GoogleIamV1AuditLogConfig>]
1933
+ attr_accessor :audit_log_configs
1934
+
1935
+ # Specifies a service that will be enabled for audit logging. For example, `
1936
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
1937
+ # value that covers all services.
1938
+ # Corresponds to the JSON property `service`
1939
+ # @return [String]
1940
+ attr_accessor :service
1941
+
1942
+ def initialize(**args)
1943
+ update!(**args)
1944
+ end
1945
+
1946
+ # Update properties of this object
1947
+ def update!(**args)
1948
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
1949
+ @service = args[:service] if args.key?(:service)
1950
+ end
1951
+ end
1952
+
1953
+ # Provides the configuration for logging a type of permissions. Example: ` "
1954
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
1955
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
1956
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
1957
+ # DATA_READ logging.
1958
+ class GoogleIamV1AuditLogConfig
1959
+ include Google::Apis::Core::Hashable
1960
+
1961
+ # Specifies the identities that do not cause logging for this type of permission.
1962
+ # Follows the same format of Binding.members.
1963
+ # Corresponds to the JSON property `exemptedMembers`
1964
+ # @return [Array<String>]
1965
+ attr_accessor :exempted_members
1966
+
1967
+ # The log type that this config enables.
1968
+ # Corresponds to the JSON property `logType`
1969
+ # @return [String]
1970
+ attr_accessor :log_type
1971
+
1972
+ def initialize(**args)
1973
+ update!(**args)
1974
+ end
1975
+
1976
+ # Update properties of this object
1977
+ def update!(**args)
1978
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
1979
+ @log_type = args[:log_type] if args.key?(:log_type)
1980
+ end
1981
+ end
1982
+
1983
+ # Associates `members`, or principals, with a `role`.
1984
+ class GoogleIamV1Binding
1985
+ include Google::Apis::Core::Hashable
1986
+
1987
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
1988
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
1989
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
1990
+ # "Summary size limit" description: "Determines if a summary is less than 100
1991
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
1992
+ # Requestor is owner" description: "Determines if requestor is the document
1993
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
1994
+ # Logic): title: "Public documents" description: "Determine whether the document
1995
+ # should be publicly visible" expression: "document.type != 'private' &&
1996
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
1997
+ # string" description: "Create a notification string with a timestamp."
1998
+ # expression: "'New message received at ' + string(document.create_time)" The
1999
+ # exact variables and functions that may be referenced within an expression are
2000
+ # determined by the service that evaluates it. See the service documentation for
2001
+ # additional information.
2002
+ # Corresponds to the JSON property `condition`
2003
+ # @return [Google::Apis::BeyondcorpV1alpha::GoogleTypeExpr]
2004
+ attr_accessor :condition
2005
+
2006
+ # Specifies the principals requesting access for a Google Cloud resource. `
2007
+ # members` can have the following values: * `allUsers`: A special identifier
2008
+ # that represents anyone who is on the internet; with or without a Google
2009
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
2010
+ # anyone who is authenticated with a Google account or a service account. * `
2011
+ # user:`emailid``: An email address that represents a specific Google account.
2012
+ # For example, `alice@example.com` . * `serviceAccount:`emailid``: An email
2013
+ # address that represents a service account. For example, `my-other-app@appspot.
2014
+ # gserviceaccount.com`. * `group:`emailid``: An email address that represents a
2015
+ # Google group. For example, `admins@example.com`. * `deleted:user:`emailid`?uid=
2016
+ # `uniqueid``: An email address (plus unique identifier) representing a user
2017
+ # that has been recently deleted. For example, `alice@example.com?uid=
2018
+ # 123456789012345678901`. If the user is recovered, this value reverts to `user:`
2019
+ # emailid`` and the recovered user retains the role in the binding. * `deleted:
2020
+ # serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus unique
2021
+ # identifier) representing a service account that has been recently deleted. For
2022
+ # example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
2023
+ # If the service account is undeleted, this value reverts to `serviceAccount:`
2024
+ # emailid`` and the undeleted service account retains the role in the binding. *
2025
+ # `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
2026
+ # identifier) representing a Google group that has been recently deleted. For
2027
+ # example, `admins@example.com?uid=123456789012345678901`. If the group is
2028
+ # recovered, this value reverts to `group:`emailid`` and the recovered group
2029
+ # retains the role in the binding. * `domain:`domain``: The G Suite domain (
2030
+ # primary) that represents all the users of that domain. For example, `google.
2031
+ # com` or `example.com`.
2032
+ # Corresponds to the JSON property `members`
2033
+ # @return [Array<String>]
2034
+ attr_accessor :members
2035
+
2036
+ # Role that is assigned to the list of `members`, or principals. For example, `
2037
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
2038
+ # Corresponds to the JSON property `role`
2039
+ # @return [String]
2040
+ attr_accessor :role
2041
+
2042
+ def initialize(**args)
2043
+ update!(**args)
2044
+ end
2045
+
2046
+ # Update properties of this object
2047
+ def update!(**args)
2048
+ @condition = args[:condition] if args.key?(:condition)
2049
+ @members = args[:members] if args.key?(:members)
2050
+ @role = args[:role] if args.key?(:role)
2051
+ end
2052
+ end
2053
+
2054
+ # An Identity and Access Management (IAM) policy, which specifies access
2055
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2056
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
2057
+ # Principals can be user accounts, service accounts, Google groups, and domains (
2058
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
2059
+ # an IAM predefined role or a user-created custom role. For some types of Google
2060
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
2061
+ # logical expression that allows access to a resource only if the expression
2062
+ # evaluates to `true`. A condition can add constraints based on attributes of
2063
+ # the request, the resource, or both. To learn which resources support
2064
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2065
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
2066
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
2067
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
2068
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
2069
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
2070
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
2071
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
2072
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
2073
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
2074
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
2075
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
2076
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
2077
+ # access description: Does not grant access after Sep 2020 expression: request.
2078
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
2079
+ # a description of IAM and its features, see the [IAM documentation](https://
2080
+ # cloud.google.com/iam/docs/).
2081
+ class GoogleIamV1Policy
2082
+ include Google::Apis::Core::Hashable
2083
+
2084
+ # Specifies cloud audit logging configuration for this policy.
2085
+ # Corresponds to the JSON property `auditConfigs`
2086
+ # @return [Array<Google::Apis::BeyondcorpV1alpha::GoogleIamV1AuditConfig>]
2087
+ attr_accessor :audit_configs
2088
+
2089
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
2090
+ # specify a `condition` that determines how and when the `bindings` are applied.
2091
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
2092
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
2093
+ # can be Google groups. Each occurrence of a principal counts towards these
2094
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
2095
+ # example.com`, and not to any other principal, then you can add another 1,450
2096
+ # principals to the `bindings` in the `Policy`.
2097
+ # Corresponds to the JSON property `bindings`
2098
+ # @return [Array<Google::Apis::BeyondcorpV1alpha::GoogleIamV1Binding>]
2099
+ attr_accessor :bindings
2100
+
2101
+ # `etag` is used for optimistic concurrency control as a way to help prevent
2102
+ # simultaneous updates of a policy from overwriting each other. It is strongly
2103
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
2104
+ # to perform policy updates in order to avoid race conditions: An `etag` is
2105
+ # returned in the response to `getIamPolicy`, and systems are expected to put
2106
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
2107
+ # applied to the same version of the policy. **Important:** If you use IAM
2108
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
2109
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
2110
+ # with a version `1` policy, and all of the conditions in the version `3` policy
2111
+ # are lost.
2112
+ # Corresponds to the JSON property `etag`
2113
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2114
+ # @return [String]
2115
+ attr_accessor :etag
2116
+
2117
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
2118
+ # Requests that specify an invalid value are rejected. Any operation that
2119
+ # affects conditional role bindings must specify version `3`. This requirement
2120
+ # applies to the following operations: * Getting a policy that includes a
2121
+ # conditional role binding * Adding a conditional role binding to a policy *
2122
+ # Changing a conditional role binding in a policy * Removing any role binding,
2123
+ # with or without a condition, from a policy that includes conditions **
2124
+ # Important:** If you use IAM Conditions, you must include the `etag` field
2125
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
2126
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
2127
+ # conditions in the version `3` policy are lost. If a policy does not include
2128
+ # any conditions, operations on that policy may specify any valid version or
2129
+ # leave the field unset. To learn which resources support conditions in their
2130
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
2131
+ # conditions/resource-policies).
2132
+ # Corresponds to the JSON property `version`
2133
+ # @return [Fixnum]
2134
+ attr_accessor :version
2135
+
2136
+ def initialize(**args)
2137
+ update!(**args)
2138
+ end
2139
+
2140
+ # Update properties of this object
2141
+ def update!(**args)
2142
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
2143
+ @bindings = args[:bindings] if args.key?(:bindings)
2144
+ @etag = args[:etag] if args.key?(:etag)
2145
+ @version = args[:version] if args.key?(:version)
2146
+ end
2147
+ end
2148
+
2149
+ # Request message for `SetIamPolicy` method.
2150
+ class GoogleIamV1SetIamPolicyRequest
2151
+ include Google::Apis::Core::Hashable
2152
+
2153
+ # An Identity and Access Management (IAM) policy, which specifies access
2154
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2155
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
2156
+ # Principals can be user accounts, service accounts, Google groups, and domains (
2157
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
2158
+ # an IAM predefined role or a user-created custom role. For some types of Google
2159
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
2160
+ # logical expression that allows access to a resource only if the expression
2161
+ # evaluates to `true`. A condition can add constraints based on attributes of
2162
+ # the request, the resource, or both. To learn which resources support
2163
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2164
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
2165
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
2166
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
2167
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
2168
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
2169
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
2170
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
2171
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
2172
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
2173
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
2174
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
2175
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
2176
+ # access description: Does not grant access after Sep 2020 expression: request.
2177
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
2178
+ # a description of IAM and its features, see the [IAM documentation](https://
2179
+ # cloud.google.com/iam/docs/).
2180
+ # Corresponds to the JSON property `policy`
2181
+ # @return [Google::Apis::BeyondcorpV1alpha::GoogleIamV1Policy]
2182
+ attr_accessor :policy
2183
+
2184
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
2185
+ # the fields in the mask will be modified. If no mask is provided, the following
2186
+ # default mask is used: `paths: "bindings, etag"`
2187
+ # Corresponds to the JSON property `updateMask`
2188
+ # @return [String]
2189
+ attr_accessor :update_mask
2190
+
2191
+ def initialize(**args)
2192
+ update!(**args)
2193
+ end
2194
+
2195
+ # Update properties of this object
2196
+ def update!(**args)
2197
+ @policy = args[:policy] if args.key?(:policy)
2198
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
2199
+ end
2200
+ end
2201
+
2202
+ # Request message for `TestIamPermissions` method.
2203
+ class GoogleIamV1TestIamPermissionsRequest
2204
+ include Google::Apis::Core::Hashable
2205
+
2206
+ # The set of permissions to check for the `resource`. Permissions with wildcards
2207
+ # (such as `*` or `storage.*`) are not allowed. For more information see [IAM
2208
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
2209
+ # Corresponds to the JSON property `permissions`
2210
+ # @return [Array<String>]
2211
+ attr_accessor :permissions
2212
+
2213
+ def initialize(**args)
2214
+ update!(**args)
2215
+ end
2216
+
2217
+ # Update properties of this object
2218
+ def update!(**args)
2219
+ @permissions = args[:permissions] if args.key?(:permissions)
2220
+ end
2221
+ end
2222
+
2223
+ # Response message for `TestIamPermissions` method.
2224
+ class GoogleIamV1TestIamPermissionsResponse
2225
+ include Google::Apis::Core::Hashable
2226
+
2227
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
2228
+ # Corresponds to the JSON property `permissions`
2229
+ # @return [Array<String>]
2230
+ attr_accessor :permissions
2231
+
2232
+ def initialize(**args)
2233
+ update!(**args)
2234
+ end
2235
+
2236
+ # Update properties of this object
2237
+ def update!(**args)
2238
+ @permissions = args[:permissions] if args.key?(:permissions)
2239
+ end
2240
+ end
2241
+
2242
+ # The request message for Operations.CancelOperation.
2243
+ class GoogleLongrunningCancelOperationRequest
2244
+ include Google::Apis::Core::Hashable
2245
+
2246
+ def initialize(**args)
2247
+ update!(**args)
2248
+ end
2249
+
2250
+ # Update properties of this object
2251
+ def update!(**args)
2252
+ end
2253
+ end
2254
+
2255
+ # The response message for Operations.ListOperations.
2256
+ class GoogleLongrunningListOperationsResponse
2257
+ include Google::Apis::Core::Hashable
2258
+
2259
+ # The standard List next-page token.
2260
+ # Corresponds to the JSON property `nextPageToken`
2261
+ # @return [String]
2262
+ attr_accessor :next_page_token
2263
+
2264
+ # A list of operations that matches the specified filter in the request.
2265
+ # Corresponds to the JSON property `operations`
2266
+ # @return [Array<Google::Apis::BeyondcorpV1alpha::GoogleLongrunningOperation>]
2267
+ attr_accessor :operations
2268
+
2269
+ def initialize(**args)
2270
+ update!(**args)
2271
+ end
2272
+
2273
+ # Update properties of this object
2274
+ def update!(**args)
2275
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2276
+ @operations = args[:operations] if args.key?(:operations)
2277
+ end
2278
+ end
2279
+
2280
+ # This resource represents a long-running operation that is the result of a
2281
+ # network API call.
2282
+ class GoogleLongrunningOperation
2283
+ include Google::Apis::Core::Hashable
2284
+
2285
+ # If the value is `false`, it means the operation is still in progress. If `true`
2286
+ # , the operation is completed, and either `error` or `response` is available.
2287
+ # Corresponds to the JSON property `done`
2288
+ # @return [Boolean]
2289
+ attr_accessor :done
2290
+ alias_method :done?, :done
2291
+
2292
+ # The `Status` type defines a logical error model that is suitable for different
2293
+ # programming environments, including REST APIs and RPC APIs. It is used by [
2294
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
2295
+ # data: error code, error message, and error details. You can find out more
2296
+ # about this error model and how to work with it in the [API Design Guide](https:
2297
+ # //cloud.google.com/apis/design/errors).
2298
+ # Corresponds to the JSON property `error`
2299
+ # @return [Google::Apis::BeyondcorpV1alpha::GoogleRpcStatus]
2300
+ attr_accessor :error
2301
+
2302
+ # Service-specific metadata associated with the operation. It typically contains
2303
+ # progress information and common metadata such as create time. Some services
2304
+ # might not provide such metadata. Any method that returns a long-running
2305
+ # operation should document the metadata type, if any.
2306
+ # Corresponds to the JSON property `metadata`
2307
+ # @return [Hash<String,Object>]
2308
+ attr_accessor :metadata
2309
+
2310
+ # The server-assigned name, which is only unique within the same service that
2311
+ # originally returns it. If you use the default HTTP mapping, the `name` should
2312
+ # be a resource name ending with `operations/`unique_id``.
2313
+ # Corresponds to the JSON property `name`
2314
+ # @return [String]
2315
+ attr_accessor :name
2316
+
2317
+ # The normal response of the operation in case of success. If the original
2318
+ # method returns no data on success, such as `Delete`, the response is `google.
2319
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
2320
+ # the response should be the resource. For other methods, the response should
2321
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
2322
+ # example, if the original method name is `TakeSnapshot()`, the inferred
2323
+ # response type is `TakeSnapshotResponse`.
2324
+ # Corresponds to the JSON property `response`
2325
+ # @return [Hash<String,Object>]
2326
+ attr_accessor :response
2327
+
2328
+ def initialize(**args)
2329
+ update!(**args)
2330
+ end
2331
+
2332
+ # Update properties of this object
2333
+ def update!(**args)
2334
+ @done = args[:done] if args.key?(:done)
2335
+ @error = args[:error] if args.key?(:error)
2336
+ @metadata = args[:metadata] if args.key?(:metadata)
2337
+ @name = args[:name] if args.key?(:name)
2338
+ @response = args[:response] if args.key?(:response)
2339
+ end
2340
+ end
2341
+
2342
+ # The `Status` type defines a logical error model that is suitable for different
2343
+ # programming environments, including REST APIs and RPC APIs. It is used by [
2344
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
2345
+ # data: error code, error message, and error details. You can find out more
2346
+ # about this error model and how to work with it in the [API Design Guide](https:
2347
+ # //cloud.google.com/apis/design/errors).
2348
+ class GoogleRpcStatus
2349
+ include Google::Apis::Core::Hashable
2350
+
2351
+ # The status code, which should be an enum value of google.rpc.Code.
2352
+ # Corresponds to the JSON property `code`
2353
+ # @return [Fixnum]
2354
+ attr_accessor :code
2355
+
2356
+ # A list of messages that carry the error details. There is a common set of
2357
+ # message types for APIs to use.
2358
+ # Corresponds to the JSON property `details`
2359
+ # @return [Array<Hash<String,Object>>]
2360
+ attr_accessor :details
2361
+
2362
+ # A developer-facing error message, which should be in English. Any user-facing
2363
+ # error message should be localized and sent in the google.rpc.Status.details
2364
+ # field, or localized by the client.
2365
+ # Corresponds to the JSON property `message`
2366
+ # @return [String]
2367
+ attr_accessor :message
2368
+
2369
+ def initialize(**args)
2370
+ update!(**args)
2371
+ end
2372
+
2373
+ # Update properties of this object
2374
+ def update!(**args)
2375
+ @code = args[:code] if args.key?(:code)
2376
+ @details = args[:details] if args.key?(:details)
2377
+ @message = args[:message] if args.key?(:message)
2378
+ end
2379
+ end
2380
+
2381
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
2382
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
2383
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
2384
+ # "Summary size limit" description: "Determines if a summary is less than 100
2385
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
2386
+ # Requestor is owner" description: "Determines if requestor is the document
2387
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
2388
+ # Logic): title: "Public documents" description: "Determine whether the document
2389
+ # should be publicly visible" expression: "document.type != 'private' &&
2390
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
2391
+ # string" description: "Create a notification string with a timestamp."
2392
+ # expression: "'New message received at ' + string(document.create_time)" The
2393
+ # exact variables and functions that may be referenced within an expression are
2394
+ # determined by the service that evaluates it. See the service documentation for
2395
+ # additional information.
2396
+ class GoogleTypeExpr
2397
+ include Google::Apis::Core::Hashable
2398
+
2399
+ # Optional. Description of the expression. This is a longer text which describes
2400
+ # the expression, e.g. when hovered over it in a UI.
2401
+ # Corresponds to the JSON property `description`
2402
+ # @return [String]
2403
+ attr_accessor :description
2404
+
2405
+ # Textual representation of an expression in Common Expression Language syntax.
2406
+ # Corresponds to the JSON property `expression`
2407
+ # @return [String]
2408
+ attr_accessor :expression
2409
+
2410
+ # Optional. String indicating the location of the expression for error reporting,
2411
+ # e.g. a file name and a position in the file.
2412
+ # Corresponds to the JSON property `location`
2413
+ # @return [String]
2414
+ attr_accessor :location
2415
+
2416
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
2417
+ # This can be used e.g. in UIs which allow to enter the expression.
2418
+ # Corresponds to the JSON property `title`
2419
+ # @return [String]
2420
+ attr_accessor :title
2421
+
2422
+ def initialize(**args)
2423
+ update!(**args)
2424
+ end
2425
+
2426
+ # Update properties of this object
2427
+ def update!(**args)
2428
+ @description = args[:description] if args.key?(:description)
2429
+ @expression = args[:expression] if args.key?(:expression)
2430
+ @location = args[:location] if args.key?(:location)
2431
+ @title = args[:title] if args.key?(:title)
2432
+ end
2433
+ end
2434
+
2435
+ # ImageConfig defines the control plane images to run.
2436
+ class ImageConfig
2437
+ include Google::Apis::Core::Hashable
2438
+
2439
+ # The stable image that the remote agent will fallback to if the target image
2440
+ # fails.
2441
+ # Corresponds to the JSON property `stableImage`
2442
+ # @return [String]
2443
+ attr_accessor :stable_image
2444
+
2445
+ # The initial image the remote agent will attempt to run for the control plane.
2446
+ # Corresponds to the JSON property `targetImage`
2447
+ # @return [String]
2448
+ attr_accessor :target_image
2449
+
2450
+ def initialize(**args)
2451
+ update!(**args)
2452
+ end
2453
+
2454
+ # Update properties of this object
2455
+ def update!(**args)
2456
+ @stable_image = args[:stable_image] if args.key?(:stable_image)
2457
+ @target_image = args[:target_image] if args.key?(:target_image)
2458
+ end
2459
+ end
2460
+
2461
+ # Settings of how to connect to the ClientGateway. One of the following options
2462
+ # should be set.
2463
+ class Ingress
2464
+ include Google::Apis::Core::Hashable
2465
+
2466
+ # The basic ingress config for ClientGateways.
2467
+ # Corresponds to the JSON property `config`
2468
+ # @return [Google::Apis::BeyondcorpV1alpha::Config]
2469
+ attr_accessor :config
2470
+
2471
+ def initialize(**args)
2472
+ update!(**args)
2473
+ end
2474
+
2475
+ # Update properties of this object
2476
+ def update!(**args)
2477
+ @config = args[:config] if args.key?(:config)
2478
+ end
2479
+ end
2480
+
2481
+ # Response message for BeyondCorp.ListAppGateways.
2482
+ class ListAppGatewaysResponse
2483
+ include Google::Apis::Core::Hashable
2484
+
2485
+ # A list of BeyondCorp AppGateways in the project.
2486
+ # Corresponds to the JSON property `appGateways`
2487
+ # @return [Array<Google::Apis::BeyondcorpV1alpha::AppGateway>]
2488
+ attr_accessor :app_gateways
2489
+
2490
+ # A token to retrieve the next page of results, or empty if there are no more
2491
+ # results in the list.
2492
+ # Corresponds to the JSON property `nextPageToken`
2493
+ # @return [String]
2494
+ attr_accessor :next_page_token
2495
+
2496
+ # A list of locations that could not be reached.
2497
+ # Corresponds to the JSON property `unreachable`
2498
+ # @return [Array<String>]
2499
+ attr_accessor :unreachable
2500
+
2501
+ def initialize(**args)
2502
+ update!(**args)
2503
+ end
2504
+
2505
+ # Update properties of this object
2506
+ def update!(**args)
2507
+ @app_gateways = args[:app_gateways] if args.key?(:app_gateways)
2508
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2509
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2510
+ end
2511
+ end
2512
+
2513
+ # Message for response to listing ClientConnectorServices.
2514
+ class ListClientConnectorServicesResponse
2515
+ include Google::Apis::Core::Hashable
2516
+
2517
+ # The list of ClientConnectorService.
2518
+ # Corresponds to the JSON property `clientConnectorServices`
2519
+ # @return [Array<Google::Apis::BeyondcorpV1alpha::ClientConnectorService>]
2520
+ attr_accessor :client_connector_services
2521
+
2522
+ # A token identifying a page of results the server should return.
2523
+ # Corresponds to the JSON property `nextPageToken`
2524
+ # @return [String]
2525
+ attr_accessor :next_page_token
2526
+
2527
+ # Locations that could not be reached.
2528
+ # Corresponds to the JSON property `unreachable`
2529
+ # @return [Array<String>]
2530
+ attr_accessor :unreachable
2531
+
2532
+ def initialize(**args)
2533
+ update!(**args)
2534
+ end
2535
+
2536
+ # Update properties of this object
2537
+ def update!(**args)
2538
+ @client_connector_services = args[:client_connector_services] if args.key?(:client_connector_services)
2539
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2540
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2541
+ end
2542
+ end
2543
+
2544
+ # Message for response to listing ClientGateways.
2545
+ class ListClientGatewaysResponse
2546
+ include Google::Apis::Core::Hashable
2547
+
2548
+ # The list of ClientGateway.
2549
+ # Corresponds to the JSON property `clientGateways`
2550
+ # @return [Array<Google::Apis::BeyondcorpV1alpha::ClientGateway>]
2551
+ attr_accessor :client_gateways
2552
+
2553
+ # A token identifying a page of results the server should return.
2554
+ # Corresponds to the JSON property `nextPageToken`
2555
+ # @return [String]
2556
+ attr_accessor :next_page_token
2557
+
2558
+ # Locations that could not be reached.
2559
+ # Corresponds to the JSON property `unreachable`
2560
+ # @return [Array<String>]
2561
+ attr_accessor :unreachable
2562
+
2563
+ def initialize(**args)
2564
+ update!(**args)
2565
+ end
2566
+
2567
+ # Update properties of this object
2568
+ def update!(**args)
2569
+ @client_gateways = args[:client_gateways] if args.key?(:client_gateways)
2570
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2571
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2572
+ end
2573
+ end
2574
+
2575
+ # Response message for BeyondCorp.ListConnections.
2576
+ class ListConnectionsResponse
2577
+ include Google::Apis::Core::Hashable
2578
+
2579
+ # A list of BeyondCorp Connections in the project.
2580
+ # Corresponds to the JSON property `connections`
2581
+ # @return [Array<Google::Apis::BeyondcorpV1alpha::Connection>]
2582
+ attr_accessor :connections
2583
+
2584
+ # A token to retrieve the next page of results, or empty if there are no more
2585
+ # results in the list.
2586
+ # Corresponds to the JSON property `nextPageToken`
2587
+ # @return [String]
2588
+ attr_accessor :next_page_token
2589
+
2590
+ # A list of locations that could not be reached.
2591
+ # Corresponds to the JSON property `unreachable`
2592
+ # @return [Array<String>]
2593
+ attr_accessor :unreachable
2594
+
2595
+ def initialize(**args)
2596
+ update!(**args)
2597
+ end
2598
+
2599
+ # Update properties of this object
2600
+ def update!(**args)
2601
+ @connections = args[:connections] if args.key?(:connections)
2602
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2603
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2604
+ end
2605
+ end
2606
+
2607
+ # Response message for BeyondCorp.ListConnectors.
2608
+ class ListConnectorsResponse
2609
+ include Google::Apis::Core::Hashable
2610
+
2611
+ # A list of BeyondCorp Connectors in the project.
2612
+ # Corresponds to the JSON property `connectors`
2613
+ # @return [Array<Google::Apis::BeyondcorpV1alpha::Connector>]
2614
+ attr_accessor :connectors
2615
+
2616
+ # A token to retrieve the next page of results, or empty if there are no more
2617
+ # results in the list.
2618
+ # Corresponds to the JSON property `nextPageToken`
2619
+ # @return [String]
2620
+ attr_accessor :next_page_token
2621
+
2622
+ # A list of locations that could not be reached.
2623
+ # Corresponds to the JSON property `unreachable`
2624
+ # @return [Array<String>]
2625
+ attr_accessor :unreachable
2626
+
2627
+ def initialize(**args)
2628
+ update!(**args)
2629
+ end
2630
+
2631
+ # Update properties of this object
2632
+ def update!(**args)
2633
+ @connectors = args[:connectors] if args.key?(:connectors)
2634
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2635
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2636
+ end
2637
+ end
2638
+
2639
+ # NotificationConfig defines the mechanisms to notify instance agent.
2640
+ class NotificationConfig
2641
+ include Google::Apis::Core::Hashable
2642
+
2643
+ # The configuration for Pub/Sub messaging for the connector.
2644
+ # Corresponds to the JSON property `pubsubNotification`
2645
+ # @return [Google::Apis::BeyondcorpV1alpha::CloudPubSubNotificationConfig]
2646
+ attr_accessor :pubsub_notification
2647
+
2648
+ def initialize(**args)
2649
+ update!(**args)
2650
+ end
2651
+
2652
+ # Update properties of this object
2653
+ def update!(**args)
2654
+ @pubsub_notification = args[:pubsub_notification] if args.key?(:pubsub_notification)
2655
+ end
2656
+ end
2657
+
2658
+ # The peered VPC owned by the consumer project.
2659
+ class PeeredVpc
2660
+ include Google::Apis::Core::Hashable
2661
+
2662
+ # Required. The name of the peered VPC owned by the consumer project.
2663
+ # Corresponds to the JSON property `networkVpc`
2664
+ # @return [String]
2665
+ attr_accessor :network_vpc
2666
+
2667
+ def initialize(**args)
2668
+ update!(**args)
2669
+ end
2670
+
2671
+ # Update properties of this object
2672
+ def update!(**args)
2673
+ @network_vpc = args[:network_vpc] if args.key?(:network_vpc)
2674
+ end
2675
+ end
2676
+
2677
+ # PrincipalInfo represents an Identity oneof.
2678
+ class PrincipalInfo
2679
+ include Google::Apis::Core::Hashable
2680
+
2681
+ # ServiceAccount represents a GCP service account.
2682
+ # Corresponds to the JSON property `serviceAccount`
2683
+ # @return [Google::Apis::BeyondcorpV1alpha::ServiceAccount]
2684
+ attr_accessor :service_account
2685
+
2686
+ def initialize(**args)
2687
+ update!(**args)
2688
+ end
2689
+
2690
+ # Update properties of this object
2691
+ def update!(**args)
2692
+ @service_account = args[:service_account] if args.key?(:service_account)
2693
+ end
2694
+ end
2695
+
2696
+ # RemoteAgentDetails reflects the details of a remote agent.
2697
+ class RemoteAgentDetails
2698
+ include Google::Apis::Core::Hashable
2699
+
2700
+ def initialize(**args)
2701
+ update!(**args)
2702
+ end
2703
+
2704
+ # Update properties of this object
2705
+ def update!(**args)
2706
+ end
2707
+ end
2708
+
2709
+ # Request report the connector status.
2710
+ class ReportStatusRequest
2711
+ include Google::Apis::Core::Hashable
2712
+
2713
+ # Optional. An optional request ID to identify requests. Specify a unique
2714
+ # request ID so that if you must retry your request, the server will know to
2715
+ # ignore the request if it has already been completed. The server will guarantee
2716
+ # that for at least 60 minutes since the first request. For example, consider a
2717
+ # situation where you make an initial request and t he request times out. If you
2718
+ # make the request again with the same request ID, the server can check if
2719
+ # original operation with the same request ID was received, and if so, will
2720
+ # ignore the second request. This prevents clients from accidentally creating
2721
+ # duplicate commitments. The request ID must be a valid UUID with the exception
2722
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
2723
+ # Corresponds to the JSON property `requestId`
2724
+ # @return [String]
2725
+ attr_accessor :request_id
2726
+
2727
+ # ResourceInfo represents the information/status of the associated resource.
2728
+ # Corresponds to the JSON property `resourceInfo`
2729
+ # @return [Google::Apis::BeyondcorpV1alpha::ResourceInfo]
2730
+ attr_accessor :resource_info
2731
+
2732
+ # Optional. If set, validates request by executing a dry-run which would not
2733
+ # alter the resource in any way.
2734
+ # Corresponds to the JSON property `validateOnly`
2735
+ # @return [Boolean]
2736
+ attr_accessor :validate_only
2737
+ alias_method :validate_only?, :validate_only
2738
+
2739
+ def initialize(**args)
2740
+ update!(**args)
2741
+ end
2742
+
2743
+ # Update properties of this object
2744
+ def update!(**args)
2745
+ @request_id = args[:request_id] if args.key?(:request_id)
2746
+ @resource_info = args[:resource_info] if args.key?(:resource_info)
2747
+ @validate_only = args[:validate_only] if args.key?(:validate_only)
2748
+ end
2749
+ end
2750
+
2751
+ # Response message for BeyondCorp.ResolveConnections.
2752
+ class ResolveConnectionsResponse
2753
+ include Google::Apis::Core::Hashable
2754
+
2755
+ # A list of BeyondCorp Connections with details in the project.
2756
+ # Corresponds to the JSON property `connectionDetails`
2757
+ # @return [Array<Google::Apis::BeyondcorpV1alpha::ConnectionDetails>]
2758
+ attr_accessor :connection_details
2759
+
2760
+ # A token to retrieve the next page of results, or empty if there are no more
2761
+ # results in the list.
2762
+ # Corresponds to the JSON property `nextPageToken`
2763
+ # @return [String]
2764
+ attr_accessor :next_page_token
2765
+
2766
+ # A list of locations that could not be reached.
2767
+ # Corresponds to the JSON property `unreachable`
2768
+ # @return [Array<String>]
2769
+ attr_accessor :unreachable
2770
+
2771
+ def initialize(**args)
2772
+ update!(**args)
2773
+ end
2774
+
2775
+ # Update properties of this object
2776
+ def update!(**args)
2777
+ @connection_details = args[:connection_details] if args.key?(:connection_details)
2778
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2779
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2780
+ end
2781
+ end
2782
+
2783
+ # Response message for BeyondCorp.ResolveInstanceConfig.
2784
+ class ResolveInstanceConfigResponse
2785
+ include Google::Apis::Core::Hashable
2786
+
2787
+ # ConnectorInstanceConfig defines the instance config of a connector.
2788
+ # Corresponds to the JSON property `instanceConfig`
2789
+ # @return [Google::Apis::BeyondcorpV1alpha::ConnectorInstanceConfig]
2790
+ attr_accessor :instance_config
2791
+
2792
+ def initialize(**args)
2793
+ update!(**args)
2794
+ end
2795
+
2796
+ # Update properties of this object
2797
+ def update!(**args)
2798
+ @instance_config = args[:instance_config] if args.key?(:instance_config)
2799
+ end
2800
+ end
2801
+
2802
+ # ResourceInfo represents the information/status of the associated resource.
2803
+ class ResourceInfo
2804
+ include Google::Apis::Core::Hashable
2805
+
2806
+ # Required. Unique Id for the resource.
2807
+ # Corresponds to the JSON property `id`
2808
+ # @return [String]
2809
+ attr_accessor :id
2810
+
2811
+ # Specific details for the resource.
2812
+ # Corresponds to the JSON property `resource`
2813
+ # @return [Hash<String,Object>]
2814
+ attr_accessor :resource
2815
+
2816
+ # Overall health status. Overall status is derived based on the status of each
2817
+ # sub level resources.
2818
+ # Corresponds to the JSON property `status`
2819
+ # @return [String]
2820
+ attr_accessor :status
2821
+
2822
+ # List of Info for the sub level resources.
2823
+ # Corresponds to the JSON property `sub`
2824
+ # @return [Array<Google::Apis::BeyondcorpV1alpha::ResourceInfo>]
2825
+ attr_accessor :sub
2826
+
2827
+ # The timestamp to collect the info. It is suggested to be set by the topmost
2828
+ # level resource only.
2829
+ # Corresponds to the JSON property `time`
2830
+ # @return [String]
2831
+ attr_accessor :time
2832
+
2833
+ def initialize(**args)
2834
+ update!(**args)
2835
+ end
2836
+
2837
+ # Update properties of this object
2838
+ def update!(**args)
2839
+ @id = args[:id] if args.key?(:id)
2840
+ @resource = args[:resource] if args.key?(:resource)
2841
+ @status = args[:status] if args.key?(:status)
2842
+ @sub = args[:sub] if args.key?(:sub)
2843
+ @time = args[:time] if args.key?(:time)
2844
+ end
2845
+ end
2846
+
2847
+ # ServiceAccount represents a GCP service account.
2848
+ class ServiceAccount
2849
+ include Google::Apis::Core::Hashable
2850
+
2851
+ # Email address of the service account.
2852
+ # Corresponds to the JSON property `email`
2853
+ # @return [String]
2854
+ attr_accessor :email
2855
+
2856
+ def initialize(**args)
2857
+ update!(**args)
2858
+ end
2859
+
2860
+ # Update properties of this object
2861
+ def update!(**args)
2862
+ @email = args[:email] if args.key?(:email)
2863
+ end
2864
+ end
2865
+
2866
+ # TunnelerError is an error proto for errors returned by the connection manager.
2867
+ class Tunnelv1ProtoTunnelerError
2868
+ include Google::Apis::Core::Hashable
2869
+
2870
+ # Original raw error
2871
+ # Corresponds to the JSON property `err`
2872
+ # @return [String]
2873
+ attr_accessor :err
2874
+
2875
+ # retryable isn't used for now, but we may want to reuse it in the future.
2876
+ # Corresponds to the JSON property `retryable`
2877
+ # @return [Boolean]
2878
+ attr_accessor :retryable
2879
+ alias_method :retryable?, :retryable
2880
+
2881
+ def initialize(**args)
2882
+ update!(**args)
2883
+ end
2884
+
2885
+ # Update properties of this object
2886
+ def update!(**args)
2887
+ @err = args[:err] if args.key?(:err)
2888
+ @retryable = args[:retryable] if args.key?(:retryable)
2889
+ end
2890
+ end
2891
+
2892
+ # TunnelerInfo contains metadata about tunneler launched by connection manager.
2893
+ class Tunnelv1ProtoTunnelerInfo
2894
+ include Google::Apis::Core::Hashable
2895
+
2896
+ # backoff_retry_count stores the number of times the tunneler has been retried
2897
+ # by tunManager for current backoff sequence. Gets reset to 0 if time difference
2898
+ # between 2 consecutive retries exceeds backoffRetryResetTime.
2899
+ # Corresponds to the JSON property `backoffRetryCount`
2900
+ # @return [Fixnum]
2901
+ attr_accessor :backoff_retry_count
2902
+
2903
+ # id is the unique id of a tunneler.
2904
+ # Corresponds to the JSON property `id`
2905
+ # @return [String]
2906
+ attr_accessor :id
2907
+
2908
+ # TunnelerError is an error proto for errors returned by the connection manager.
2909
+ # Corresponds to the JSON property `latestErr`
2910
+ # @return [Google::Apis::BeyondcorpV1alpha::Tunnelv1ProtoTunnelerError]
2911
+ attr_accessor :latest_err
2912
+
2913
+ # latest_retry_time stores the time when the tunneler was last restarted.
2914
+ # Corresponds to the JSON property `latestRetryTime`
2915
+ # @return [String]
2916
+ attr_accessor :latest_retry_time
2917
+
2918
+ # total_retry_count stores the total number of times the tunneler has been
2919
+ # retried by tunManager.
2920
+ # Corresponds to the JSON property `totalRetryCount`
2921
+ # @return [Fixnum]
2922
+ attr_accessor :total_retry_count
2923
+
2924
+ def initialize(**args)
2925
+ update!(**args)
2926
+ end
2927
+
2928
+ # Update properties of this object
2929
+ def update!(**args)
2930
+ @backoff_retry_count = args[:backoff_retry_count] if args.key?(:backoff_retry_count)
2931
+ @id = args[:id] if args.key?(:id)
2932
+ @latest_err = args[:latest_err] if args.key?(:latest_err)
2933
+ @latest_retry_time = args[:latest_retry_time] if args.key?(:latest_retry_time)
2934
+ @total_retry_count = args[:total_retry_count] if args.key?(:total_retry_count)
2935
+ end
2936
+ end
2937
+ end
2938
+ end
2939
+ end