google-apis-beyondcorp_v1alpha 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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