google-apis-agentidentity_v1 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1170 @@
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 AgentidentityV1
24
+
25
+ # Message describing AccessSummary object
26
+ class AccessSummary
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Output only. The auth_provider that this access summary is associated with.
30
+ # Corresponds to the JSON property `authProvider`
31
+ # @return [String]
32
+ attr_accessor :auth_provider
33
+
34
+ # Output only. The type of the connector that was used to create this access
35
+ # summary.
36
+ # Corresponds to the JSON property `authProviderType`
37
+ # @return [String]
38
+ attr_accessor :auth_provider_type
39
+
40
+ # Output only. The first time this user has interacted with this workload.
41
+ # Rounded to the previous hour.
42
+ # Corresponds to the JSON property `firstAccessTime`
43
+ # @return [String]
44
+ attr_accessor :first_access_time
45
+
46
+ # Optional. Labels as key value pairs
47
+ # Corresponds to the JSON property `labels`
48
+ # @return [Hash<String,String>]
49
+ attr_accessor :labels
50
+
51
+ # Output only. The most recent time this user has interacted with this workload.
52
+ # Rounded to the previous hour.
53
+ # Corresponds to the JSON property `lastAccessTime`
54
+ # @return [String]
55
+ attr_accessor :last_access_time
56
+
57
+ # Output only. Identifier. Name of the AccessSummary
58
+ # Corresponds to the JSON property `name`
59
+ # @return [String]
60
+ attr_accessor :name
61
+
62
+ # Output only. The time when this access summary is permanently deleted.
63
+ # Corresponds to the JSON property `purgeTime`
64
+ # @return [String]
65
+ attr_accessor :purge_time
66
+
67
+ # Output only. All scopes that have been used by this user with this workload.
68
+ # The number of scopes is limited to 200.
69
+ # Corresponds to the JSON property `scopes`
70
+ # @return [Array<String>]
71
+ attr_accessor :scopes
72
+
73
+ # Output only. The url of the authentication server that was accessed.
74
+ # Corresponds to the JSON property `tokenUrl`
75
+ # @return [String]
76
+ attr_accessor :token_url
77
+
78
+ # Output only. The user_id provided by the workload application for this user.
79
+ # Not verified by Google.
80
+ # Corresponds to the JSON property `userId`
81
+ # @return [String]
82
+ attr_accessor :user_id
83
+
84
+ # Output only. The identity bound to the workload that this user interacted with
85
+ # to produce this AccessSummary. Will typically be an agentic spiffe id
86
+ # Corresponds to the JSON property `workloadId`
87
+ # @return [String]
88
+ attr_accessor :workload_id
89
+
90
+ def initialize(**args)
91
+ update!(**args)
92
+ end
93
+
94
+ # Update properties of this object
95
+ def update!(**args)
96
+ @auth_provider = args[:auth_provider] if args.key?(:auth_provider)
97
+ @auth_provider_type = args[:auth_provider_type] if args.key?(:auth_provider_type)
98
+ @first_access_time = args[:first_access_time] if args.key?(:first_access_time)
99
+ @labels = args[:labels] if args.key?(:labels)
100
+ @last_access_time = args[:last_access_time] if args.key?(:last_access_time)
101
+ @name = args[:name] if args.key?(:name)
102
+ @purge_time = args[:purge_time] if args.key?(:purge_time)
103
+ @scopes = args[:scopes] if args.key?(:scopes)
104
+ @token_url = args[:token_url] if args.key?(:token_url)
105
+ @user_id = args[:user_id] if args.key?(:user_id)
106
+ @workload_id = args[:workload_id] if args.key?(:workload_id)
107
+ end
108
+ end
109
+
110
+ # Message describing ApiKeyParams object.
111
+ class ApiKeyParams
112
+ include Google::Apis::Core::Hashable
113
+
114
+ # Optional. Input only. The API key for this auth_provider.
115
+ # Corresponds to the JSON property `apiKey`
116
+ # @return [String]
117
+ attr_accessor :api_key
118
+
119
+ def initialize(**args)
120
+ update!(**args)
121
+ end
122
+
123
+ # Update properties of this object
124
+ def update!(**args)
125
+ @api_key = args[:api_key] if args.key?(:api_key)
126
+ end
127
+ end
128
+
129
+ # Specifies the audit configuration for a service. The configuration determines
130
+ # which permission types are logged, and what identities, if any, are exempted
131
+ # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
132
+ # are AuditConfigs for both `allServices` and a specific service, the union of
133
+ # the two AuditConfigs is used for that service: the log_types specified in each
134
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
135
+ # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
136
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
137
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
138
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
139
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
140
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
141
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
142
+ # exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com`
143
+ # from DATA_WRITE logging.
144
+ class AuditConfig
145
+ include Google::Apis::Core::Hashable
146
+
147
+ # The configuration for logging of each type of permission.
148
+ # Corresponds to the JSON property `auditLogConfigs`
149
+ # @return [Array<Google::Apis::AgentidentityV1::AuditLogConfig>]
150
+ attr_accessor :audit_log_configs
151
+
152
+ # Specifies a service that will be enabled for audit logging. For example, `
153
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
154
+ # value that covers all services.
155
+ # Corresponds to the JSON property `service`
156
+ # @return [String]
157
+ attr_accessor :service
158
+
159
+ def initialize(**args)
160
+ update!(**args)
161
+ end
162
+
163
+ # Update properties of this object
164
+ def update!(**args)
165
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
166
+ @service = args[:service] if args.key?(:service)
167
+ end
168
+ end
169
+
170
+ # Provides the configuration for logging a type of permissions. Example: ` "
171
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
172
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
173
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
174
+ # DATA_READ logging.
175
+ class AuditLogConfig
176
+ include Google::Apis::Core::Hashable
177
+
178
+ # Specifies the identities that do not cause logging for this type of permission.
179
+ # Follows the same format of Binding.members.
180
+ # Corresponds to the JSON property `exemptedMembers`
181
+ # @return [Array<String>]
182
+ attr_accessor :exempted_members
183
+
184
+ # The log type that this config enables.
185
+ # Corresponds to the JSON property `logType`
186
+ # @return [String]
187
+ attr_accessor :log_type
188
+
189
+ def initialize(**args)
190
+ update!(**args)
191
+ end
192
+
193
+ # Update properties of this object
194
+ def update!(**args)
195
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
196
+ @log_type = args[:log_type] if args.key?(:log_type)
197
+ end
198
+ end
199
+
200
+ # Message describing AuthProvider object
201
+ class AuthProvider
202
+ include Google::Apis::Core::Hashable
203
+
204
+ # Optional. List of scopes that are allowed to be requested for this
205
+ # auth_provider. If this list is non-empty, only scopes within this list may be
206
+ # requested. If this list is empty, all scopes may be requested. Scopes
207
+ # appearing in `blocked_scopes` are disallowed even if they appear in `
208
+ # allowed_scopes`. The number of allowed scopes is limited to 200.
209
+ # Corresponds to the JSON property `allowedScopes`
210
+ # @return [Array<String>]
211
+ attr_accessor :allowed_scopes
212
+
213
+ # AuthProvider type specific parameters. Required when creating an auth_provider.
214
+ # Corresponds to the JSON property `authProviderTypeParams`
215
+ # @return [Google::Apis::AgentidentityV1::AuthProviderTypeParams]
216
+ attr_accessor :auth_provider_type_params
217
+
218
+ # Optional. List of scopes that are blocked from being requested for this
219
+ # auth_provider. If a scope appears in this list, it will not be requested, even
220
+ # if it also appears in `allowed_scopes`. `blocked_scopes` takes precedence over
221
+ # `allowed_scopes`. The number of blocked scopes is limited to 200.
222
+ # Corresponds to the JSON property `blockedScopes`
223
+ # @return [Array<String>]
224
+ attr_accessor :blocked_scopes
225
+
226
+ # Output only. [Output only] Create time stamp
227
+ # Corresponds to the JSON property `createTime`
228
+ # @return [String]
229
+ attr_accessor :create_time
230
+
231
+ # Output only. This is set to true if the auth_provider is deleted.
232
+ # Corresponds to the JSON property `deleted`
233
+ # @return [Boolean]
234
+ attr_accessor :deleted
235
+ alias_method :deleted?, :deleted
236
+
237
+ # Optional. Description of the resource. Must be less than 256 characters.
238
+ # Corresponds to the JSON property `description`
239
+ # @return [String]
240
+ attr_accessor :description
241
+
242
+ # Output only. The time when the auth_provider will expire.
243
+ # Corresponds to the JSON property `expireTime`
244
+ # @return [String]
245
+ attr_accessor :expire_time
246
+
247
+ # Optional. Labels as key value pairs
248
+ # Corresponds to the JSON property `labels`
249
+ # @return [Hash<String,String>]
250
+ attr_accessor :labels
251
+
252
+ # Identifier. The full resource name of the auth_provider. Format: projects/`
253
+ # project`/locations/`location`/authProviders/`auth_provider`
254
+ # Corresponds to the JSON property `name`
255
+ # @return [String]
256
+ attr_accessor :name
257
+
258
+ # Output only. The state of the auth_provider.
259
+ # Corresponds to the JSON property `state`
260
+ # @return [String]
261
+ attr_accessor :state
262
+
263
+ # Output only. [Output only] Update time stamp
264
+ # Corresponds to the JSON property `updateTime`
265
+ # @return [String]
266
+ attr_accessor :update_time
267
+
268
+ # Optional. Input only. Represents the workload identity in IAM `principal://`
269
+ # format of the agent(s) that will use this AuthProvider. Example: `principal://
270
+ # agents.global.org-$`ORG_ID`.system.id.goog/resources/aiplatform/projects/`
271
+ # PROJECT_ID`/locations/`LOCATIONS`/reasoningEngines/`ID``
272
+ # Corresponds to the JSON property `workloadIds`
273
+ # @return [Array<String>]
274
+ attr_accessor :workload_ids
275
+
276
+ def initialize(**args)
277
+ update!(**args)
278
+ end
279
+
280
+ # Update properties of this object
281
+ def update!(**args)
282
+ @allowed_scopes = args[:allowed_scopes] if args.key?(:allowed_scopes)
283
+ @auth_provider_type_params = args[:auth_provider_type_params] if args.key?(:auth_provider_type_params)
284
+ @blocked_scopes = args[:blocked_scopes] if args.key?(:blocked_scopes)
285
+ @create_time = args[:create_time] if args.key?(:create_time)
286
+ @deleted = args[:deleted] if args.key?(:deleted)
287
+ @description = args[:description] if args.key?(:description)
288
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
289
+ @labels = args[:labels] if args.key?(:labels)
290
+ @name = args[:name] if args.key?(:name)
291
+ @state = args[:state] if args.key?(:state)
292
+ @update_time = args[:update_time] if args.key?(:update_time)
293
+ @workload_ids = args[:workload_ids] if args.key?(:workload_ids)
294
+ end
295
+ end
296
+
297
+ # AuthProvider type specific parameters. Required when creating an auth_provider.
298
+ class AuthProviderTypeParams
299
+ include Google::Apis::Core::Hashable
300
+
301
+ # Message describing ApiKeyParams object.
302
+ # Corresponds to the JSON property `apiKey`
303
+ # @return [Google::Apis::AgentidentityV1::ApiKeyParams]
304
+ attr_accessor :api_key
305
+
306
+ # Message describing GeminiEnterpriseAuthProviderParams object.
307
+ # Corresponds to the JSON property `geAuthProvider`
308
+ # @return [Google::Apis::AgentidentityV1::GeminiEnterpriseAuthProviderParams]
309
+ attr_accessor :ge_auth_provider
310
+
311
+ # Message describing ThreeLeggedOAuth object.
312
+ # Corresponds to the JSON property `threeLeggedOauth`
313
+ # @return [Google::Apis::AgentidentityV1::ThreeLeggedOAuth]
314
+ attr_accessor :three_legged_oauth
315
+
316
+ # Message describing TwoLeggedOAuth object.
317
+ # Corresponds to the JSON property `twoLeggedOauth`
318
+ # @return [Google::Apis::AgentidentityV1::TwoLeggedOAuth]
319
+ attr_accessor :two_legged_oauth
320
+
321
+ def initialize(**args)
322
+ update!(**args)
323
+ end
324
+
325
+ # Update properties of this object
326
+ def update!(**args)
327
+ @api_key = args[:api_key] if args.key?(:api_key)
328
+ @ge_auth_provider = args[:ge_auth_provider] if args.key?(:ge_auth_provider)
329
+ @three_legged_oauth = args[:three_legged_oauth] if args.key?(:three_legged_oauth)
330
+ @two_legged_oauth = args[:two_legged_oauth] if args.key?(:two_legged_oauth)
331
+ end
332
+ end
333
+
334
+ # Message describing Authorization object
335
+ class Authorization
336
+ include Google::Apis::Core::Hashable
337
+
338
+ # Output only. The client_user_id provided by the client application for their
339
+ # end user. Not verified by Google.
340
+ # Corresponds to the JSON property `clientUserId`
341
+ # @return [String]
342
+ attr_accessor :client_user_id
343
+
344
+ # Output only. [Output only] Create time stamp
345
+ # Corresponds to the JSON property `createTime`
346
+ # @return [String]
347
+ attr_accessor :create_time
348
+
349
+ # Identifier. name of resource
350
+ # Corresponds to the JSON property `name`
351
+ # @return [String]
352
+ attr_accessor :name
353
+
354
+ # Output only. The scopes actually granted by the end user during the consent
355
+ # flow.
356
+ # Corresponds to the JSON property `scopes`
357
+ # @return [Array<String>]
358
+ attr_accessor :scopes
359
+
360
+ # Output only. The state of the authorization.
361
+ # Corresponds to the JSON property `state`
362
+ # @return [String]
363
+ attr_accessor :state
364
+
365
+ # Output only. [Output only] Update time stamp
366
+ # Corresponds to the JSON property `updateTime`
367
+ # @return [String]
368
+ attr_accessor :update_time
369
+
370
+ def initialize(**args)
371
+ update!(**args)
372
+ end
373
+
374
+ # Update properties of this object
375
+ def update!(**args)
376
+ @client_user_id = args[:client_user_id] if args.key?(:client_user_id)
377
+ @create_time = args[:create_time] if args.key?(:create_time)
378
+ @name = args[:name] if args.key?(:name)
379
+ @scopes = args[:scopes] if args.key?(:scopes)
380
+ @state = args[:state] if args.key?(:state)
381
+ @update_time = args[:update_time] if args.key?(:update_time)
382
+ end
383
+ end
384
+
385
+ # Associates `members`, or principals, with a `role`.
386
+ class Binding
387
+ include Google::Apis::Core::Hashable
388
+
389
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
390
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
391
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
392
+ # "Summary size limit" description: "Determines if a summary is less than 100
393
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
394
+ # Requestor is owner" description: "Determines if requestor is the document
395
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
396
+ # Logic): title: "Public documents" description: "Determine whether the document
397
+ # should be publicly visible" expression: "document.type != 'private' &&
398
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
399
+ # string" description: "Create a notification string with a timestamp."
400
+ # expression: "'New message received at ' + string(document.create_time)" The
401
+ # exact variables and functions that may be referenced within an expression are
402
+ # determined by the service that evaluates it. See the service documentation for
403
+ # additional information.
404
+ # Corresponds to the JSON property `condition`
405
+ # @return [Google::Apis::AgentidentityV1::Expr]
406
+ attr_accessor :condition
407
+
408
+ # Specifies the principals requesting access for a Google Cloud resource. `
409
+ # members` can have the following values: * `allUsers`: A special identifier
410
+ # that represents anyone who is on the internet; with or without a Google
411
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
412
+ # anyone who is authenticated with a Google account or a service account. Does
413
+ # not include identities that come from external identity providers (IdPs)
414
+ # through identity federation. * `user:`emailid``: An email address that
415
+ # represents a specific Google account. For example, `alice@example.com` . * `
416
+ # serviceAccount:`emailid``: An email address that represents a Google service
417
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`. * `
418
+ # serviceAccount:`projectid`.svc.id.goog[`namespace`/`kubernetes-sa`]`: An
419
+ # identifier for a [Kubernetes service account](https://cloud.google.com/
420
+ # kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-
421
+ # project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:`emailid``: An
422
+ # email address that represents a Google group. For example, `admins@example.com`
423
+ # . * `domain:`domain``: The G Suite domain (primary) that represents all the
424
+ # users of that domain. For example, `google.com` or `example.com`. * `principal:
425
+ # //iam.googleapis.com/locations/global/workforcePools/`pool_id`/subject/`
426
+ # subject_attribute_value``: A single identity in a workforce identity pool. * `
427
+ # principalSet://iam.googleapis.com/locations/global/workforcePools/`pool_id`/
428
+ # group/`group_id``: All workforce identities in a group. * `principalSet://iam.
429
+ # googleapis.com/locations/global/workforcePools/`pool_id`/attribute.`
430
+ # attribute_name`/`attribute_value``: All workforce identities with a specific
431
+ # attribute value. * `principalSet://iam.googleapis.com/locations/global/
432
+ # workforcePools/`pool_id`/*`: All identities in a workforce identity pool. * `
433
+ # principal://iam.googleapis.com/projects/`project_number`/locations/global/
434
+ # workloadIdentityPools/`pool_id`/subject/`subject_attribute_value``: A single
435
+ # identity in a workload identity pool. * `principalSet://iam.googleapis.com/
436
+ # projects/`project_number`/locations/global/workloadIdentityPools/`pool_id`/
437
+ # group/`group_id``: A workload identity pool group. * `principalSet://iam.
438
+ # googleapis.com/projects/`project_number`/locations/global/
439
+ # workloadIdentityPools/`pool_id`/attribute.`attribute_name`/`attribute_value``:
440
+ # All identities in a workload identity pool with a certain attribute. * `
441
+ # principalSet://iam.googleapis.com/projects/`project_number`/locations/global/
442
+ # workloadIdentityPools/`pool_id`/*`: All identities in a workload identity pool.
443
+ # * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
444
+ # identifier) representing a user that has been recently deleted. For example, `
445
+ # alice@example.com?uid=123456789012345678901`. If the user is recovered, this
446
+ # value reverts to `user:`emailid`` and the recovered user retains the role in
447
+ # the binding. * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email
448
+ # address (plus unique identifier) representing a service account that has been
449
+ # recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=
450
+ # 123456789012345678901`. If the service account is undeleted, this value
451
+ # reverts to `serviceAccount:`emailid`` and the undeleted service account
452
+ # retains the role in the binding. * `deleted:group:`emailid`?uid=`uniqueid``:
453
+ # An email address (plus unique identifier) representing a Google group that has
454
+ # been recently deleted. For example, `admins@example.com?uid=
455
+ # 123456789012345678901`. If the group is recovered, this value reverts to `
456
+ # group:`emailid`` and the recovered group retains the role in the binding. * `
457
+ # deleted:principal://iam.googleapis.com/locations/global/workforcePools/`
458
+ # pool_id`/subject/`subject_attribute_value``: Deleted single identity in a
459
+ # workforce identity pool. For example, `deleted:principal://iam.googleapis.com/
460
+ # locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.
461
+ # Corresponds to the JSON property `members`
462
+ # @return [Array<String>]
463
+ attr_accessor :members
464
+
465
+ # Role that is assigned to the list of `members`, or principals. For example, `
466
+ # roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM
467
+ # roles and permissions, see the [IAM documentation](https://cloud.google.com/
468
+ # iam/docs/roles-overview). For a list of the available pre-defined roles, see [
469
+ # here](https://cloud.google.com/iam/docs/understanding-roles).
470
+ # Corresponds to the JSON property `role`
471
+ # @return [String]
472
+ attr_accessor :role
473
+
474
+ def initialize(**args)
475
+ update!(**args)
476
+ end
477
+
478
+ # Update properties of this object
479
+ def update!(**args)
480
+ @condition = args[:condition] if args.key?(:condition)
481
+ @members = args[:members] if args.key?(:members)
482
+ @role = args[:role] if args.key?(:role)
483
+ end
484
+ end
485
+
486
+ # Message for disabling an AuthProvider
487
+ class DisableAuthProviderRequest
488
+ include Google::Apis::Core::Hashable
489
+
490
+ # Optional. An optional request ID to identify requests. Specify a unique
491
+ # request ID so that if you must retry your request, the server will know to
492
+ # ignore the request if it has already been completed. The server will guarantee
493
+ # that for at least 60 minutes after the first request. The request ID must be a
494
+ # valid UUID with the exception that zero UUID is not supported (00000000-0000-
495
+ # 0000-0000-000000000000).
496
+ # Corresponds to the JSON property `requestId`
497
+ # @return [String]
498
+ attr_accessor :request_id
499
+
500
+ def initialize(**args)
501
+ update!(**args)
502
+ end
503
+
504
+ # Update properties of this object
505
+ def update!(**args)
506
+ @request_id = args[:request_id] if args.key?(:request_id)
507
+ end
508
+ end
509
+
510
+ # A generic empty message that you can re-use to avoid defining duplicated empty
511
+ # messages in your APIs. A typical example is to use it as the request or the
512
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
513
+ # protobuf.Empty) returns (google.protobuf.Empty); `
514
+ class Empty
515
+ include Google::Apis::Core::Hashable
516
+
517
+ def initialize(**args)
518
+ update!(**args)
519
+ end
520
+
521
+ # Update properties of this object
522
+ def update!(**args)
523
+ end
524
+ end
525
+
526
+ # Message for enabling an AuthProvider
527
+ class EnableAuthProviderRequest
528
+ include Google::Apis::Core::Hashable
529
+
530
+ # Optional. An optional request ID to identify requests. Specify a unique
531
+ # request ID so that if you must retry your request, the server will know to
532
+ # ignore the request if it has already been completed. The server will guarantee
533
+ # that for at least 60 minutes after the first request. The request ID must be a
534
+ # valid UUID with the exception that zero UUID is not supported (00000000-0000-
535
+ # 0000-0000-000000000000).
536
+ # Corresponds to the JSON property `requestId`
537
+ # @return [String]
538
+ attr_accessor :request_id
539
+
540
+ def initialize(**args)
541
+ update!(**args)
542
+ end
543
+
544
+ # Update properties of this object
545
+ def update!(**args)
546
+ @request_id = args[:request_id] if args.key?(:request_id)
547
+ end
548
+ end
549
+
550
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
551
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
552
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
553
+ # "Summary size limit" description: "Determines if a summary is less than 100
554
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
555
+ # Requestor is owner" description: "Determines if requestor is the document
556
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
557
+ # Logic): title: "Public documents" description: "Determine whether the document
558
+ # should be publicly visible" expression: "document.type != 'private' &&
559
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
560
+ # string" description: "Create a notification string with a timestamp."
561
+ # expression: "'New message received at ' + string(document.create_time)" The
562
+ # exact variables and functions that may be referenced within an expression are
563
+ # determined by the service that evaluates it. See the service documentation for
564
+ # additional information.
565
+ class Expr
566
+ include Google::Apis::Core::Hashable
567
+
568
+ # Optional. Description of the expression. This is a longer text which describes
569
+ # the expression, e.g. when hovered over it in a UI.
570
+ # Corresponds to the JSON property `description`
571
+ # @return [String]
572
+ attr_accessor :description
573
+
574
+ # Textual representation of an expression in Common Expression Language syntax.
575
+ # Corresponds to the JSON property `expression`
576
+ # @return [String]
577
+ attr_accessor :expression
578
+
579
+ # Optional. String indicating the location of the expression for error reporting,
580
+ # e.g. a file name and a position in the file.
581
+ # Corresponds to the JSON property `location`
582
+ # @return [String]
583
+ attr_accessor :location
584
+
585
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
586
+ # This can be used e.g. in UIs which allow to enter the expression.
587
+ # Corresponds to the JSON property `title`
588
+ # @return [String]
589
+ attr_accessor :title
590
+
591
+ def initialize(**args)
592
+ update!(**args)
593
+ end
594
+
595
+ # Update properties of this object
596
+ def update!(**args)
597
+ @description = args[:description] if args.key?(:description)
598
+ @expression = args[:expression] if args.key?(:expression)
599
+ @location = args[:location] if args.key?(:location)
600
+ @title = args[:title] if args.key?(:title)
601
+ end
602
+ end
603
+
604
+ # Message describing GeminiEnterpriseAuthProviderParams object.
605
+ class GeminiEnterpriseAuthProviderParams
606
+ include Google::Apis::Core::Hashable
607
+
608
+ def initialize(**args)
609
+ update!(**args)
610
+ end
611
+
612
+ # Update properties of this object
613
+ def update!(**args)
614
+ end
615
+ end
616
+
617
+ # Message for response to listing AccessSummaries
618
+ class ListAccessSummariesResponse
619
+ include Google::Apis::Core::Hashable
620
+
621
+ # The list of AccessSummary
622
+ # Corresponds to the JSON property `accessSummaries`
623
+ # @return [Array<Google::Apis::AgentidentityV1::AccessSummary>]
624
+ attr_accessor :access_summaries
625
+
626
+ # A token identifying a page of results the server should return.
627
+ # Corresponds to the JSON property `nextPageToken`
628
+ # @return [String]
629
+ attr_accessor :next_page_token
630
+
631
+ # Unordered list. Locations that could not be reached.
632
+ # Corresponds to the JSON property `unreachable`
633
+ # @return [Array<String>]
634
+ attr_accessor :unreachable
635
+
636
+ def initialize(**args)
637
+ update!(**args)
638
+ end
639
+
640
+ # Update properties of this object
641
+ def update!(**args)
642
+ @access_summaries = args[:access_summaries] if args.key?(:access_summaries)
643
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
644
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
645
+ end
646
+ end
647
+
648
+ # Message for response to listing AuthProviders
649
+ class ListAuthProvidersResponse
650
+ include Google::Apis::Core::Hashable
651
+
652
+ # The list of AuthProvider
653
+ # Corresponds to the JSON property `authProviders`
654
+ # @return [Array<Google::Apis::AgentidentityV1::AuthProvider>]
655
+ attr_accessor :auth_providers
656
+
657
+ # A token identifying a page of results the server should return.
658
+ # Corresponds to the JSON property `nextPageToken`
659
+ # @return [String]
660
+ attr_accessor :next_page_token
661
+
662
+ # Unordered list. Locations that could not be reached.
663
+ # Corresponds to the JSON property `unreachable`
664
+ # @return [Array<String>]
665
+ attr_accessor :unreachable
666
+
667
+ def initialize(**args)
668
+ update!(**args)
669
+ end
670
+
671
+ # Update properties of this object
672
+ def update!(**args)
673
+ @auth_providers = args[:auth_providers] if args.key?(:auth_providers)
674
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
675
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
676
+ end
677
+ end
678
+
679
+ # Message for response to listing Authorizations
680
+ class ListAuthorizationsResponse
681
+ include Google::Apis::Core::Hashable
682
+
683
+ # The list of Authorization
684
+ # Corresponds to the JSON property `authorizations`
685
+ # @return [Array<Google::Apis::AgentidentityV1::Authorization>]
686
+ attr_accessor :authorizations
687
+
688
+ # A token identifying a page of results the server should return.
689
+ # Corresponds to the JSON property `nextPageToken`
690
+ # @return [String]
691
+ attr_accessor :next_page_token
692
+
693
+ # Unordered list. Locations that could not be reached.
694
+ # Corresponds to the JSON property `unreachable`
695
+ # @return [Array<String>]
696
+ attr_accessor :unreachable
697
+
698
+ def initialize(**args)
699
+ update!(**args)
700
+ end
701
+
702
+ # Update properties of this object
703
+ def update!(**args)
704
+ @authorizations = args[:authorizations] if args.key?(:authorizations)
705
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
706
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
707
+ end
708
+ end
709
+
710
+ # The response message for Locations.ListLocations.
711
+ class ListLocationsResponse
712
+ include Google::Apis::Core::Hashable
713
+
714
+ # A list of locations that matches the specified filter in the request.
715
+ # Corresponds to the JSON property `locations`
716
+ # @return [Array<Google::Apis::AgentidentityV1::Location>]
717
+ attr_accessor :locations
718
+
719
+ # The standard List next-page token.
720
+ # Corresponds to the JSON property `nextPageToken`
721
+ # @return [String]
722
+ attr_accessor :next_page_token
723
+
724
+ def initialize(**args)
725
+ update!(**args)
726
+ end
727
+
728
+ # Update properties of this object
729
+ def update!(**args)
730
+ @locations = args[:locations] if args.key?(:locations)
731
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
732
+ end
733
+ end
734
+
735
+ # A resource that represents a Google Cloud location.
736
+ class Location
737
+ include Google::Apis::Core::Hashable
738
+
739
+ # The friendly name for this location, typically a nearby city name. For example,
740
+ # "Tokyo".
741
+ # Corresponds to the JSON property `displayName`
742
+ # @return [String]
743
+ attr_accessor :display_name
744
+
745
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
746
+ # region": "us-east1"`
747
+ # Corresponds to the JSON property `labels`
748
+ # @return [Hash<String,String>]
749
+ attr_accessor :labels
750
+
751
+ # The canonical id for this location. For example: `"us-east1"`.
752
+ # Corresponds to the JSON property `locationId`
753
+ # @return [String]
754
+ attr_accessor :location_id
755
+
756
+ # Service-specific metadata. For example the available capacity at the given
757
+ # location.
758
+ # Corresponds to the JSON property `metadata`
759
+ # @return [Hash<String,Object>]
760
+ attr_accessor :metadata
761
+
762
+ # Resource name for the location, which may vary between implementations. For
763
+ # example: `"projects/example-project/locations/us-east1"`
764
+ # Corresponds to the JSON property `name`
765
+ # @return [String]
766
+ attr_accessor :name
767
+
768
+ def initialize(**args)
769
+ update!(**args)
770
+ end
771
+
772
+ # Update properties of this object
773
+ def update!(**args)
774
+ @display_name = args[:display_name] if args.key?(:display_name)
775
+ @labels = args[:labels] if args.key?(:labels)
776
+ @location_id = args[:location_id] if args.key?(:location_id)
777
+ @metadata = args[:metadata] if args.key?(:metadata)
778
+ @name = args[:name] if args.key?(:name)
779
+ end
780
+ end
781
+
782
+ # An Identity and Access Management (IAM) policy, which specifies access
783
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
784
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
785
+ # Principals can be user accounts, service accounts, Google groups, and domains (
786
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
787
+ # an IAM predefined role or a user-created custom role. For some types of Google
788
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
789
+ # logical expression that allows access to a resource only if the expression
790
+ # evaluates to `true`. A condition can add constraints based on attributes of
791
+ # the request, the resource, or both. To learn which resources support
792
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
793
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
794
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
795
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
796
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
797
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
798
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
799
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
800
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
801
+ # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
802
+ # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
803
+ # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
804
+ # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
805
+ # title: expirable access description: Does not grant access after Sep 2020
806
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
807
+ # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
808
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
809
+ class Policy
810
+ include Google::Apis::Core::Hashable
811
+
812
+ # Specifies cloud audit logging configuration for this policy.
813
+ # Corresponds to the JSON property `auditConfigs`
814
+ # @return [Array<Google::Apis::AgentidentityV1::AuditConfig>]
815
+ attr_accessor :audit_configs
816
+
817
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
818
+ # specify a `condition` that determines how and when the `bindings` are applied.
819
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
820
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
821
+ # can be Google groups. Each occurrence of a principal counts towards these
822
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
823
+ # example.com`, and not to any other principal, then you can add another 1,450
824
+ # principals to the `bindings` in the `Policy`.
825
+ # Corresponds to the JSON property `bindings`
826
+ # @return [Array<Google::Apis::AgentidentityV1::Binding>]
827
+ attr_accessor :bindings
828
+
829
+ # `etag` is used for optimistic concurrency control as a way to help prevent
830
+ # simultaneous updates of a policy from overwriting each other. It is strongly
831
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
832
+ # to perform policy updates in order to avoid race conditions: An `etag` is
833
+ # returned in the response to `getIamPolicy`, and systems are expected to put
834
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
835
+ # applied to the same version of the policy. **Important:** If you use IAM
836
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
837
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
838
+ # with a version `1` policy, and all of the conditions in the version `3` policy
839
+ # are lost.
840
+ # Corresponds to the JSON property `etag`
841
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
842
+ # @return [String]
843
+ attr_accessor :etag
844
+
845
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
846
+ # Requests that specify an invalid value are rejected. Any operation that
847
+ # affects conditional role bindings must specify version `3`. This requirement
848
+ # applies to the following operations: * Getting a policy that includes a
849
+ # conditional role binding * Adding a conditional role binding to a policy *
850
+ # Changing a conditional role binding in a policy * Removing any role binding,
851
+ # with or without a condition, from a policy that includes conditions **
852
+ # Important:** If you use IAM Conditions, you must include the `etag` field
853
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
854
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
855
+ # conditions in the version `3` policy are lost. If a policy does not include
856
+ # any conditions, operations on that policy may specify any valid version or
857
+ # leave the field unset. To learn which resources support conditions in their
858
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
859
+ # conditions/resource-policies).
860
+ # Corresponds to the JSON property `version`
861
+ # @return [Fixnum]
862
+ attr_accessor :version
863
+
864
+ def initialize(**args)
865
+ update!(**args)
866
+ end
867
+
868
+ # Update properties of this object
869
+ def update!(**args)
870
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
871
+ @bindings = args[:bindings] if args.key?(:bindings)
872
+ @etag = args[:etag] if args.key?(:etag)
873
+ @version = args[:version] if args.key?(:version)
874
+ end
875
+ end
876
+
877
+ # Response message for QueryAuthProviders.
878
+ class QueryAuthProvidersResponse
879
+ include Google::Apis::Core::Hashable
880
+
881
+ # The unique list of auth_provider resource names used by the workload.
882
+ # Corresponds to the JSON property `authProviderNames`
883
+ # @return [Array<String>]
884
+ attr_accessor :auth_provider_names
885
+
886
+ # A token identifying a page of results the server should return. If this field
887
+ # is omitted, there are no subsequent pages.
888
+ # Corresponds to the JSON property `nextPageToken`
889
+ # @return [String]
890
+ attr_accessor :next_page_token
891
+
892
+ def initialize(**args)
893
+ update!(**args)
894
+ end
895
+
896
+ # Update properties of this object
897
+ def update!(**args)
898
+ @auth_provider_names = args[:auth_provider_names] if args.key?(:auth_provider_names)
899
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
900
+ end
901
+ end
902
+
903
+ # Response message for QueryWorkloads.
904
+ class QueryWorkloadsResponse
905
+ include Google::Apis::Core::Hashable
906
+
907
+ # A token to retrieve the next page of results.
908
+ # Corresponds to the JSON property `nextPageToken`
909
+ # @return [String]
910
+ attr_accessor :next_page_token
911
+
912
+ # The unique list of workload identifiers (agents) that used the auth_provider.
913
+ # Corresponds to the JSON property `workloadIds`
914
+ # @return [Array<String>]
915
+ attr_accessor :workload_ids
916
+
917
+ def initialize(**args)
918
+ update!(**args)
919
+ end
920
+
921
+ # Update properties of this object
922
+ def update!(**args)
923
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
924
+ @workload_ids = args[:workload_ids] if args.key?(:workload_ids)
925
+ end
926
+ end
927
+
928
+ # Request message for RevokeAuthorization.
929
+ class RevokeAuthorizationRequest
930
+ include Google::Apis::Core::Hashable
931
+
932
+ # Required. The identity of the user to revoke authorization for.
933
+ # Corresponds to the JSON property `userId`
934
+ # @return [String]
935
+ attr_accessor :user_id
936
+
937
+ def initialize(**args)
938
+ update!(**args)
939
+ end
940
+
941
+ # Update properties of this object
942
+ def update!(**args)
943
+ @user_id = args[:user_id] if args.key?(:user_id)
944
+ end
945
+ end
946
+
947
+ # Response message for RevokeAuthorization.
948
+ class RevokeAuthorizationResponse
949
+ include Google::Apis::Core::Hashable
950
+
951
+ def initialize(**args)
952
+ update!(**args)
953
+ end
954
+
955
+ # Update properties of this object
956
+ def update!(**args)
957
+ end
958
+ end
959
+
960
+ # Request message for `SetIamPolicy` method.
961
+ class SetIamPolicyRequest
962
+ include Google::Apis::Core::Hashable
963
+
964
+ # An Identity and Access Management (IAM) policy, which specifies access
965
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
966
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
967
+ # Principals can be user accounts, service accounts, Google groups, and domains (
968
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
969
+ # an IAM predefined role or a user-created custom role. For some types of Google
970
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
971
+ # logical expression that allows access to a resource only if the expression
972
+ # evaluates to `true`. A condition can add constraints based on attributes of
973
+ # the request, the resource, or both. To learn which resources support
974
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
975
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
976
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
977
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
978
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
979
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
980
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
981
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
982
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
983
+ # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
984
+ # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
985
+ # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
986
+ # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
987
+ # title: expirable access description: Does not grant access after Sep 2020
988
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
989
+ # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
990
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
991
+ # Corresponds to the JSON property `policy`
992
+ # @return [Google::Apis::AgentidentityV1::Policy]
993
+ attr_accessor :policy
994
+
995
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
996
+ # the fields in the mask will be modified. If no mask is provided, the following
997
+ # default mask is used: `paths: "bindings, etag"`
998
+ # Corresponds to the JSON property `updateMask`
999
+ # @return [String]
1000
+ attr_accessor :update_mask
1001
+
1002
+ def initialize(**args)
1003
+ update!(**args)
1004
+ end
1005
+
1006
+ # Update properties of this object
1007
+ def update!(**args)
1008
+ @policy = args[:policy] if args.key?(:policy)
1009
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1010
+ end
1011
+ end
1012
+
1013
+ # Request message for `TestIamPermissions` method.
1014
+ class TestIamPermissionsRequest
1015
+ include Google::Apis::Core::Hashable
1016
+
1017
+ # The set of permissions to check for the `resource`. Permissions with wildcards
1018
+ # (such as `*` or `storage.*`) are not allowed. For more information see [IAM
1019
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
1020
+ # Corresponds to the JSON property `permissions`
1021
+ # @return [Array<String>]
1022
+ attr_accessor :permissions
1023
+
1024
+ def initialize(**args)
1025
+ update!(**args)
1026
+ end
1027
+
1028
+ # Update properties of this object
1029
+ def update!(**args)
1030
+ @permissions = args[:permissions] if args.key?(:permissions)
1031
+ end
1032
+ end
1033
+
1034
+ # Response message for `TestIamPermissions` method.
1035
+ class TestIamPermissionsResponse
1036
+ include Google::Apis::Core::Hashable
1037
+
1038
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
1039
+ # Corresponds to the JSON property `permissions`
1040
+ # @return [Array<String>]
1041
+ attr_accessor :permissions
1042
+
1043
+ def initialize(**args)
1044
+ update!(**args)
1045
+ end
1046
+
1047
+ # Update properties of this object
1048
+ def update!(**args)
1049
+ @permissions = args[:permissions] if args.key?(:permissions)
1050
+ end
1051
+ end
1052
+
1053
+ # Message describing ThreeLeggedOAuth object.
1054
+ class ThreeLeggedOAuth
1055
+ include Google::Apis::Core::Hashable
1056
+
1057
+ # Optional. The authorization endpoint to send users to for consenting to
1058
+ # delegate to the agent. eg. "https://auth.atlassian.com/authorize"
1059
+ # Corresponds to the JSON property `authorizationUrl`
1060
+ # @return [String]
1061
+ attr_accessor :authorization_url
1062
+
1063
+ # Optional. The client ID of the OAuth client.
1064
+ # Corresponds to the JSON property `clientId`
1065
+ # @return [String]
1066
+ attr_accessor :client_id
1067
+
1068
+ # Optional. Input only. The client secret of the OAuth client.
1069
+ # Corresponds to the JSON property `clientSecret`
1070
+ # @return [String]
1071
+ attr_accessor :client_secret
1072
+
1073
+ # Optional. The default continue URI for 3LO flow and it will be used when no
1074
+ # continue URI is provided in the RetrieveCredentials request.
1075
+ # Corresponds to the JSON property `defaultContinueUri`
1076
+ # @return [String]
1077
+ attr_accessor :default_continue_uri
1078
+
1079
+ # Optional. Enables Proof Key for Code Exchange (PKCE) for the OAuth flow to
1080
+ # prevent authorization code interception attacks.
1081
+ # Corresponds to the JSON property `enablePkce`
1082
+ # @return [Boolean]
1083
+ attr_accessor :enable_pkce
1084
+ alias_method :enable_pkce?, :enable_pkce
1085
+
1086
+ # Output only. The redirect URL this auth_provider uses for the OAuth exchange.
1087
+ # This is deterministic based on the name of the auth_provider.
1088
+ # Corresponds to the JSON property `redirectUrl`
1089
+ # @return [String]
1090
+ attr_accessor :redirect_url
1091
+
1092
+ # Optional. The token endpoint for requesting tokens on behalf of an end user.
1093
+ # eg. "https://auth.atlassian.com/oauth/token"
1094
+ # Corresponds to the JSON property `tokenUrl`
1095
+ # @return [String]
1096
+ attr_accessor :token_url
1097
+
1098
+ def initialize(**args)
1099
+ update!(**args)
1100
+ end
1101
+
1102
+ # Update properties of this object
1103
+ def update!(**args)
1104
+ @authorization_url = args[:authorization_url] if args.key?(:authorization_url)
1105
+ @client_id = args[:client_id] if args.key?(:client_id)
1106
+ @client_secret = args[:client_secret] if args.key?(:client_secret)
1107
+ @default_continue_uri = args[:default_continue_uri] if args.key?(:default_continue_uri)
1108
+ @enable_pkce = args[:enable_pkce] if args.key?(:enable_pkce)
1109
+ @redirect_url = args[:redirect_url] if args.key?(:redirect_url)
1110
+ @token_url = args[:token_url] if args.key?(:token_url)
1111
+ end
1112
+ end
1113
+
1114
+ # Message describing TwoLeggedOAuth object.
1115
+ class TwoLeggedOAuth
1116
+ include Google::Apis::Core::Hashable
1117
+
1118
+ # Optional. The client ID of the OAuth client.
1119
+ # Corresponds to the JSON property `clientId`
1120
+ # @return [String]
1121
+ attr_accessor :client_id
1122
+
1123
+ # Optional. Input only. The client secret of the OAuth client.
1124
+ # Corresponds to the JSON property `clientSecret`
1125
+ # @return [String]
1126
+ attr_accessor :client_secret
1127
+
1128
+ # Optional. The token endpoint of the OAuth client.
1129
+ # Corresponds to the JSON property `tokenUrl`
1130
+ # @return [String]
1131
+ attr_accessor :token_url
1132
+
1133
+ def initialize(**args)
1134
+ update!(**args)
1135
+ end
1136
+
1137
+ # Update properties of this object
1138
+ def update!(**args)
1139
+ @client_id = args[:client_id] if args.key?(:client_id)
1140
+ @client_secret = args[:client_secret] if args.key?(:client_secret)
1141
+ @token_url = args[:token_url] if args.key?(:token_url)
1142
+ end
1143
+ end
1144
+
1145
+ # Message for undeleting a AuthProvider
1146
+ class UndeleteAuthProviderRequest
1147
+ include Google::Apis::Core::Hashable
1148
+
1149
+ # Optional. An optional request ID to identify requests. Specify a unique
1150
+ # request ID so that if you must retry your request, the server will know to
1151
+ # ignore the request if it has already been completed. The server will guarantee
1152
+ # that for at least 60 minutes after the first request. The request ID must be a
1153
+ # valid UUID with the exception that zero UUID is not supported (00000000-0000-
1154
+ # 0000-0000-000000000000).
1155
+ # Corresponds to the JSON property `requestId`
1156
+ # @return [String]
1157
+ attr_accessor :request_id
1158
+
1159
+ def initialize(**args)
1160
+ update!(**args)
1161
+ end
1162
+
1163
+ # Update properties of this object
1164
+ def update!(**args)
1165
+ @request_id = args[:request_id] if args.key?(:request_id)
1166
+ end
1167
+ end
1168
+ end
1169
+ end
1170
+ end