google-apis-connectors_v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2109 @@
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 ConnectorsV1
24
+
25
+ # Specifies the audit configuration for a service. The configuration determines
26
+ # which permission types are logged, and what identities, if any, are exempted
27
+ # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
28
+ # are AuditConfigs for both `allServices` and a specific service, the union of
29
+ # the two AuditConfigs is used for that service: the log_types specified in each
30
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
31
+ # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
32
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
33
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
34
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
35
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
36
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
37
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
38
+ # exempts jose@example.com from DATA_READ logging, and aliya@example.com from
39
+ # DATA_WRITE logging.
40
+ class AuditConfig
41
+ include Google::Apis::Core::Hashable
42
+
43
+ # The configuration for logging of each type of permission.
44
+ # Corresponds to the JSON property `auditLogConfigs`
45
+ # @return [Array<Google::Apis::ConnectorsV1::AuditLogConfig>]
46
+ attr_accessor :audit_log_configs
47
+
48
+ # Specifies a service that will be enabled for audit logging. For example, `
49
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
50
+ # value that covers all services.
51
+ # Corresponds to the JSON property `service`
52
+ # @return [String]
53
+ attr_accessor :service
54
+
55
+ def initialize(**args)
56
+ update!(**args)
57
+ end
58
+
59
+ # Update properties of this object
60
+ def update!(**args)
61
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
62
+ @service = args[:service] if args.key?(:service)
63
+ end
64
+ end
65
+
66
+ # Provides the configuration for logging a type of permissions. Example: ` "
67
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
68
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
69
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
70
+ # DATA_READ logging.
71
+ class AuditLogConfig
72
+ include Google::Apis::Core::Hashable
73
+
74
+ # Specifies the identities that do not cause logging for this type of permission.
75
+ # Follows the same format of Binding.members.
76
+ # Corresponds to the JSON property `exemptedMembers`
77
+ # @return [Array<String>]
78
+ attr_accessor :exempted_members
79
+
80
+ # The log type that this config enables.
81
+ # Corresponds to the JSON property `logType`
82
+ # @return [String]
83
+ attr_accessor :log_type
84
+
85
+ def initialize(**args)
86
+ update!(**args)
87
+ end
88
+
89
+ # Update properties of this object
90
+ def update!(**args)
91
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
92
+ @log_type = args[:log_type] if args.key?(:log_type)
93
+ end
94
+ end
95
+
96
+ # AuthConfig defines details of a authentication type.
97
+ class AuthConfig
98
+ include Google::Apis::Core::Hashable
99
+
100
+ # List containing additional auth configs.
101
+ # Corresponds to the JSON property `additionalVariables`
102
+ # @return [Array<Google::Apis::ConnectorsV1::ConfigVariable>]
103
+ attr_accessor :additional_variables
104
+
105
+ # The type of authentication configured.
106
+ # Corresponds to the JSON property `authType`
107
+ # @return [String]
108
+ attr_accessor :auth_type
109
+
110
+ # Parameters to support Oauth 2.0 Client Credentials Grant Authentication. See
111
+ # https://tools.ietf.org/html/rfc6749#section-1.3.4 for more details.
112
+ # Corresponds to the JSON property `oauth2ClientCredentials`
113
+ # @return [Google::Apis::ConnectorsV1::Oauth2ClientCredentials]
114
+ attr_accessor :oauth2_client_credentials
115
+
116
+ # Parameters to support JSON Web Token (JWT) Profile for Oauth 2.0 Authorization
117
+ # Grant based authentication. See https://tools.ietf.org/html/rfc7523 for more
118
+ # details.
119
+ # Corresponds to the JSON property `oauth2JwtBearer`
120
+ # @return [Google::Apis::ConnectorsV1::Oauth2JwtBearer]
121
+ attr_accessor :oauth2_jwt_bearer
122
+
123
+ # Parameters to support Username and Password Authentication.
124
+ # Corresponds to the JSON property `userPassword`
125
+ # @return [Google::Apis::ConnectorsV1::UserPassword]
126
+ attr_accessor :user_password
127
+
128
+ def initialize(**args)
129
+ update!(**args)
130
+ end
131
+
132
+ # Update properties of this object
133
+ def update!(**args)
134
+ @additional_variables = args[:additional_variables] if args.key?(:additional_variables)
135
+ @auth_type = args[:auth_type] if args.key?(:auth_type)
136
+ @oauth2_client_credentials = args[:oauth2_client_credentials] if args.key?(:oauth2_client_credentials)
137
+ @oauth2_jwt_bearer = args[:oauth2_jwt_bearer] if args.key?(:oauth2_jwt_bearer)
138
+ @user_password = args[:user_password] if args.key?(:user_password)
139
+ end
140
+ end
141
+
142
+ # AuthConfigTemplate defines required field over an authentication type.
143
+ class AuthConfigTemplate
144
+ include Google::Apis::Core::Hashable
145
+
146
+ # The type of authentication configured.
147
+ # Corresponds to the JSON property `authType`
148
+ # @return [String]
149
+ attr_accessor :auth_type
150
+
151
+ # Config variables to describe an `AuthConfig` for a `Connection`.
152
+ # Corresponds to the JSON property `configVariableTemplates`
153
+ # @return [Array<Google::Apis::ConnectorsV1::ConfigVariableTemplate>]
154
+ attr_accessor :config_variable_templates
155
+
156
+ def initialize(**args)
157
+ update!(**args)
158
+ end
159
+
160
+ # Update properties of this object
161
+ def update!(**args)
162
+ @auth_type = args[:auth_type] if args.key?(:auth_type)
163
+ @config_variable_templates = args[:config_variable_templates] if args.key?(:config_variable_templates)
164
+ end
165
+ end
166
+
167
+ # Associates `members` with a `role`.
168
+ class Binding
169
+ include Google::Apis::Core::Hashable
170
+
171
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
172
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
173
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
174
+ # "Summary size limit" description: "Determines if a summary is less than 100
175
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
176
+ # Requestor is owner" description: "Determines if requestor is the document
177
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
178
+ # Logic): title: "Public documents" description: "Determine whether the document
179
+ # should be publicly visible" expression: "document.type != 'private' &&
180
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
181
+ # string" description: "Create a notification string with a timestamp."
182
+ # expression: "'New message received at ' + string(document.create_time)" The
183
+ # exact variables and functions that may be referenced within an expression are
184
+ # determined by the service that evaluates it. See the service documentation for
185
+ # additional information.
186
+ # Corresponds to the JSON property `condition`
187
+ # @return [Google::Apis::ConnectorsV1::Expr]
188
+ attr_accessor :condition
189
+
190
+ # Specifies the identities requesting access for a Cloud Platform resource. `
191
+ # members` can have the following values: * `allUsers`: A special identifier
192
+ # that represents anyone who is on the internet; with or without a Google
193
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
194
+ # anyone who is authenticated with a Google account or a service account. * `
195
+ # user:`emailid``: An email address that represents a specific Google account.
196
+ # For example, `alice@example.com` . * `serviceAccount:`emailid``: An email
197
+ # address that represents a service account. For example, `my-other-app@appspot.
198
+ # gserviceaccount.com`. * `group:`emailid``: An email address that represents a
199
+ # Google group. For example, `admins@example.com`. * `deleted:user:`emailid`?uid=
200
+ # `uniqueid``: An email address (plus unique identifier) representing a user
201
+ # that has been recently deleted. For example, `alice@example.com?uid=
202
+ # 123456789012345678901`. If the user is recovered, this value reverts to `user:`
203
+ # emailid`` and the recovered user retains the role in the binding. * `deleted:
204
+ # serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus unique
205
+ # identifier) representing a service account that has been recently deleted. For
206
+ # example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
207
+ # If the service account is undeleted, this value reverts to `serviceAccount:`
208
+ # emailid`` and the undeleted service account retains the role in the binding. *
209
+ # `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
210
+ # identifier) representing a Google group that has been recently deleted. For
211
+ # example, `admins@example.com?uid=123456789012345678901`. If the group is
212
+ # recovered, this value reverts to `group:`emailid`` and the recovered group
213
+ # retains the role in the binding. * `domain:`domain``: The G Suite domain (
214
+ # primary) that represents all the users of that domain. For example, `google.
215
+ # com` or `example.com`.
216
+ # Corresponds to the JSON property `members`
217
+ # @return [Array<String>]
218
+ attr_accessor :members
219
+
220
+ # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
221
+ # , or `roles/owner`.
222
+ # Corresponds to the JSON property `role`
223
+ # @return [String]
224
+ attr_accessor :role
225
+
226
+ def initialize(**args)
227
+ update!(**args)
228
+ end
229
+
230
+ # Update properties of this object
231
+ def update!(**args)
232
+ @condition = args[:condition] if args.key?(:condition)
233
+ @members = args[:members] if args.key?(:members)
234
+ @role = args[:role] if args.key?(:role)
235
+ end
236
+ end
237
+
238
+ # The request message for Operations.CancelOperation.
239
+ class CancelOperationRequest
240
+ include Google::Apis::Core::Hashable
241
+
242
+ def initialize(**args)
243
+ update!(**args)
244
+ end
245
+
246
+ # Update properties of this object
247
+ def update!(**args)
248
+ end
249
+ end
250
+
251
+ # ConfigVariable represents a configuration variable present in a Connection. or
252
+ # AuthConfig.
253
+ class ConfigVariable
254
+ include Google::Apis::Core::Hashable
255
+
256
+ # Value is a bool.
257
+ # Corresponds to the JSON property `boolValue`
258
+ # @return [Boolean]
259
+ attr_accessor :bool_value
260
+ alias_method :bool_value?, :bool_value
261
+
262
+ # Value is an integer
263
+ # Corresponds to the JSON property `intValue`
264
+ # @return [Fixnum]
265
+ attr_accessor :int_value
266
+
267
+ # Key of the config variable.
268
+ # Corresponds to the JSON property `key`
269
+ # @return [String]
270
+ attr_accessor :key
271
+
272
+ # Secret provides a reference to entries in Secret Manager.
273
+ # Corresponds to the JSON property `secretValue`
274
+ # @return [Google::Apis::ConnectorsV1::Secret]
275
+ attr_accessor :secret_value
276
+
277
+ # Value is a string.
278
+ # Corresponds to the JSON property `stringValue`
279
+ # @return [String]
280
+ attr_accessor :string_value
281
+
282
+ def initialize(**args)
283
+ update!(**args)
284
+ end
285
+
286
+ # Update properties of this object
287
+ def update!(**args)
288
+ @bool_value = args[:bool_value] if args.key?(:bool_value)
289
+ @int_value = args[:int_value] if args.key?(:int_value)
290
+ @key = args[:key] if args.key?(:key)
291
+ @secret_value = args[:secret_value] if args.key?(:secret_value)
292
+ @string_value = args[:string_value] if args.key?(:string_value)
293
+ end
294
+ end
295
+
296
+ # ConfigVariableTemplate provides metadata about a `ConfigVariable` that is used
297
+ # in a Connection.
298
+ class ConfigVariableTemplate
299
+ include Google::Apis::Core::Hashable
300
+
301
+ # Description.
302
+ # Corresponds to the JSON property `description`
303
+ # @return [String]
304
+ attr_accessor :description
305
+
306
+ # Display name of the parameter.
307
+ # Corresponds to the JSON property `displayName`
308
+ # @return [String]
309
+ attr_accessor :display_name
310
+
311
+ # Key of the config variable.
312
+ # Corresponds to the JSON property `key`
313
+ # @return [String]
314
+ attr_accessor :key
315
+
316
+ # Flag represents that this `ConfigVariable` must be provided for a connection.
317
+ # Corresponds to the JSON property `required`
318
+ # @return [Boolean]
319
+ attr_accessor :required
320
+ alias_method :required?, :required
321
+
322
+ # This configuration defines all the Cloud IAM roles that needs to be granted to
323
+ # a particular GCP resource for the selected prinicpal like service account.
324
+ # These configurations will let UI display to customers what IAM roles need to
325
+ # be granted by them. Or these configurations can be used by the UI to render a '
326
+ # grant' button to do the same on behalf of the user.
327
+ # Corresponds to the JSON property `roleGrant`
328
+ # @return [Google::Apis::ConnectorsV1::RoleGrant]
329
+ attr_accessor :role_grant
330
+
331
+ # Regular expression in RE2 syntax used for validating the `value` of a `
332
+ # ConfigVariable`.
333
+ # Corresponds to the JSON property `validationRegex`
334
+ # @return [String]
335
+ attr_accessor :validation_regex
336
+
337
+ # Type of the parameter: string, int, bool etc. consider custom type for the
338
+ # benefit for the validation.
339
+ # Corresponds to the JSON property `valueType`
340
+ # @return [String]
341
+ attr_accessor :value_type
342
+
343
+ def initialize(**args)
344
+ update!(**args)
345
+ end
346
+
347
+ # Update properties of this object
348
+ def update!(**args)
349
+ @description = args[:description] if args.key?(:description)
350
+ @display_name = args[:display_name] if args.key?(:display_name)
351
+ @key = args[:key] if args.key?(:key)
352
+ @required = args[:required] if args.key?(:required)
353
+ @role_grant = args[:role_grant] if args.key?(:role_grant)
354
+ @validation_regex = args[:validation_regex] if args.key?(:validation_regex)
355
+ @value_type = args[:value_type] if args.key?(:value_type)
356
+ end
357
+ end
358
+
359
+ # Connection represents an instance of connector.
360
+ class Connection
361
+ include Google::Apis::Core::Hashable
362
+
363
+ # AuthConfig defines details of a authentication type.
364
+ # Corresponds to the JSON property `authConfig`
365
+ # @return [Google::Apis::ConnectorsV1::AuthConfig]
366
+ attr_accessor :auth_config
367
+
368
+ # Optional. Configuration for configuring the connection with an external system.
369
+ # Corresponds to the JSON property `configVariables`
370
+ # @return [Array<Google::Apis::ConnectorsV1::ConfigVariable>]
371
+ attr_accessor :config_variables
372
+
373
+ # Required. Connector version on which the connection is created. The format is:
374
+ # projects/*/locations/global/providers/*/connectors/*/versions/*
375
+ # Corresponds to the JSON property `connectorVersion`
376
+ # @return [String]
377
+ attr_accessor :connector_version
378
+
379
+ # Output only. Created time.
380
+ # Corresponds to the JSON property `createTime`
381
+ # @return [String]
382
+ attr_accessor :create_time
383
+
384
+ # Optional. Description of the resource.
385
+ # Corresponds to the JSON property `description`
386
+ # @return [String]
387
+ attr_accessor :description
388
+
389
+ # Output only. Outbound domains/hosts needs to be allowlisted.
390
+ # Corresponds to the JSON property `egressBackends`
391
+ # @return [Array<String>]
392
+ attr_accessor :egress_backends
393
+
394
+ # Output only. GCR location where the envoy image is stored. formatted like: gcr.
395
+ # io/`bucketName`/`imageName`
396
+ # Corresponds to the JSON property `envoyImageLocation`
397
+ # @return [String]
398
+ attr_accessor :envoy_image_location
399
+
400
+ # Output only. GCR location where the runtime image is stored. formatted like:
401
+ # gcr.io/`bucketName`/`imageName`
402
+ # Corresponds to the JSON property `imageLocation`
403
+ # @return [String]
404
+ attr_accessor :image_location
405
+
406
+ # Optional. Inactive indicates the connection is active to use or not.
407
+ # Corresponds to the JSON property `inactive`
408
+ # @return [Boolean]
409
+ attr_accessor :inactive
410
+ alias_method :inactive?, :inactive
411
+
412
+ # Optional. Resource labels to represent user-provided metadata. Refer to cloud
413
+ # documentation on labels for more details. https://cloud.google.com/compute/
414
+ # docs/labeling-resources
415
+ # Corresponds to the JSON property `labels`
416
+ # @return [Hash<String,String>]
417
+ attr_accessor :labels
418
+
419
+ # Determines whether or no a connection is locked. If locked, a reason must be
420
+ # specified.
421
+ # Corresponds to the JSON property `lockConfig`
422
+ # @return [Google::Apis::ConnectorsV1::LockConfig]
423
+ attr_accessor :lock_config
424
+
425
+ # Output only. Resource name of the Connection. Format: projects/`project`/
426
+ # locations/`location`/connections/`connection`
427
+ # Corresponds to the JSON property `name`
428
+ # @return [String]
429
+ attr_accessor :name
430
+
431
+ # Optional. Service account needed for runtime plane to access GCP resources.
432
+ # Corresponds to the JSON property `serviceAccount`
433
+ # @return [String]
434
+ attr_accessor :service_account
435
+
436
+ # Output only. The name of the Service Directory service name. Used for Private
437
+ # Harpoon to resolve the ILB address. e.g. "projects/cloud-connectors-e2e-
438
+ # testing/locations/us-central1/namespaces/istio-system/services/istio-
439
+ # ingressgateway-connectors"
440
+ # Corresponds to the JSON property `serviceDirectory`
441
+ # @return [String]
442
+ attr_accessor :service_directory
443
+
444
+ # ConnectionStatus indicates the state of the connection.
445
+ # Corresponds to the JSON property `status`
446
+ # @return [Google::Apis::ConnectorsV1::ConnectionStatus]
447
+ attr_accessor :status
448
+
449
+ # Output only. Updated time.
450
+ # Corresponds to the JSON property `updateTime`
451
+ # @return [String]
452
+ attr_accessor :update_time
453
+
454
+ def initialize(**args)
455
+ update!(**args)
456
+ end
457
+
458
+ # Update properties of this object
459
+ def update!(**args)
460
+ @auth_config = args[:auth_config] if args.key?(:auth_config)
461
+ @config_variables = args[:config_variables] if args.key?(:config_variables)
462
+ @connector_version = args[:connector_version] if args.key?(:connector_version)
463
+ @create_time = args[:create_time] if args.key?(:create_time)
464
+ @description = args[:description] if args.key?(:description)
465
+ @egress_backends = args[:egress_backends] if args.key?(:egress_backends)
466
+ @envoy_image_location = args[:envoy_image_location] if args.key?(:envoy_image_location)
467
+ @image_location = args[:image_location] if args.key?(:image_location)
468
+ @inactive = args[:inactive] if args.key?(:inactive)
469
+ @labels = args[:labels] if args.key?(:labels)
470
+ @lock_config = args[:lock_config] if args.key?(:lock_config)
471
+ @name = args[:name] if args.key?(:name)
472
+ @service_account = args[:service_account] if args.key?(:service_account)
473
+ @service_directory = args[:service_directory] if args.key?(:service_directory)
474
+ @status = args[:status] if args.key?(:status)
475
+ @update_time = args[:update_time] if args.key?(:update_time)
476
+ end
477
+ end
478
+
479
+ # Metadata of connection schema.
480
+ class ConnectionSchemaMetadata
481
+ include Google::Apis::Core::Hashable
482
+
483
+ # Output only. List of actions.
484
+ # Corresponds to the JSON property `actions`
485
+ # @return [Array<String>]
486
+ attr_accessor :actions
487
+
488
+ # Output only. List of entity names.
489
+ # Corresponds to the JSON property `entities`
490
+ # @return [Array<String>]
491
+ attr_accessor :entities
492
+
493
+ def initialize(**args)
494
+ update!(**args)
495
+ end
496
+
497
+ # Update properties of this object
498
+ def update!(**args)
499
+ @actions = args[:actions] if args.key?(:actions)
500
+ @entities = args[:entities] if args.key?(:entities)
501
+ end
502
+ end
503
+
504
+ # ConnectionStatus indicates the state of the connection.
505
+ class ConnectionStatus
506
+ include Google::Apis::Core::Hashable
507
+
508
+ # Description.
509
+ # Corresponds to the JSON property `description`
510
+ # @return [String]
511
+ attr_accessor :description
512
+
513
+ # State.
514
+ # Corresponds to the JSON property `state`
515
+ # @return [String]
516
+ attr_accessor :state
517
+
518
+ # Status provides detailed information for the state.
519
+ # Corresponds to the JSON property `status`
520
+ # @return [String]
521
+ attr_accessor :status
522
+
523
+ def initialize(**args)
524
+ update!(**args)
525
+ end
526
+
527
+ # Update properties of this object
528
+ def update!(**args)
529
+ @description = args[:description] if args.key?(:description)
530
+ @state = args[:state] if args.key?(:state)
531
+ @status = args[:status] if args.key?(:status)
532
+ end
533
+ end
534
+
535
+ # Connectors indicates a specific connector type, e.x. Salesforce, SAP etc.
536
+ class Connector
537
+ include Google::Apis::Core::Hashable
538
+
539
+ # Output only. Created time.
540
+ # Corresponds to the JSON property `createTime`
541
+ # @return [String]
542
+ attr_accessor :create_time
543
+
544
+ # Output only. Description of the resource.
545
+ # Corresponds to the JSON property `description`
546
+ # @return [String]
547
+ attr_accessor :description
548
+
549
+ # Output only. Display name.
550
+ # Corresponds to the JSON property `displayName`
551
+ # @return [String]
552
+ attr_accessor :display_name
553
+
554
+ # Output only. Link to documentation page.
555
+ # Corresponds to the JSON property `documentationUri`
556
+ # @return [String]
557
+ attr_accessor :documentation_uri
558
+
559
+ # Output only. Link to external page.
560
+ # Corresponds to the JSON property `externalUri`
561
+ # @return [String]
562
+ attr_accessor :external_uri
563
+
564
+ # Output only. Resource labels to represent user-provided metadata. Refer to
565
+ # cloud documentation on labels for more details. https://cloud.google.com/
566
+ # compute/docs/labeling-resources
567
+ # Corresponds to the JSON property `labels`
568
+ # @return [Hash<String,String>]
569
+ attr_accessor :labels
570
+
571
+ # Output only. Resource name of the Connector. Format: projects/`project`/
572
+ # locations/`location`/providers/`provider`/connectors/`connector`
573
+ # Corresponds to the JSON property `name`
574
+ # @return [String]
575
+ attr_accessor :name
576
+
577
+ # Output only. Updated time.
578
+ # Corresponds to the JSON property `updateTime`
579
+ # @return [String]
580
+ attr_accessor :update_time
581
+
582
+ # Output only. Cloud storage location of icons etc consumed by UI.
583
+ # Corresponds to the JSON property `webAssetsLocation`
584
+ # @return [String]
585
+ attr_accessor :web_assets_location
586
+
587
+ def initialize(**args)
588
+ update!(**args)
589
+ end
590
+
591
+ # Update properties of this object
592
+ def update!(**args)
593
+ @create_time = args[:create_time] if args.key?(:create_time)
594
+ @description = args[:description] if args.key?(:description)
595
+ @display_name = args[:display_name] if args.key?(:display_name)
596
+ @documentation_uri = args[:documentation_uri] if args.key?(:documentation_uri)
597
+ @external_uri = args[:external_uri] if args.key?(:external_uri)
598
+ @labels = args[:labels] if args.key?(:labels)
599
+ @name = args[:name] if args.key?(:name)
600
+ @update_time = args[:update_time] if args.key?(:update_time)
601
+ @web_assets_location = args[:web_assets_location] if args.key?(:web_assets_location)
602
+ end
603
+ end
604
+
605
+ # ConnectorVersion indicates a specific version of a connector.
606
+ class ConnectorVersion
607
+ include Google::Apis::Core::Hashable
608
+
609
+ # Output only. List of auth configs supported by the Connector Version.
610
+ # Corresponds to the JSON property `authConfigTemplates`
611
+ # @return [Array<Google::Apis::ConnectorsV1::AuthConfigTemplate>]
612
+ attr_accessor :auth_config_templates
613
+
614
+ # Output only. List of config variables needed to create a connection.
615
+ # Corresponds to the JSON property `configVariableTemplates`
616
+ # @return [Array<Google::Apis::ConnectorsV1::ConfigVariableTemplate>]
617
+ attr_accessor :config_variable_templates
618
+
619
+ # Output only. Created time.
620
+ # Corresponds to the JSON property `createTime`
621
+ # @return [String]
622
+ attr_accessor :create_time
623
+
624
+ # Output only. Display name.
625
+ # Corresponds to the JSON property `displayName`
626
+ # @return [String]
627
+ attr_accessor :display_name
628
+
629
+ # Egress control config for connector runtime. These configurations define the
630
+ # rules to identify which outbound domains/hosts needs to be whitelisted. It may
631
+ # be a static information for a particular connector version or it is derived
632
+ # from the configurations provided by the customer in Connection resource.
633
+ # Corresponds to the JSON property `egressControlConfig`
634
+ # @return [Google::Apis::ConnectorsV1::EgressControlConfig]
635
+ attr_accessor :egress_control_config
636
+
637
+ # Output only. Resource labels to represent user-provided metadata. Refer to
638
+ # cloud documentation on labels for more details. https://cloud.google.com/
639
+ # compute/docs/labeling-resources
640
+ # Corresponds to the JSON property `labels`
641
+ # @return [Hash<String,String>]
642
+ attr_accessor :labels
643
+
644
+ # Output only. Flag to mark the version indicating the launch stage.
645
+ # Corresponds to the JSON property `launchStage`
646
+ # @return [String]
647
+ attr_accessor :launch_stage
648
+
649
+ # Output only. Resource name of the Version. Format: projects/`project`/
650
+ # locations/`location`/providers/`provider`/connectors/`connector`/versions/`
651
+ # version`
652
+ # Corresponds to the JSON property `name`
653
+ # @return [String]
654
+ attr_accessor :name
655
+
656
+ # Output only. ReleaseVersion of the connector, for example: "1.0.1-alpha".
657
+ # Corresponds to the JSON property `releaseVersion`
658
+ # @return [String]
659
+ attr_accessor :release_version
660
+
661
+ # This configuration defines all the Cloud IAM roles that needs to be granted to
662
+ # a particular GCP resource for the selected prinicpal like service account.
663
+ # These configurations will let UI display to customers what IAM roles need to
664
+ # be granted by them. Or these configurations can be used by the UI to render a '
665
+ # grant' button to do the same on behalf of the user.
666
+ # Corresponds to the JSON property `roleGrant`
667
+ # @return [Google::Apis::ConnectorsV1::RoleGrant]
668
+ attr_accessor :role_grant
669
+
670
+ # Output only. Role grant configurations for this connector version.
671
+ # Corresponds to the JSON property `roleGrants`
672
+ # @return [Array<Google::Apis::ConnectorsV1::RoleGrant>]
673
+ attr_accessor :role_grants
674
+
675
+ # Supported runtime features of a connector version. This is passed to the
676
+ # management layer to add a new connector version by the connector developer.
677
+ # Details about how this proto is passed to the management layer is covered in
678
+ # this doc - go/runtime-manifest.
679
+ # Corresponds to the JSON property `supportedRuntimeFeatures`
680
+ # @return [Google::Apis::ConnectorsV1::SupportedRuntimeFeatures]
681
+ attr_accessor :supported_runtime_features
682
+
683
+ # Output only. Updated time.
684
+ # Corresponds to the JSON property `updateTime`
685
+ # @return [String]
686
+ attr_accessor :update_time
687
+
688
+ def initialize(**args)
689
+ update!(**args)
690
+ end
691
+
692
+ # Update properties of this object
693
+ def update!(**args)
694
+ @auth_config_templates = args[:auth_config_templates] if args.key?(:auth_config_templates)
695
+ @config_variable_templates = args[:config_variable_templates] if args.key?(:config_variable_templates)
696
+ @create_time = args[:create_time] if args.key?(:create_time)
697
+ @display_name = args[:display_name] if args.key?(:display_name)
698
+ @egress_control_config = args[:egress_control_config] if args.key?(:egress_control_config)
699
+ @labels = args[:labels] if args.key?(:labels)
700
+ @launch_stage = args[:launch_stage] if args.key?(:launch_stage)
701
+ @name = args[:name] if args.key?(:name)
702
+ @release_version = args[:release_version] if args.key?(:release_version)
703
+ @role_grant = args[:role_grant] if args.key?(:role_grant)
704
+ @role_grants = args[:role_grants] if args.key?(:role_grants)
705
+ @supported_runtime_features = args[:supported_runtime_features] if args.key?(:supported_runtime_features)
706
+ @update_time = args[:update_time] if args.key?(:update_time)
707
+ end
708
+ end
709
+
710
+ # Egress control config for connector runtime. These configurations define the
711
+ # rules to identify which outbound domains/hosts needs to be whitelisted. It may
712
+ # be a static information for a particular connector version or it is derived
713
+ # from the configurations provided by the customer in Connection resource.
714
+ class EgressControlConfig
715
+ include Google::Apis::Core::Hashable
716
+
717
+ # Static Comma separated backends which are common for all Connection resources.
718
+ # Supported formats for each backend are host:port or just host (host can be ip
719
+ # address or domain name).
720
+ # Corresponds to the JSON property `backends`
721
+ # @return [String]
722
+ attr_accessor :backends
723
+
724
+ # Extraction Rules to identity the backends from customer provided configuration
725
+ # in Connection resource.
726
+ # Corresponds to the JSON property `extractionRules`
727
+ # @return [Google::Apis::ConnectorsV1::ExtractionRules]
728
+ attr_accessor :extraction_rules
729
+
730
+ def initialize(**args)
731
+ update!(**args)
732
+ end
733
+
734
+ # Update properties of this object
735
+ def update!(**args)
736
+ @backends = args[:backends] if args.key?(:backends)
737
+ @extraction_rules = args[:extraction_rules] if args.key?(:extraction_rules)
738
+ end
739
+ end
740
+
741
+ # A generic empty message that you can re-use to avoid defining duplicated empty
742
+ # messages in your APIs. A typical example is to use it as the request or the
743
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
744
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
745
+ # `Empty` is empty JSON object ````.
746
+ class Empty
747
+ include Google::Apis::Core::Hashable
748
+
749
+ def initialize(**args)
750
+ update!(**args)
751
+ end
752
+
753
+ # Update properties of this object
754
+ def update!(**args)
755
+ end
756
+ end
757
+
758
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
759
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
760
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
761
+ # "Summary size limit" description: "Determines if a summary is less than 100
762
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
763
+ # Requestor is owner" description: "Determines if requestor is the document
764
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
765
+ # Logic): title: "Public documents" description: "Determine whether the document
766
+ # should be publicly visible" expression: "document.type != 'private' &&
767
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
768
+ # string" description: "Create a notification string with a timestamp."
769
+ # expression: "'New message received at ' + string(document.create_time)" The
770
+ # exact variables and functions that may be referenced within an expression are
771
+ # determined by the service that evaluates it. See the service documentation for
772
+ # additional information.
773
+ class Expr
774
+ include Google::Apis::Core::Hashable
775
+
776
+ # Optional. Description of the expression. This is a longer text which describes
777
+ # the expression, e.g. when hovered over it in a UI.
778
+ # Corresponds to the JSON property `description`
779
+ # @return [String]
780
+ attr_accessor :description
781
+
782
+ # Textual representation of an expression in Common Expression Language syntax.
783
+ # Corresponds to the JSON property `expression`
784
+ # @return [String]
785
+ attr_accessor :expression
786
+
787
+ # Optional. String indicating the location of the expression for error reporting,
788
+ # e.g. a file name and a position in the file.
789
+ # Corresponds to the JSON property `location`
790
+ # @return [String]
791
+ attr_accessor :location
792
+
793
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
794
+ # This can be used e.g. in UIs which allow to enter the expression.
795
+ # Corresponds to the JSON property `title`
796
+ # @return [String]
797
+ attr_accessor :title
798
+
799
+ def initialize(**args)
800
+ update!(**args)
801
+ end
802
+
803
+ # Update properties of this object
804
+ def update!(**args)
805
+ @description = args[:description] if args.key?(:description)
806
+ @expression = args[:expression] if args.key?(:expression)
807
+ @location = args[:location] if args.key?(:location)
808
+ @title = args[:title] if args.key?(:title)
809
+ end
810
+ end
811
+
812
+ # Extraction Rule.
813
+ class ExtractionRule
814
+ include Google::Apis::Core::Hashable
815
+
816
+ # Regex used to extract backend details from source. If empty, whole source
817
+ # value will be used.
818
+ # Corresponds to the JSON property `extractionRegex`
819
+ # @return [String]
820
+ attr_accessor :extraction_regex
821
+
822
+ # Source to extract the backend from.
823
+ # Corresponds to the JSON property `source`
824
+ # @return [Google::Apis::ConnectorsV1::Source]
825
+ attr_accessor :source
826
+
827
+ def initialize(**args)
828
+ update!(**args)
829
+ end
830
+
831
+ # Update properties of this object
832
+ def update!(**args)
833
+ @extraction_regex = args[:extraction_regex] if args.key?(:extraction_regex)
834
+ @source = args[:source] if args.key?(:source)
835
+ end
836
+ end
837
+
838
+ # Extraction Rules to identity the backends from customer provided configuration
839
+ # in Connection resource.
840
+ class ExtractionRules
841
+ include Google::Apis::Core::Hashable
842
+
843
+ # Collection of Extraction Rule.
844
+ # Corresponds to the JSON property `extractionRule`
845
+ # @return [Array<Google::Apis::ConnectorsV1::ExtractionRule>]
846
+ attr_accessor :extraction_rule
847
+
848
+ def initialize(**args)
849
+ update!(**args)
850
+ end
851
+
852
+ # Update properties of this object
853
+ def update!(**args)
854
+ @extraction_rule = args[:extraction_rule] if args.key?(:extraction_rule)
855
+ end
856
+ end
857
+
858
+ # Metadata of an entity field.
859
+ class Field
860
+ include Google::Apis::Core::Hashable
861
+
862
+ # The following map contains fields that are not explicitly mentioned above,this
863
+ # give connectors the flexibility to add new metadata fields.
864
+ # Corresponds to the JSON property `additionalDetails`
865
+ # @return [Hash<String,Object>]
866
+ attr_accessor :additional_details
867
+
868
+ # The data type of the Field.
869
+ # Corresponds to the JSON property `dataType`
870
+ # @return [String]
871
+ attr_accessor :data_type
872
+
873
+ # The following field specifies the default value of the Field provided by the
874
+ # external system if a value is not provided.
875
+ # Corresponds to the JSON property `defaultValue`
876
+ # @return [Object]
877
+ attr_accessor :default_value
878
+
879
+ # A brief description of the Field.
880
+ # Corresponds to the JSON property `description`
881
+ # @return [String]
882
+ attr_accessor :description
883
+
884
+ # Name of the Field.
885
+ # Corresponds to the JSON property `field`
886
+ # @return [String]
887
+ attr_accessor :field
888
+
889
+ # The following boolean field specifies if the current Field acts as a primary
890
+ # key or id if the parent is of type entity.
891
+ # Corresponds to the JSON property `key`
892
+ # @return [Boolean]
893
+ attr_accessor :key
894
+ alias_method :key?, :key
895
+
896
+ # Specifies whether a null value is allowed.
897
+ # Corresponds to the JSON property `nullable`
898
+ # @return [Boolean]
899
+ attr_accessor :nullable
900
+ alias_method :nullable?, :nullable
901
+
902
+ # Specifies if the Field is readonly.
903
+ # Corresponds to the JSON property `readonly`
904
+ # @return [Boolean]
905
+ attr_accessor :readonly
906
+ alias_method :readonly?, :readonly
907
+
908
+ def initialize(**args)
909
+ update!(**args)
910
+ end
911
+
912
+ # Update properties of this object
913
+ def update!(**args)
914
+ @additional_details = args[:additional_details] if args.key?(:additional_details)
915
+ @data_type = args[:data_type] if args.key?(:data_type)
916
+ @default_value = args[:default_value] if args.key?(:default_value)
917
+ @description = args[:description] if args.key?(:description)
918
+ @field = args[:field] if args.key?(:field)
919
+ @key = args[:key] if args.key?(:key)
920
+ @nullable = args[:nullable] if args.key?(:nullable)
921
+ @readonly = args[:readonly] if args.key?(:readonly)
922
+ end
923
+ end
924
+
925
+ # Metadata of an input parameter.
926
+ class InputParameter
927
+ include Google::Apis::Core::Hashable
928
+
929
+ # The data type of the Parameter.
930
+ # Corresponds to the JSON property `dataType`
931
+ # @return [String]
932
+ attr_accessor :data_type
933
+
934
+ # The following field specifies the default value of the Parameter provided by
935
+ # the external system if a value is not provided.
936
+ # Corresponds to the JSON property `defaultValue`
937
+ # @return [Object]
938
+ attr_accessor :default_value
939
+
940
+ # A brief description of the Parameter.
941
+ # Corresponds to the JSON property `description`
942
+ # @return [String]
943
+ attr_accessor :description
944
+
945
+ # Specifies whether a null value is allowed.
946
+ # Corresponds to the JSON property `nullable`
947
+ # @return [Boolean]
948
+ attr_accessor :nullable
949
+ alias_method :nullable?, :nullable
950
+
951
+ # Name of the Parameter.
952
+ # Corresponds to the JSON property `parameter`
953
+ # @return [String]
954
+ attr_accessor :parameter
955
+
956
+ def initialize(**args)
957
+ update!(**args)
958
+ end
959
+
960
+ # Update properties of this object
961
+ def update!(**args)
962
+ @data_type = args[:data_type] if args.key?(:data_type)
963
+ @default_value = args[:default_value] if args.key?(:default_value)
964
+ @description = args[:description] if args.key?(:description)
965
+ @nullable = args[:nullable] if args.key?(:nullable)
966
+ @parameter = args[:parameter] if args.key?(:parameter)
967
+ end
968
+ end
969
+
970
+ # JWT claims used for the jwt-bearer authorization grant.
971
+ class JwtClaims
972
+ include Google::Apis::Core::Hashable
973
+
974
+ # Value for the "aud" claim.
975
+ # Corresponds to the JSON property `audience`
976
+ # @return [String]
977
+ attr_accessor :audience
978
+
979
+ # Value for the "iss" claim.
980
+ # Corresponds to the JSON property `issuer`
981
+ # @return [String]
982
+ attr_accessor :issuer
983
+
984
+ # Value for the "sub" claim.
985
+ # Corresponds to the JSON property `subject`
986
+ # @return [String]
987
+ attr_accessor :subject
988
+
989
+ def initialize(**args)
990
+ update!(**args)
991
+ end
992
+
993
+ # Update properties of this object
994
+ def update!(**args)
995
+ @audience = args[:audience] if args.key?(:audience)
996
+ @issuer = args[:issuer] if args.key?(:issuer)
997
+ @subject = args[:subject] if args.key?(:subject)
998
+ end
999
+ end
1000
+
1001
+ # Response message for ConnectorsService.ListConnections
1002
+ class ListConnectionsResponse
1003
+ include Google::Apis::Core::Hashable
1004
+
1005
+ # Connections.
1006
+ # Corresponds to the JSON property `connections`
1007
+ # @return [Array<Google::Apis::ConnectorsV1::Connection>]
1008
+ attr_accessor :connections
1009
+
1010
+ # Next page token.
1011
+ # Corresponds to the JSON property `nextPageToken`
1012
+ # @return [String]
1013
+ attr_accessor :next_page_token
1014
+
1015
+ # Locations that could not be reached.
1016
+ # Corresponds to the JSON property `unreachable`
1017
+ # @return [Array<String>]
1018
+ attr_accessor :unreachable
1019
+
1020
+ def initialize(**args)
1021
+ update!(**args)
1022
+ end
1023
+
1024
+ # Update properties of this object
1025
+ def update!(**args)
1026
+ @connections = args[:connections] if args.key?(:connections)
1027
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1028
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1029
+ end
1030
+ end
1031
+
1032
+ # Response message for Connectors.ListConnectorVersions.
1033
+ class ListConnectorVersionsResponse
1034
+ include Google::Apis::Core::Hashable
1035
+
1036
+ # A list of connector versions.
1037
+ # Corresponds to the JSON property `connectorVersions`
1038
+ # @return [Array<Google::Apis::ConnectorsV1::ConnectorVersion>]
1039
+ attr_accessor :connector_versions
1040
+
1041
+ # Next page token.
1042
+ # Corresponds to the JSON property `nextPageToken`
1043
+ # @return [String]
1044
+ attr_accessor :next_page_token
1045
+
1046
+ # Locations that could not be reached.
1047
+ # Corresponds to the JSON property `unreachable`
1048
+ # @return [Array<String>]
1049
+ attr_accessor :unreachable
1050
+
1051
+ def initialize(**args)
1052
+ update!(**args)
1053
+ end
1054
+
1055
+ # Update properties of this object
1056
+ def update!(**args)
1057
+ @connector_versions = args[:connector_versions] if args.key?(:connector_versions)
1058
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1059
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1060
+ end
1061
+ end
1062
+
1063
+ # Response message for Connectors.ListConnectors.
1064
+ class ListConnectorsResponse
1065
+ include Google::Apis::Core::Hashable
1066
+
1067
+ # A list of connectors.
1068
+ # Corresponds to the JSON property `connectors`
1069
+ # @return [Array<Google::Apis::ConnectorsV1::Connector>]
1070
+ attr_accessor :connectors
1071
+
1072
+ # Next page token.
1073
+ # Corresponds to the JSON property `nextPageToken`
1074
+ # @return [String]
1075
+ attr_accessor :next_page_token
1076
+
1077
+ # Locations that could not be reached.
1078
+ # Corresponds to the JSON property `unreachable`
1079
+ # @return [Array<String>]
1080
+ attr_accessor :unreachable
1081
+
1082
+ def initialize(**args)
1083
+ update!(**args)
1084
+ end
1085
+
1086
+ # Update properties of this object
1087
+ def update!(**args)
1088
+ @connectors = args[:connectors] if args.key?(:connectors)
1089
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1090
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1091
+ end
1092
+ end
1093
+
1094
+ # The response message for Locations.ListLocations.
1095
+ class ListLocationsResponse
1096
+ include Google::Apis::Core::Hashable
1097
+
1098
+ # A list of locations that matches the specified filter in the request.
1099
+ # Corresponds to the JSON property `locations`
1100
+ # @return [Array<Google::Apis::ConnectorsV1::Location>]
1101
+ attr_accessor :locations
1102
+
1103
+ # The standard List next-page token.
1104
+ # Corresponds to the JSON property `nextPageToken`
1105
+ # @return [String]
1106
+ attr_accessor :next_page_token
1107
+
1108
+ def initialize(**args)
1109
+ update!(**args)
1110
+ end
1111
+
1112
+ # Update properties of this object
1113
+ def update!(**args)
1114
+ @locations = args[:locations] if args.key?(:locations)
1115
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1116
+ end
1117
+ end
1118
+
1119
+ # The response message for Operations.ListOperations.
1120
+ class ListOperationsResponse
1121
+ include Google::Apis::Core::Hashable
1122
+
1123
+ # The standard List next-page token.
1124
+ # Corresponds to the JSON property `nextPageToken`
1125
+ # @return [String]
1126
+ attr_accessor :next_page_token
1127
+
1128
+ # A list of operations that matches the specified filter in the request.
1129
+ # Corresponds to the JSON property `operations`
1130
+ # @return [Array<Google::Apis::ConnectorsV1::Operation>]
1131
+ attr_accessor :operations
1132
+
1133
+ def initialize(**args)
1134
+ update!(**args)
1135
+ end
1136
+
1137
+ # Update properties of this object
1138
+ def update!(**args)
1139
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1140
+ @operations = args[:operations] if args.key?(:operations)
1141
+ end
1142
+ end
1143
+
1144
+ # Response message for Connectors.ListProviders.
1145
+ class ListProvidersResponse
1146
+ include Google::Apis::Core::Hashable
1147
+
1148
+ # Next page token.
1149
+ # Corresponds to the JSON property `nextPageToken`
1150
+ # @return [String]
1151
+ attr_accessor :next_page_token
1152
+
1153
+ # A list of providers.
1154
+ # Corresponds to the JSON property `providers`
1155
+ # @return [Array<Google::Apis::ConnectorsV1::Provider>]
1156
+ attr_accessor :providers
1157
+
1158
+ # Locations that could not be reached.
1159
+ # Corresponds to the JSON property `unreachable`
1160
+ # @return [Array<String>]
1161
+ attr_accessor :unreachable
1162
+
1163
+ def initialize(**args)
1164
+ update!(**args)
1165
+ end
1166
+
1167
+ # Update properties of this object
1168
+ def update!(**args)
1169
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1170
+ @providers = args[:providers] if args.key?(:providers)
1171
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1172
+ end
1173
+ end
1174
+
1175
+ # Response message for ConnectorsService.ListRuntimeActionSchemas.
1176
+ class ListRuntimeActionSchemasResponse
1177
+ include Google::Apis::Core::Hashable
1178
+
1179
+ # Next page token.
1180
+ # Corresponds to the JSON property `nextPageToken`
1181
+ # @return [String]
1182
+ attr_accessor :next_page_token
1183
+
1184
+ # Runtime action schemas.
1185
+ # Corresponds to the JSON property `runtimeActionSchemas`
1186
+ # @return [Array<Google::Apis::ConnectorsV1::RuntimeActionSchema>]
1187
+ attr_accessor :runtime_action_schemas
1188
+
1189
+ def initialize(**args)
1190
+ update!(**args)
1191
+ end
1192
+
1193
+ # Update properties of this object
1194
+ def update!(**args)
1195
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1196
+ @runtime_action_schemas = args[:runtime_action_schemas] if args.key?(:runtime_action_schemas)
1197
+ end
1198
+ end
1199
+
1200
+ # Response message for ConnectorsService.ListRuntimeEntitySchemas.
1201
+ class ListRuntimeEntitySchemasResponse
1202
+ include Google::Apis::Core::Hashable
1203
+
1204
+ # Next page token.
1205
+ # Corresponds to the JSON property `nextPageToken`
1206
+ # @return [String]
1207
+ attr_accessor :next_page_token
1208
+
1209
+ # Runtime entity schemas.
1210
+ # Corresponds to the JSON property `runtimeEntitySchemas`
1211
+ # @return [Array<Google::Apis::ConnectorsV1::RuntimeEntitySchema>]
1212
+ attr_accessor :runtime_entity_schemas
1213
+
1214
+ def initialize(**args)
1215
+ update!(**args)
1216
+ end
1217
+
1218
+ # Update properties of this object
1219
+ def update!(**args)
1220
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1221
+ @runtime_entity_schemas = args[:runtime_entity_schemas] if args.key?(:runtime_entity_schemas)
1222
+ end
1223
+ end
1224
+
1225
+ # A resource that represents Google Cloud Platform location.
1226
+ class Location
1227
+ include Google::Apis::Core::Hashable
1228
+
1229
+ # The friendly name for this location, typically a nearby city name. For example,
1230
+ # "Tokyo".
1231
+ # Corresponds to the JSON property `displayName`
1232
+ # @return [String]
1233
+ attr_accessor :display_name
1234
+
1235
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
1236
+ # region": "us-east1"`
1237
+ # Corresponds to the JSON property `labels`
1238
+ # @return [Hash<String,String>]
1239
+ attr_accessor :labels
1240
+
1241
+ # The canonical id for this location. For example: `"us-east1"`.
1242
+ # Corresponds to the JSON property `locationId`
1243
+ # @return [String]
1244
+ attr_accessor :location_id
1245
+
1246
+ # Service-specific metadata. For example the available capacity at the given
1247
+ # location.
1248
+ # Corresponds to the JSON property `metadata`
1249
+ # @return [Hash<String,Object>]
1250
+ attr_accessor :metadata
1251
+
1252
+ # Resource name for the location, which may vary between implementations. For
1253
+ # example: `"projects/example-project/locations/us-east1"`
1254
+ # Corresponds to the JSON property `name`
1255
+ # @return [String]
1256
+ attr_accessor :name
1257
+
1258
+ def initialize(**args)
1259
+ update!(**args)
1260
+ end
1261
+
1262
+ # Update properties of this object
1263
+ def update!(**args)
1264
+ @display_name = args[:display_name] if args.key?(:display_name)
1265
+ @labels = args[:labels] if args.key?(:labels)
1266
+ @location_id = args[:location_id] if args.key?(:location_id)
1267
+ @metadata = args[:metadata] if args.key?(:metadata)
1268
+ @name = args[:name] if args.key?(:name)
1269
+ end
1270
+ end
1271
+
1272
+ # Determines whether or no a connection is locked. If locked, a reason must be
1273
+ # specified.
1274
+ class LockConfig
1275
+ include Google::Apis::Core::Hashable
1276
+
1277
+ # Indicates whether or not the connection is locked.
1278
+ # Corresponds to the JSON property `locked`
1279
+ # @return [Boolean]
1280
+ attr_accessor :locked
1281
+ alias_method :locked?, :locked
1282
+
1283
+ # Describes why a connection is locked.
1284
+ # Corresponds to the JSON property `reason`
1285
+ # @return [String]
1286
+ attr_accessor :reason
1287
+
1288
+ def initialize(**args)
1289
+ update!(**args)
1290
+ end
1291
+
1292
+ # Update properties of this object
1293
+ def update!(**args)
1294
+ @locked = args[:locked] if args.key?(:locked)
1295
+ @reason = args[:reason] if args.key?(:reason)
1296
+ end
1297
+ end
1298
+
1299
+ # Parameters to support Oauth 2.0 Client Credentials Grant Authentication. See
1300
+ # https://tools.ietf.org/html/rfc6749#section-1.3.4 for more details.
1301
+ class Oauth2ClientCredentials
1302
+ include Google::Apis::Core::Hashable
1303
+
1304
+ # The client identifier.
1305
+ # Corresponds to the JSON property `clientId`
1306
+ # @return [String]
1307
+ attr_accessor :client_id
1308
+
1309
+ # Secret provides a reference to entries in Secret Manager.
1310
+ # Corresponds to the JSON property `clientSecret`
1311
+ # @return [Google::Apis::ConnectorsV1::Secret]
1312
+ attr_accessor :client_secret
1313
+
1314
+ def initialize(**args)
1315
+ update!(**args)
1316
+ end
1317
+
1318
+ # Update properties of this object
1319
+ def update!(**args)
1320
+ @client_id = args[:client_id] if args.key?(:client_id)
1321
+ @client_secret = args[:client_secret] if args.key?(:client_secret)
1322
+ end
1323
+ end
1324
+
1325
+ # Parameters to support JSON Web Token (JWT) Profile for Oauth 2.0 Authorization
1326
+ # Grant based authentication. See https://tools.ietf.org/html/rfc7523 for more
1327
+ # details.
1328
+ class Oauth2JwtBearer
1329
+ include Google::Apis::Core::Hashable
1330
+
1331
+ # Secret provides a reference to entries in Secret Manager.
1332
+ # Corresponds to the JSON property `clientKey`
1333
+ # @return [Google::Apis::ConnectorsV1::Secret]
1334
+ attr_accessor :client_key
1335
+
1336
+ # JWT claims used for the jwt-bearer authorization grant.
1337
+ # Corresponds to the JSON property `jwtClaims`
1338
+ # @return [Google::Apis::ConnectorsV1::JwtClaims]
1339
+ attr_accessor :jwt_claims
1340
+
1341
+ def initialize(**args)
1342
+ update!(**args)
1343
+ end
1344
+
1345
+ # Update properties of this object
1346
+ def update!(**args)
1347
+ @client_key = args[:client_key] if args.key?(:client_key)
1348
+ @jwt_claims = args[:jwt_claims] if args.key?(:jwt_claims)
1349
+ end
1350
+ end
1351
+
1352
+ # This resource represents a long-running operation that is the result of a
1353
+ # network API call.
1354
+ class Operation
1355
+ include Google::Apis::Core::Hashable
1356
+
1357
+ # If the value is `false`, it means the operation is still in progress. If `true`
1358
+ # , the operation is completed, and either `error` or `response` is available.
1359
+ # Corresponds to the JSON property `done`
1360
+ # @return [Boolean]
1361
+ attr_accessor :done
1362
+ alias_method :done?, :done
1363
+
1364
+ # The `Status` type defines a logical error model that is suitable for different
1365
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1366
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1367
+ # data: error code, error message, and error details. You can find out more
1368
+ # about this error model and how to work with it in the [API Design Guide](https:
1369
+ # //cloud.google.com/apis/design/errors).
1370
+ # Corresponds to the JSON property `error`
1371
+ # @return [Google::Apis::ConnectorsV1::Status]
1372
+ attr_accessor :error
1373
+
1374
+ # Service-specific metadata associated with the operation. It typically contains
1375
+ # progress information and common metadata such as create time. Some services
1376
+ # might not provide such metadata. Any method that returns a long-running
1377
+ # operation should document the metadata type, if any.
1378
+ # Corresponds to the JSON property `metadata`
1379
+ # @return [Hash<String,Object>]
1380
+ attr_accessor :metadata
1381
+
1382
+ # The server-assigned name, which is only unique within the same service that
1383
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1384
+ # be a resource name ending with `operations/`unique_id``.
1385
+ # Corresponds to the JSON property `name`
1386
+ # @return [String]
1387
+ attr_accessor :name
1388
+
1389
+ # The normal response of the operation in case of success. If the original
1390
+ # method returns no data on success, such as `Delete`, the response is `google.
1391
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
1392
+ # the response should be the resource. For other methods, the response should
1393
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
1394
+ # example, if the original method name is `TakeSnapshot()`, the inferred
1395
+ # response type is `TakeSnapshotResponse`.
1396
+ # Corresponds to the JSON property `response`
1397
+ # @return [Hash<String,Object>]
1398
+ attr_accessor :response
1399
+
1400
+ def initialize(**args)
1401
+ update!(**args)
1402
+ end
1403
+
1404
+ # Update properties of this object
1405
+ def update!(**args)
1406
+ @done = args[:done] if args.key?(:done)
1407
+ @error = args[:error] if args.key?(:error)
1408
+ @metadata = args[:metadata] if args.key?(:metadata)
1409
+ @name = args[:name] if args.key?(:name)
1410
+ @response = args[:response] if args.key?(:response)
1411
+ end
1412
+ end
1413
+
1414
+ # Represents the metadata of the long-running operation.
1415
+ class OperationMetadata
1416
+ include Google::Apis::Core::Hashable
1417
+
1418
+ # Output only. API version used to start the operation.
1419
+ # Corresponds to the JSON property `apiVersion`
1420
+ # @return [String]
1421
+ attr_accessor :api_version
1422
+
1423
+ # Output only. The time the operation was created.
1424
+ # Corresponds to the JSON property `createTime`
1425
+ # @return [String]
1426
+ attr_accessor :create_time
1427
+
1428
+ # Output only. The time the operation finished running.
1429
+ # Corresponds to the JSON property `endTime`
1430
+ # @return [String]
1431
+ attr_accessor :end_time
1432
+
1433
+ # Output only. Identifies whether the user has requested cancellation of the
1434
+ # operation. Operations that have successfully been cancelled have Operation.
1435
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
1436
+ # CANCELLED`.
1437
+ # Corresponds to the JSON property `requestedCancellation`
1438
+ # @return [Boolean]
1439
+ attr_accessor :requested_cancellation
1440
+ alias_method :requested_cancellation?, :requested_cancellation
1441
+
1442
+ # Output only. Human-readable status of the operation, if any.
1443
+ # Corresponds to the JSON property `statusMessage`
1444
+ # @return [String]
1445
+ attr_accessor :status_message
1446
+
1447
+ # Output only. Server-defined resource path for the target of the operation.
1448
+ # Corresponds to the JSON property `target`
1449
+ # @return [String]
1450
+ attr_accessor :target
1451
+
1452
+ # Output only. Name of the verb executed by the operation.
1453
+ # Corresponds to the JSON property `verb`
1454
+ # @return [String]
1455
+ attr_accessor :verb
1456
+
1457
+ def initialize(**args)
1458
+ update!(**args)
1459
+ end
1460
+
1461
+ # Update properties of this object
1462
+ def update!(**args)
1463
+ @api_version = args[:api_version] if args.key?(:api_version)
1464
+ @create_time = args[:create_time] if args.key?(:create_time)
1465
+ @end_time = args[:end_time] if args.key?(:end_time)
1466
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
1467
+ @status_message = args[:status_message] if args.key?(:status_message)
1468
+ @target = args[:target] if args.key?(:target)
1469
+ @verb = args[:verb] if args.key?(:verb)
1470
+ end
1471
+ end
1472
+
1473
+ # An Identity and Access Management (IAM) policy, which specifies access
1474
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1475
+ # A `binding` binds one or more `members` to a single `role`. Members can be
1476
+ # user accounts, service accounts, Google groups, and domains (such as G Suite).
1477
+ # A `role` is a named list of permissions; each `role` can be an IAM predefined
1478
+ # role or a user-created custom role. For some types of Google Cloud resources,
1479
+ # a `binding` can also specify a `condition`, which is a logical expression that
1480
+ # allows access to a resource only if the expression evaluates to `true`. A
1481
+ # condition can add constraints based on attributes of the request, the resource,
1482
+ # or both. To learn which resources support conditions in their IAM policies,
1483
+ # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1484
+ # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
1485
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
1486
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
1487
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
1488
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
1489
+ # title": "expirable access", "description": "Does not grant access after Sep
1490
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
1491
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
1492
+ # members: - user:mike@example.com - group:admins@example.com - domain:google.
1493
+ # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
1494
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
1495
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
1496
+ # description: Does not grant access after Sep 2020 expression: request.time <
1497
+ # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
1498
+ # description of IAM and its features, see the [IAM documentation](https://cloud.
1499
+ # google.com/iam/docs/).
1500
+ class Policy
1501
+ include Google::Apis::Core::Hashable
1502
+
1503
+ # Specifies cloud audit logging configuration for this policy.
1504
+ # Corresponds to the JSON property `auditConfigs`
1505
+ # @return [Array<Google::Apis::ConnectorsV1::AuditConfig>]
1506
+ attr_accessor :audit_configs
1507
+
1508
+ # Associates a list of `members` to a `role`. Optionally, may specify a `
1509
+ # condition` that determines how and when the `bindings` are applied. Each of
1510
+ # the `bindings` must contain at least one member. The `bindings` in a `Policy`
1511
+ # can refer to up to 1,500 members; up to 250 of these members can be Google
1512
+ # groups. Each occurrence of a member counts towards these limits. For example,
1513
+ # if the `bindings` grant 50 different roles to `user:alice@example.com`, and
1514
+ # not to any other member, then you can add another 1,450 members to the `
1515
+ # bindings` in the `Policy`.
1516
+ # Corresponds to the JSON property `bindings`
1517
+ # @return [Array<Google::Apis::ConnectorsV1::Binding>]
1518
+ attr_accessor :bindings
1519
+
1520
+ # `etag` is used for optimistic concurrency control as a way to help prevent
1521
+ # simultaneous updates of a policy from overwriting each other. It is strongly
1522
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
1523
+ # to perform policy updates in order to avoid race conditions: An `etag` is
1524
+ # returned in the response to `getIamPolicy`, and systems are expected to put
1525
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
1526
+ # applied to the same version of the policy. **Important:** If you use IAM
1527
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
1528
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
1529
+ # with a version `1` policy, and all of the conditions in the version `3` policy
1530
+ # are lost.
1531
+ # Corresponds to the JSON property `etag`
1532
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1533
+ # @return [String]
1534
+ attr_accessor :etag
1535
+
1536
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
1537
+ # Requests that specify an invalid value are rejected. Any operation that
1538
+ # affects conditional role bindings must specify version `3`. This requirement
1539
+ # applies to the following operations: * Getting a policy that includes a
1540
+ # conditional role binding * Adding a conditional role binding to a policy *
1541
+ # Changing a conditional role binding in a policy * Removing any role binding,
1542
+ # with or without a condition, from a policy that includes conditions **
1543
+ # Important:** If you use IAM Conditions, you must include the `etag` field
1544
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
1545
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
1546
+ # conditions in the version `3` policy are lost. If a policy does not include
1547
+ # any conditions, operations on that policy may specify any valid version or
1548
+ # leave the field unset. To learn which resources support conditions in their
1549
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
1550
+ # conditions/resource-policies).
1551
+ # Corresponds to the JSON property `version`
1552
+ # @return [Fixnum]
1553
+ attr_accessor :version
1554
+
1555
+ def initialize(**args)
1556
+ update!(**args)
1557
+ end
1558
+
1559
+ # Update properties of this object
1560
+ def update!(**args)
1561
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1562
+ @bindings = args[:bindings] if args.key?(:bindings)
1563
+ @etag = args[:etag] if args.key?(:etag)
1564
+ @version = args[:version] if args.key?(:version)
1565
+ end
1566
+ end
1567
+
1568
+ # Provider indicates the owner who provides the connectors.
1569
+ class Provider
1570
+ include Google::Apis::Core::Hashable
1571
+
1572
+ # Output only. Created time.
1573
+ # Corresponds to the JSON property `createTime`
1574
+ # @return [String]
1575
+ attr_accessor :create_time
1576
+
1577
+ # Output only. Description of the resource.
1578
+ # Corresponds to the JSON property `description`
1579
+ # @return [String]
1580
+ attr_accessor :description
1581
+
1582
+ # Output only. Display name.
1583
+ # Corresponds to the JSON property `displayName`
1584
+ # @return [String]
1585
+ attr_accessor :display_name
1586
+
1587
+ # Output only. Link to documentation page.
1588
+ # Corresponds to the JSON property `documentationUri`
1589
+ # @return [String]
1590
+ attr_accessor :documentation_uri
1591
+
1592
+ # Output only. Link to external page.
1593
+ # Corresponds to the JSON property `externalUri`
1594
+ # @return [String]
1595
+ attr_accessor :external_uri
1596
+
1597
+ # Output only. Resource labels to represent user-provided metadata. Refer to
1598
+ # cloud documentation on labels for more details. https://cloud.google.com/
1599
+ # compute/docs/labeling-resources
1600
+ # Corresponds to the JSON property `labels`
1601
+ # @return [Hash<String,String>]
1602
+ attr_accessor :labels
1603
+
1604
+ # Output only. Resource name of the Provider. Format: projects/`project`/
1605
+ # locations/`location`/providers/`provider`
1606
+ # Corresponds to the JSON property `name`
1607
+ # @return [String]
1608
+ attr_accessor :name
1609
+
1610
+ # Output only. Updated time.
1611
+ # Corresponds to the JSON property `updateTime`
1612
+ # @return [String]
1613
+ attr_accessor :update_time
1614
+
1615
+ # Output only. Cloud storage location of icons etc consumed by UI.
1616
+ # Corresponds to the JSON property `webAssetsLocation`
1617
+ # @return [String]
1618
+ attr_accessor :web_assets_location
1619
+
1620
+ def initialize(**args)
1621
+ update!(**args)
1622
+ end
1623
+
1624
+ # Update properties of this object
1625
+ def update!(**args)
1626
+ @create_time = args[:create_time] if args.key?(:create_time)
1627
+ @description = args[:description] if args.key?(:description)
1628
+ @display_name = args[:display_name] if args.key?(:display_name)
1629
+ @documentation_uri = args[:documentation_uri] if args.key?(:documentation_uri)
1630
+ @external_uri = args[:external_uri] if args.key?(:external_uri)
1631
+ @labels = args[:labels] if args.key?(:labels)
1632
+ @name = args[:name] if args.key?(:name)
1633
+ @update_time = args[:update_time] if args.key?(:update_time)
1634
+ @web_assets_location = args[:web_assets_location] if args.key?(:web_assets_location)
1635
+ end
1636
+ end
1637
+
1638
+ # Resource definition
1639
+ class Resource
1640
+ include Google::Apis::Core::Hashable
1641
+
1642
+ # Template to uniquely represent a GCP resource in a format IAM expects This is
1643
+ # a template that can have references to other values provided in the config
1644
+ # variable template.
1645
+ # Corresponds to the JSON property `pathTemplate`
1646
+ # @return [String]
1647
+ attr_accessor :path_template
1648
+
1649
+ # Different types of resource supported.
1650
+ # Corresponds to the JSON property `type`
1651
+ # @return [String]
1652
+ attr_accessor :type
1653
+
1654
+ def initialize(**args)
1655
+ update!(**args)
1656
+ end
1657
+
1658
+ # Update properties of this object
1659
+ def update!(**args)
1660
+ @path_template = args[:path_template] if args.key?(:path_template)
1661
+ @type = args[:type] if args.key?(:type)
1662
+ end
1663
+ end
1664
+
1665
+ # Metadata of result field.
1666
+ class ResultMetadata
1667
+ include Google::Apis::Core::Hashable
1668
+
1669
+ # The data type of the field.
1670
+ # Corresponds to the JSON property `dataType`
1671
+ # @return [String]
1672
+ attr_accessor :data_type
1673
+
1674
+ # A brief description of the field.
1675
+ # Corresponds to the JSON property `description`
1676
+ # @return [String]
1677
+ attr_accessor :description
1678
+
1679
+ # Name of the result field.
1680
+ # Corresponds to the JSON property `field`
1681
+ # @return [String]
1682
+ attr_accessor :field
1683
+
1684
+ def initialize(**args)
1685
+ update!(**args)
1686
+ end
1687
+
1688
+ # Update properties of this object
1689
+ def update!(**args)
1690
+ @data_type = args[:data_type] if args.key?(:data_type)
1691
+ @description = args[:description] if args.key?(:description)
1692
+ @field = args[:field] if args.key?(:field)
1693
+ end
1694
+ end
1695
+
1696
+ # This configuration defines all the Cloud IAM roles that needs to be granted to
1697
+ # a particular GCP resource for the selected prinicpal like service account.
1698
+ # These configurations will let UI display to customers what IAM roles need to
1699
+ # be granted by them. Or these configurations can be used by the UI to render a '
1700
+ # grant' button to do the same on behalf of the user.
1701
+ class RoleGrant
1702
+ include Google::Apis::Core::Hashable
1703
+
1704
+ # Template that UI can use to provide helper text to customers.
1705
+ # Corresponds to the JSON property `helperTextTemplate`
1706
+ # @return [String]
1707
+ attr_accessor :helper_text_template
1708
+
1709
+ # Prinicipal/Identity for whom the role need to assigned.
1710
+ # Corresponds to the JSON property `principal`
1711
+ # @return [String]
1712
+ attr_accessor :principal
1713
+
1714
+ # Resource definition
1715
+ # Corresponds to the JSON property `resource`
1716
+ # @return [Google::Apis::ConnectorsV1::Resource]
1717
+ attr_accessor :resource
1718
+
1719
+ # List of roles that need to be granted.
1720
+ # Corresponds to the JSON property `roles`
1721
+ # @return [Array<String>]
1722
+ attr_accessor :roles
1723
+
1724
+ def initialize(**args)
1725
+ update!(**args)
1726
+ end
1727
+
1728
+ # Update properties of this object
1729
+ def update!(**args)
1730
+ @helper_text_template = args[:helper_text_template] if args.key?(:helper_text_template)
1731
+ @principal = args[:principal] if args.key?(:principal)
1732
+ @resource = args[:resource] if args.key?(:resource)
1733
+ @roles = args[:roles] if args.key?(:roles)
1734
+ end
1735
+ end
1736
+
1737
+ # Schema of a runtime action.
1738
+ class RuntimeActionSchema
1739
+ include Google::Apis::Core::Hashable
1740
+
1741
+ # Output only. Name of the action.
1742
+ # Corresponds to the JSON property `action`
1743
+ # @return [String]
1744
+ attr_accessor :action
1745
+
1746
+ # Output only. List of input parameter metadata for the action.
1747
+ # Corresponds to the JSON property `inputParameters`
1748
+ # @return [Array<Google::Apis::ConnectorsV1::InputParameter>]
1749
+ attr_accessor :input_parameters
1750
+
1751
+ # Output only. List of result field metadata.
1752
+ # Corresponds to the JSON property `resultMetadata`
1753
+ # @return [Array<Google::Apis::ConnectorsV1::ResultMetadata>]
1754
+ attr_accessor :result_metadata
1755
+
1756
+ def initialize(**args)
1757
+ update!(**args)
1758
+ end
1759
+
1760
+ # Update properties of this object
1761
+ def update!(**args)
1762
+ @action = args[:action] if args.key?(:action)
1763
+ @input_parameters = args[:input_parameters] if args.key?(:input_parameters)
1764
+ @result_metadata = args[:result_metadata] if args.key?(:result_metadata)
1765
+ end
1766
+ end
1767
+
1768
+ # RuntimeConfig is the singleton resource of each location. It includes generic
1769
+ # resource configs consumed by control plane and runtime plane like: pub/sub
1770
+ # topic/subscription resource name, Cloud Storage location storing schema etc.
1771
+ class RuntimeConfig
1772
+ include Google::Apis::Core::Hashable
1773
+
1774
+ # Output only. Pub/Sub subscription for connd to receive message. E.g. projects/`
1775
+ # project-id`/subscriptions/`topic-id`
1776
+ # Corresponds to the JSON property `conndSubscription`
1777
+ # @return [String]
1778
+ attr_accessor :connd_subscription
1779
+
1780
+ # Output only. Pub/Sub topic for connd to send message. E.g. projects/`project-
1781
+ # id`/topics/`topic-id`
1782
+ # Corresponds to the JSON property `conndTopic`
1783
+ # @return [String]
1784
+ attr_accessor :connd_topic
1785
+
1786
+ # Output only. Pub/Sub subscription for control plane to receive message. E.g.
1787
+ # projects/`project-id`/subscriptions/`topic-id`
1788
+ # Corresponds to the JSON property `controlPlaneSubscription`
1789
+ # @return [String]
1790
+ attr_accessor :control_plane_subscription
1791
+
1792
+ # Output only. Pub/Sub topic for control plne to send message. communication. E.
1793
+ # g. projects/`project-id`/topics/`topic-id`
1794
+ # Corresponds to the JSON property `controlPlaneTopic`
1795
+ # @return [String]
1796
+ attr_accessor :control_plane_topic
1797
+
1798
+ # Output only. location_id of the runtime location. E.g. "us-west1".
1799
+ # Corresponds to the JSON property `locationId`
1800
+ # @return [String]
1801
+ attr_accessor :location_id
1802
+
1803
+ # Output only. The endpoint of the connectors runtime ingress.
1804
+ # Corresponds to the JSON property `runtimeEndpoint`
1805
+ # @return [String]
1806
+ attr_accessor :runtime_endpoint
1807
+
1808
+ # Output only. The Cloud Storage bucket that stores connector's schema reports.
1809
+ # Corresponds to the JSON property `schemaGcsBucket`
1810
+ # @return [String]
1811
+ attr_accessor :schema_gcs_bucket
1812
+
1813
+ # Output only. The name of the Service Directory service name. Used for Private
1814
+ # Harpoon to resolve the ILB address. e.g. "projects/cloud-connectors-e2e-
1815
+ # testing/locations/us-central1/namespaces/istio-system/services/istio-
1816
+ # ingressgateway-connectors"
1817
+ # Corresponds to the JSON property `serviceDirectory`
1818
+ # @return [String]
1819
+ attr_accessor :service_directory
1820
+
1821
+ # Output only. The state of the location.
1822
+ # Corresponds to the JSON property `state`
1823
+ # @return [String]
1824
+ attr_accessor :state
1825
+
1826
+ def initialize(**args)
1827
+ update!(**args)
1828
+ end
1829
+
1830
+ # Update properties of this object
1831
+ def update!(**args)
1832
+ @connd_subscription = args[:connd_subscription] if args.key?(:connd_subscription)
1833
+ @connd_topic = args[:connd_topic] if args.key?(:connd_topic)
1834
+ @control_plane_subscription = args[:control_plane_subscription] if args.key?(:control_plane_subscription)
1835
+ @control_plane_topic = args[:control_plane_topic] if args.key?(:control_plane_topic)
1836
+ @location_id = args[:location_id] if args.key?(:location_id)
1837
+ @runtime_endpoint = args[:runtime_endpoint] if args.key?(:runtime_endpoint)
1838
+ @schema_gcs_bucket = args[:schema_gcs_bucket] if args.key?(:schema_gcs_bucket)
1839
+ @service_directory = args[:service_directory] if args.key?(:service_directory)
1840
+ @state = args[:state] if args.key?(:state)
1841
+ end
1842
+ end
1843
+
1844
+ # Schema of a runtime entity.
1845
+ class RuntimeEntitySchema
1846
+ include Google::Apis::Core::Hashable
1847
+
1848
+ # Output only. Name of the entity.
1849
+ # Corresponds to the JSON property `entity`
1850
+ # @return [String]
1851
+ attr_accessor :entity
1852
+
1853
+ # Output only. List of fields in the entity.
1854
+ # Corresponds to the JSON property `fields`
1855
+ # @return [Array<Google::Apis::ConnectorsV1::Field>]
1856
+ attr_accessor :fields
1857
+
1858
+ def initialize(**args)
1859
+ update!(**args)
1860
+ end
1861
+
1862
+ # Update properties of this object
1863
+ def update!(**args)
1864
+ @entity = args[:entity] if args.key?(:entity)
1865
+ @fields = args[:fields] if args.key?(:fields)
1866
+ end
1867
+ end
1868
+
1869
+ # Secret provides a reference to entries in Secret Manager.
1870
+ class Secret
1871
+ include Google::Apis::Core::Hashable
1872
+
1873
+ # The resource name of the secret version in the format, format as: `projects/*/
1874
+ # secrets/*/versions/*`.
1875
+ # Corresponds to the JSON property `secretVersion`
1876
+ # @return [String]
1877
+ attr_accessor :secret_version
1878
+
1879
+ def initialize(**args)
1880
+ update!(**args)
1881
+ end
1882
+
1883
+ # Update properties of this object
1884
+ def update!(**args)
1885
+ @secret_version = args[:secret_version] if args.key?(:secret_version)
1886
+ end
1887
+ end
1888
+
1889
+ # Request message for `SetIamPolicy` method.
1890
+ class SetIamPolicyRequest
1891
+ include Google::Apis::Core::Hashable
1892
+
1893
+ # An Identity and Access Management (IAM) policy, which specifies access
1894
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1895
+ # A `binding` binds one or more `members` to a single `role`. Members can be
1896
+ # user accounts, service accounts, Google groups, and domains (such as G Suite).
1897
+ # A `role` is a named list of permissions; each `role` can be an IAM predefined
1898
+ # role or a user-created custom role. For some types of Google Cloud resources,
1899
+ # a `binding` can also specify a `condition`, which is a logical expression that
1900
+ # allows access to a resource only if the expression evaluates to `true`. A
1901
+ # condition can add constraints based on attributes of the request, the resource,
1902
+ # or both. To learn which resources support conditions in their IAM policies,
1903
+ # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1904
+ # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
1905
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
1906
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
1907
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
1908
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
1909
+ # title": "expirable access", "description": "Does not grant access after Sep
1910
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
1911
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
1912
+ # members: - user:mike@example.com - group:admins@example.com - domain:google.
1913
+ # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
1914
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
1915
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
1916
+ # description: Does not grant access after Sep 2020 expression: request.time <
1917
+ # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
1918
+ # description of IAM and its features, see the [IAM documentation](https://cloud.
1919
+ # google.com/iam/docs/).
1920
+ # Corresponds to the JSON property `policy`
1921
+ # @return [Google::Apis::ConnectorsV1::Policy]
1922
+ attr_accessor :policy
1923
+
1924
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
1925
+ # the fields in the mask will be modified. If no mask is provided, the following
1926
+ # default mask is used: `paths: "bindings, etag"`
1927
+ # Corresponds to the JSON property `updateMask`
1928
+ # @return [String]
1929
+ attr_accessor :update_mask
1930
+
1931
+ def initialize(**args)
1932
+ update!(**args)
1933
+ end
1934
+
1935
+ # Update properties of this object
1936
+ def update!(**args)
1937
+ @policy = args[:policy] if args.key?(:policy)
1938
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1939
+ end
1940
+ end
1941
+
1942
+ # Source to extract the backend from.
1943
+ class Source
1944
+ include Google::Apis::Core::Hashable
1945
+
1946
+ # Field identifier. For example config vaiable name.
1947
+ # Corresponds to the JSON property `fieldId`
1948
+ # @return [String]
1949
+ attr_accessor :field_id
1950
+
1951
+ # Type of the source.
1952
+ # Corresponds to the JSON property `sourceType`
1953
+ # @return [String]
1954
+ attr_accessor :source_type
1955
+
1956
+ def initialize(**args)
1957
+ update!(**args)
1958
+ end
1959
+
1960
+ # Update properties of this object
1961
+ def update!(**args)
1962
+ @field_id = args[:field_id] if args.key?(:field_id)
1963
+ @source_type = args[:source_type] if args.key?(:source_type)
1964
+ end
1965
+ end
1966
+
1967
+ # The `Status` type defines a logical error model that is suitable for different
1968
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1969
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1970
+ # data: error code, error message, and error details. You can find out more
1971
+ # about this error model and how to work with it in the [API Design Guide](https:
1972
+ # //cloud.google.com/apis/design/errors).
1973
+ class Status
1974
+ include Google::Apis::Core::Hashable
1975
+
1976
+ # The status code, which should be an enum value of google.rpc.Code.
1977
+ # Corresponds to the JSON property `code`
1978
+ # @return [Fixnum]
1979
+ attr_accessor :code
1980
+
1981
+ # A list of messages that carry the error details. There is a common set of
1982
+ # message types for APIs to use.
1983
+ # Corresponds to the JSON property `details`
1984
+ # @return [Array<Hash<String,Object>>]
1985
+ attr_accessor :details
1986
+
1987
+ # A developer-facing error message, which should be in English. Any user-facing
1988
+ # error message should be localized and sent in the google.rpc.Status.details
1989
+ # field, or localized by the client.
1990
+ # Corresponds to the JSON property `message`
1991
+ # @return [String]
1992
+ attr_accessor :message
1993
+
1994
+ def initialize(**args)
1995
+ update!(**args)
1996
+ end
1997
+
1998
+ # Update properties of this object
1999
+ def update!(**args)
2000
+ @code = args[:code] if args.key?(:code)
2001
+ @details = args[:details] if args.key?(:details)
2002
+ @message = args[:message] if args.key?(:message)
2003
+ end
2004
+ end
2005
+
2006
+ # Supported runtime features of a connector version. This is passed to the
2007
+ # management layer to add a new connector version by the connector developer.
2008
+ # Details about how this proto is passed to the management layer is covered in
2009
+ # this doc - go/runtime-manifest.
2010
+ class SupportedRuntimeFeatures
2011
+ include Google::Apis::Core::Hashable
2012
+
2013
+ # Specifies if the connector supports action apis like 'executeAction'.
2014
+ # Corresponds to the JSON property `actionApis`
2015
+ # @return [Boolean]
2016
+ attr_accessor :action_apis
2017
+ alias_method :action_apis?, :action_apis
2018
+
2019
+ # Specifies if the connector supports entity apis like 'createEntity'.
2020
+ # Corresponds to the JSON property `entityApis`
2021
+ # @return [Boolean]
2022
+ attr_accessor :entity_apis
2023
+ alias_method :entity_apis?, :entity_apis
2024
+
2025
+ # Specifies if the connector supports 'ExecuteSqlQuery' operation.
2026
+ # Corresponds to the JSON property `sqlQuery`
2027
+ # @return [Boolean]
2028
+ attr_accessor :sql_query
2029
+ alias_method :sql_query?, :sql_query
2030
+
2031
+ def initialize(**args)
2032
+ update!(**args)
2033
+ end
2034
+
2035
+ # Update properties of this object
2036
+ def update!(**args)
2037
+ @action_apis = args[:action_apis] if args.key?(:action_apis)
2038
+ @entity_apis = args[:entity_apis] if args.key?(:entity_apis)
2039
+ @sql_query = args[:sql_query] if args.key?(:sql_query)
2040
+ end
2041
+ end
2042
+
2043
+ # Request message for `TestIamPermissions` method.
2044
+ class TestIamPermissionsRequest
2045
+ include Google::Apis::Core::Hashable
2046
+
2047
+ # The set of permissions to check for the `resource`. Permissions with wildcards
2048
+ # (such as '*' or 'storage.*') are not allowed. For more information see [IAM
2049
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
2050
+ # Corresponds to the JSON property `permissions`
2051
+ # @return [Array<String>]
2052
+ attr_accessor :permissions
2053
+
2054
+ def initialize(**args)
2055
+ update!(**args)
2056
+ end
2057
+
2058
+ # Update properties of this object
2059
+ def update!(**args)
2060
+ @permissions = args[:permissions] if args.key?(:permissions)
2061
+ end
2062
+ end
2063
+
2064
+ # Response message for `TestIamPermissions` method.
2065
+ class TestIamPermissionsResponse
2066
+ include Google::Apis::Core::Hashable
2067
+
2068
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
2069
+ # Corresponds to the JSON property `permissions`
2070
+ # @return [Array<String>]
2071
+ attr_accessor :permissions
2072
+
2073
+ def initialize(**args)
2074
+ update!(**args)
2075
+ end
2076
+
2077
+ # Update properties of this object
2078
+ def update!(**args)
2079
+ @permissions = args[:permissions] if args.key?(:permissions)
2080
+ end
2081
+ end
2082
+
2083
+ # Parameters to support Username and Password Authentication.
2084
+ class UserPassword
2085
+ include Google::Apis::Core::Hashable
2086
+
2087
+ # Secret provides a reference to entries in Secret Manager.
2088
+ # Corresponds to the JSON property `password`
2089
+ # @return [Google::Apis::ConnectorsV1::Secret]
2090
+ attr_accessor :password
2091
+
2092
+ # Username.
2093
+ # Corresponds to the JSON property `username`
2094
+ # @return [String]
2095
+ attr_accessor :username
2096
+
2097
+ def initialize(**args)
2098
+ update!(**args)
2099
+ end
2100
+
2101
+ # Update properties of this object
2102
+ def update!(**args)
2103
+ @password = args[:password] if args.key?(:password)
2104
+ @username = args[:username] if args.key?(:username)
2105
+ end
2106
+ end
2107
+ end
2108
+ end
2109
+ end