google-apis-iam_v2 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,589 @@
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 IamV2
24
+
25
+ # Audit log information specific to Cloud IAM admin APIs. This message is
26
+ # serialized as an `Any` type in the `ServiceData` message of an `AuditLog`
27
+ # message.
28
+ class GoogleIamAdminV1AuditData
29
+ include Google::Apis::Core::Hashable
30
+
31
+ # A PermissionDelta message to record the added_permissions and
32
+ # removed_permissions inside a role.
33
+ # Corresponds to the JSON property `permissionDelta`
34
+ # @return [Google::Apis::IamV2::GoogleIamAdminV1AuditDataPermissionDelta]
35
+ attr_accessor :permission_delta
36
+
37
+ def initialize(**args)
38
+ update!(**args)
39
+ end
40
+
41
+ # Update properties of this object
42
+ def update!(**args)
43
+ @permission_delta = args[:permission_delta] if args.key?(:permission_delta)
44
+ end
45
+ end
46
+
47
+ # A PermissionDelta message to record the added_permissions and
48
+ # removed_permissions inside a role.
49
+ class GoogleIamAdminV1AuditDataPermissionDelta
50
+ include Google::Apis::Core::Hashable
51
+
52
+ # Added permissions.
53
+ # Corresponds to the JSON property `addedPermissions`
54
+ # @return [Array<String>]
55
+ attr_accessor :added_permissions
56
+
57
+ # Removed permissions.
58
+ # Corresponds to the JSON property `removedPermissions`
59
+ # @return [Array<String>]
60
+ attr_accessor :removed_permissions
61
+
62
+ def initialize(**args)
63
+ update!(**args)
64
+ end
65
+
66
+ # Update properties of this object
67
+ def update!(**args)
68
+ @added_permissions = args[:added_permissions] if args.key?(:added_permissions)
69
+ @removed_permissions = args[:removed_permissions] if args.key?(:removed_permissions)
70
+ end
71
+ end
72
+
73
+ # One delta entry for Binding. Each individual change (only one member in each
74
+ # entry) to a binding will be a separate entry.
75
+ class GoogleIamV1BindingDelta
76
+ include Google::Apis::Core::Hashable
77
+
78
+ # The action that was performed on a Binding. Required
79
+ # Corresponds to the JSON property `action`
80
+ # @return [String]
81
+ attr_accessor :action
82
+
83
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
84
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
85
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
86
+ # "Summary size limit" description: "Determines if a summary is less than 100
87
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
88
+ # Requestor is owner" description: "Determines if requestor is the document
89
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
90
+ # Logic): title: "Public documents" description: "Determine whether the document
91
+ # should be publicly visible" expression: "document.type != 'private' &&
92
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
93
+ # string" description: "Create a notification string with a timestamp."
94
+ # expression: "'New message received at ' + string(document.create_time)" The
95
+ # exact variables and functions that may be referenced within an expression are
96
+ # determined by the service that evaluates it. See the service documentation for
97
+ # additional information.
98
+ # Corresponds to the JSON property `condition`
99
+ # @return [Google::Apis::IamV2::GoogleTypeExpr]
100
+ attr_accessor :condition
101
+
102
+ # A single identity requesting access for a Google Cloud resource. Follows the
103
+ # same format of Binding.members. Required
104
+ # Corresponds to the JSON property `member`
105
+ # @return [String]
106
+ attr_accessor :member
107
+
108
+ # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
109
+ # , or `roles/owner`. Required
110
+ # Corresponds to the JSON property `role`
111
+ # @return [String]
112
+ attr_accessor :role
113
+
114
+ def initialize(**args)
115
+ update!(**args)
116
+ end
117
+
118
+ # Update properties of this object
119
+ def update!(**args)
120
+ @action = args[:action] if args.key?(:action)
121
+ @condition = args[:condition] if args.key?(:condition)
122
+ @member = args[:member] if args.key?(:member)
123
+ @role = args[:role] if args.key?(:role)
124
+ end
125
+ end
126
+
127
+ # Audit log information specific to Cloud IAM. This message is serialized as an `
128
+ # Any` type in the `ServiceData` message of an `AuditLog` message.
129
+ class GoogleIamV1LoggingAuditData
130
+ include Google::Apis::Core::Hashable
131
+
132
+ # The difference delta between two policies.
133
+ # Corresponds to the JSON property `policyDelta`
134
+ # @return [Google::Apis::IamV2::GoogleIamV1PolicyDelta]
135
+ attr_accessor :policy_delta
136
+
137
+ def initialize(**args)
138
+ update!(**args)
139
+ end
140
+
141
+ # Update properties of this object
142
+ def update!(**args)
143
+ @policy_delta = args[:policy_delta] if args.key?(:policy_delta)
144
+ end
145
+ end
146
+
147
+ # The difference delta between two policies.
148
+ class GoogleIamV1PolicyDelta
149
+ include Google::Apis::Core::Hashable
150
+
151
+ # The delta for Bindings between two policies.
152
+ # Corresponds to the JSON property `bindingDeltas`
153
+ # @return [Array<Google::Apis::IamV2::GoogleIamV1BindingDelta>]
154
+ attr_accessor :binding_deltas
155
+
156
+ def initialize(**args)
157
+ update!(**args)
158
+ end
159
+
160
+ # Update properties of this object
161
+ def update!(**args)
162
+ @binding_deltas = args[:binding_deltas] if args.key?(:binding_deltas)
163
+ end
164
+ end
165
+
166
+ # Metadata for long-running WorkloadIdentityPool operations.
167
+ class GoogleIamV1betaWorkloadIdentityPoolOperationMetadata
168
+ include Google::Apis::Core::Hashable
169
+
170
+ def initialize(**args)
171
+ update!(**args)
172
+ end
173
+
174
+ # Update properties of this object
175
+ def update!(**args)
176
+ end
177
+ end
178
+
179
+ # A deny rule in an IAM deny policy.
180
+ class GoogleIamV2DenyRule
181
+ include Google::Apis::Core::Hashable
182
+
183
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
184
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
185
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
186
+ # "Summary size limit" description: "Determines if a summary is less than 100
187
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
188
+ # Requestor is owner" description: "Determines if requestor is the document
189
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
190
+ # Logic): title: "Public documents" description: "Determine whether the document
191
+ # should be publicly visible" expression: "document.type != 'private' &&
192
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
193
+ # string" description: "Create a notification string with a timestamp."
194
+ # expression: "'New message received at ' + string(document.create_time)" The
195
+ # exact variables and functions that may be referenced within an expression are
196
+ # determined by the service that evaluates it. See the service documentation for
197
+ # additional information.
198
+ # Corresponds to the JSON property `denialCondition`
199
+ # @return [Google::Apis::IamV2::GoogleTypeExpr]
200
+ attr_accessor :denial_condition
201
+
202
+ # The permissions that are explicitly denied by this rule. Each permission uses
203
+ # the format ``service_fqdn`/`resource`.`verb``, where ``service_fqdn`` is the
204
+ # fully qualified domain name for the service. For example, `iam.googleapis.com/
205
+ # roles.list`.
206
+ # Corresponds to the JSON property `deniedPermissions`
207
+ # @return [Array<String>]
208
+ attr_accessor :denied_permissions
209
+
210
+ # The identities that are prevented from using one or more permissions on Google
211
+ # Cloud resources. This field can contain the following values: * `principalSet:/
212
+ # /goog/public:all`: A special identifier that represents any principal that is
213
+ # on the internet, even if they do not have a Google Account or are not logged
214
+ # in. * `principal://goog/subject/`email_id``: A specific Google Account.
215
+ # Includes Gmail, Cloud Identity, and Google Workspace user accounts. For
216
+ # example, `principal://goog/subject/alice@example.com`. * `deleted:principal://
217
+ # goog/subject/`email_id`?uid=`uid``: A specific Google Account that was deleted
218
+ # recently. For example, `deleted:principal://goog/subject/alice@example.com?uid=
219
+ # 1234567890`. If the Google Account is recovered, this identifier reverts to
220
+ # the standard identifier for a Google Account. * `principalSet://goog/group/`
221
+ # group_id``: A Google group. For example, `principalSet://goog/group/admins@
222
+ # example.com`. * `deleted:principalSet://goog/group/`group_id`?uid=`uid``: A
223
+ # Google group that was deleted recently. For example, `deleted:principalSet://
224
+ # goog/group/admins@example.com?uid=1234567890`. If the Google group is restored,
225
+ # this identifier reverts to the standard identifier for a Google group. * `
226
+ # principal://iam.googleapis.com/projects/-/serviceAccounts/`service_account_id``
227
+ # : A Google Cloud service account. For example, `principal://iam.googleapis.com/
228
+ # projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`. * `
229
+ # deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/`
230
+ # service_account_id`?uid=`uid``: A Google Cloud service account that was
231
+ # deleted recently. For example, `deleted:principal://iam.googleapis.com/
232
+ # projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=
233
+ # 1234567890`. If the service account is undeleted, this identifier reverts to
234
+ # the standard identifier for a service account. * `principalSet://goog/
235
+ # cloudIdentityCustomerId/`customer_id``: All of the principals associated with
236
+ # the specified Google Workspace or Cloud Identity customer ID. For example, `
237
+ # principalSet://goog/cloudIdentityCustomerId/C01Abc35`.
238
+ # Corresponds to the JSON property `deniedPrincipals`
239
+ # @return [Array<String>]
240
+ attr_accessor :denied_principals
241
+
242
+ # Specifies the permissions that this rule excludes from the set of denied
243
+ # permissions given by `denied_permissions`. If a permission appears in `
244
+ # denied_permissions` _and_ in `exception_permissions` then it will _not_ be
245
+ # denied. The excluded permissions can be specified using the same syntax as `
246
+ # denied_permissions`.
247
+ # Corresponds to the JSON property `exceptionPermissions`
248
+ # @return [Array<String>]
249
+ attr_accessor :exception_permissions
250
+
251
+ # The identities that are excluded from the deny rule, even if they are listed
252
+ # in the `denied_principals`. For example, you could add a Google group to the `
253
+ # denied_principals`, then exclude specific users who belong to that group. This
254
+ # field can contain the same values as the `denied_principals` field, excluding `
255
+ # principalSet://goog/public:all`, which represents all users on the internet.
256
+ # Corresponds to the JSON property `exceptionPrincipals`
257
+ # @return [Array<String>]
258
+ attr_accessor :exception_principals
259
+
260
+ def initialize(**args)
261
+ update!(**args)
262
+ end
263
+
264
+ # Update properties of this object
265
+ def update!(**args)
266
+ @denial_condition = args[:denial_condition] if args.key?(:denial_condition)
267
+ @denied_permissions = args[:denied_permissions] if args.key?(:denied_permissions)
268
+ @denied_principals = args[:denied_principals] if args.key?(:denied_principals)
269
+ @exception_permissions = args[:exception_permissions] if args.key?(:exception_permissions)
270
+ @exception_principals = args[:exception_principals] if args.key?(:exception_principals)
271
+ end
272
+ end
273
+
274
+ # Response message for `ListPolicies`.
275
+ class GoogleIamV2ListPoliciesResponse
276
+ include Google::Apis::Core::Hashable
277
+
278
+ # A page token that you can use in a ListPoliciesRequest to retrieve the next
279
+ # page. If this field is omitted, there are no additional pages.
280
+ # Corresponds to the JSON property `nextPageToken`
281
+ # @return [String]
282
+ attr_accessor :next_page_token
283
+
284
+ # Metadata for the policies that are attached to the resource.
285
+ # Corresponds to the JSON property `policies`
286
+ # @return [Array<Google::Apis::IamV2::GoogleIamV2Policy>]
287
+ attr_accessor :policies
288
+
289
+ def initialize(**args)
290
+ update!(**args)
291
+ end
292
+
293
+ # Update properties of this object
294
+ def update!(**args)
295
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
296
+ @policies = args[:policies] if args.key?(:policies)
297
+ end
298
+ end
299
+
300
+ # Data for an IAM policy.
301
+ class GoogleIamV2Policy
302
+ include Google::Apis::Core::Hashable
303
+
304
+ # A key-value map to store arbitrary metadata for the `Policy`. Keys can be up
305
+ # to 63 characters. Values can be up to 255 characters.
306
+ # Corresponds to the JSON property `annotations`
307
+ # @return [Hash<String,String>]
308
+ attr_accessor :annotations
309
+
310
+ # Output only. The time when the `Policy` was created.
311
+ # Corresponds to the JSON property `createTime`
312
+ # @return [String]
313
+ attr_accessor :create_time
314
+
315
+ # Output only. The time when the `Policy` was deleted. Empty if the policy is
316
+ # not deleted.
317
+ # Corresponds to the JSON property `deleteTime`
318
+ # @return [String]
319
+ attr_accessor :delete_time
320
+
321
+ # A user-specified description of the `Policy`. This value can be up to 63
322
+ # characters.
323
+ # Corresponds to the JSON property `displayName`
324
+ # @return [String]
325
+ attr_accessor :display_name
326
+
327
+ # An opaque tag that identifies the current version of the `Policy`. IAM uses
328
+ # this value to help manage concurrent updates, so they do not cause one update
329
+ # to be overwritten by another. If this field is present in a CreatePolicy
330
+ # request, the value is ignored.
331
+ # Corresponds to the JSON property `etag`
332
+ # @return [String]
333
+ attr_accessor :etag
334
+
335
+ # Output only. The kind of the `Policy`. Always contains the value `DenyPolicy`.
336
+ # Corresponds to the JSON property `kind`
337
+ # @return [String]
338
+ attr_accessor :kind
339
+
340
+ # Immutable. The resource name of the `Policy`, which must be unique. Format: `
341
+ # policies/`attachment_point`/denypolicies/`policy_id`` The attachment point is
342
+ # identified by its URL-encoded full resource name, which means that the forward-
343
+ # slash character, `/`, must be written as `%2F`. For example, `policies/
344
+ # cloudresourcemanager.googleapis.com%2Fprojects%2Fmy-project/denypolicies/my-
345
+ # deny-policy`. For organizations and folders, use the numeric ID in the full
346
+ # resource name. For projects, requests can use the alphanumeric or the numeric
347
+ # ID. Responses always contain the numeric ID.
348
+ # Corresponds to the JSON property `name`
349
+ # @return [String]
350
+ attr_accessor :name
351
+
352
+ # A list of rules that specify the behavior of the `Policy`. All of the rules
353
+ # should be of the `kind` specified in the `Policy`.
354
+ # Corresponds to the JSON property `rules`
355
+ # @return [Array<Google::Apis::IamV2::GoogleIamV2PolicyRule>]
356
+ attr_accessor :rules
357
+
358
+ # Immutable. The globally unique ID of the `Policy`. Assigned automatically when
359
+ # the `Policy` is created.
360
+ # Corresponds to the JSON property `uid`
361
+ # @return [String]
362
+ attr_accessor :uid
363
+
364
+ # Output only. The time when the `Policy` was last updated.
365
+ # Corresponds to the JSON property `updateTime`
366
+ # @return [String]
367
+ attr_accessor :update_time
368
+
369
+ def initialize(**args)
370
+ update!(**args)
371
+ end
372
+
373
+ # Update properties of this object
374
+ def update!(**args)
375
+ @annotations = args[:annotations] if args.key?(:annotations)
376
+ @create_time = args[:create_time] if args.key?(:create_time)
377
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
378
+ @display_name = args[:display_name] if args.key?(:display_name)
379
+ @etag = args[:etag] if args.key?(:etag)
380
+ @kind = args[:kind] if args.key?(:kind)
381
+ @name = args[:name] if args.key?(:name)
382
+ @rules = args[:rules] if args.key?(:rules)
383
+ @uid = args[:uid] if args.key?(:uid)
384
+ @update_time = args[:update_time] if args.key?(:update_time)
385
+ end
386
+ end
387
+
388
+ # Metadata for long-running `Policy` operations.
389
+ class GoogleIamV2PolicyOperationMetadata
390
+ include Google::Apis::Core::Hashable
391
+
392
+ # Timestamp when the `google.longrunning.Operation` was created.
393
+ # Corresponds to the JSON property `createTime`
394
+ # @return [String]
395
+ attr_accessor :create_time
396
+
397
+ def initialize(**args)
398
+ update!(**args)
399
+ end
400
+
401
+ # Update properties of this object
402
+ def update!(**args)
403
+ @create_time = args[:create_time] if args.key?(:create_time)
404
+ end
405
+ end
406
+
407
+ # A single rule in a `Policy`.
408
+ class GoogleIamV2PolicyRule
409
+ include Google::Apis::Core::Hashable
410
+
411
+ # A deny rule in an IAM deny policy.
412
+ # Corresponds to the JSON property `denyRule`
413
+ # @return [Google::Apis::IamV2::GoogleIamV2DenyRule]
414
+ attr_accessor :deny_rule
415
+
416
+ # A user-specified description of the rule. This value can be up to 256
417
+ # characters.
418
+ # Corresponds to the JSON property `description`
419
+ # @return [String]
420
+ attr_accessor :description
421
+
422
+ def initialize(**args)
423
+ update!(**args)
424
+ end
425
+
426
+ # Update properties of this object
427
+ def update!(**args)
428
+ @deny_rule = args[:deny_rule] if args.key?(:deny_rule)
429
+ @description = args[:description] if args.key?(:description)
430
+ end
431
+ end
432
+
433
+ # This resource represents a long-running operation that is the result of a
434
+ # network API call.
435
+ class GoogleLongrunningOperation
436
+ include Google::Apis::Core::Hashable
437
+
438
+ # If the value is `false`, it means the operation is still in progress. If `true`
439
+ # , the operation is completed, and either `error` or `response` is available.
440
+ # Corresponds to the JSON property `done`
441
+ # @return [Boolean]
442
+ attr_accessor :done
443
+ alias_method :done?, :done
444
+
445
+ # The `Status` type defines a logical error model that is suitable for different
446
+ # programming environments, including REST APIs and RPC APIs. It is used by [
447
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
448
+ # data: error code, error message, and error details. You can find out more
449
+ # about this error model and how to work with it in the [API Design Guide](https:
450
+ # //cloud.google.com/apis/design/errors).
451
+ # Corresponds to the JSON property `error`
452
+ # @return [Google::Apis::IamV2::GoogleRpcStatus]
453
+ attr_accessor :error
454
+
455
+ # Service-specific metadata associated with the operation. It typically contains
456
+ # progress information and common metadata such as create time. Some services
457
+ # might not provide such metadata. Any method that returns a long-running
458
+ # operation should document the metadata type, if any.
459
+ # Corresponds to the JSON property `metadata`
460
+ # @return [Hash<String,Object>]
461
+ attr_accessor :metadata
462
+
463
+ # The server-assigned name, which is only unique within the same service that
464
+ # originally returns it. If you use the default HTTP mapping, the `name` should
465
+ # be a resource name ending with `operations/`unique_id``.
466
+ # Corresponds to the JSON property `name`
467
+ # @return [String]
468
+ attr_accessor :name
469
+
470
+ # The normal response of the operation in case of success. If the original
471
+ # method returns no data on success, such as `Delete`, the response is `google.
472
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
473
+ # the response should be the resource. For other methods, the response should
474
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
475
+ # example, if the original method name is `TakeSnapshot()`, the inferred
476
+ # response type is `TakeSnapshotResponse`.
477
+ # Corresponds to the JSON property `response`
478
+ # @return [Hash<String,Object>]
479
+ attr_accessor :response
480
+
481
+ def initialize(**args)
482
+ update!(**args)
483
+ end
484
+
485
+ # Update properties of this object
486
+ def update!(**args)
487
+ @done = args[:done] if args.key?(:done)
488
+ @error = args[:error] if args.key?(:error)
489
+ @metadata = args[:metadata] if args.key?(:metadata)
490
+ @name = args[:name] if args.key?(:name)
491
+ @response = args[:response] if args.key?(:response)
492
+ end
493
+ end
494
+
495
+ # The `Status` type defines a logical error model that is suitable for different
496
+ # programming environments, including REST APIs and RPC APIs. It is used by [
497
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
498
+ # data: error code, error message, and error details. You can find out more
499
+ # about this error model and how to work with it in the [API Design Guide](https:
500
+ # //cloud.google.com/apis/design/errors).
501
+ class GoogleRpcStatus
502
+ include Google::Apis::Core::Hashable
503
+
504
+ # The status code, which should be an enum value of google.rpc.Code.
505
+ # Corresponds to the JSON property `code`
506
+ # @return [Fixnum]
507
+ attr_accessor :code
508
+
509
+ # A list of messages that carry the error details. There is a common set of
510
+ # message types for APIs to use.
511
+ # Corresponds to the JSON property `details`
512
+ # @return [Array<Hash<String,Object>>]
513
+ attr_accessor :details
514
+
515
+ # A developer-facing error message, which should be in English. Any user-facing
516
+ # error message should be localized and sent in the google.rpc.Status.details
517
+ # field, or localized by the client.
518
+ # Corresponds to the JSON property `message`
519
+ # @return [String]
520
+ attr_accessor :message
521
+
522
+ def initialize(**args)
523
+ update!(**args)
524
+ end
525
+
526
+ # Update properties of this object
527
+ def update!(**args)
528
+ @code = args[:code] if args.key?(:code)
529
+ @details = args[:details] if args.key?(:details)
530
+ @message = args[:message] if args.key?(:message)
531
+ end
532
+ end
533
+
534
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
535
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
536
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
537
+ # "Summary size limit" description: "Determines if a summary is less than 100
538
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
539
+ # Requestor is owner" description: "Determines if requestor is the document
540
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
541
+ # Logic): title: "Public documents" description: "Determine whether the document
542
+ # should be publicly visible" expression: "document.type != 'private' &&
543
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
544
+ # string" description: "Create a notification string with a timestamp."
545
+ # expression: "'New message received at ' + string(document.create_time)" The
546
+ # exact variables and functions that may be referenced within an expression are
547
+ # determined by the service that evaluates it. See the service documentation for
548
+ # additional information.
549
+ class GoogleTypeExpr
550
+ include Google::Apis::Core::Hashable
551
+
552
+ # Optional. Description of the expression. This is a longer text which describes
553
+ # the expression, e.g. when hovered over it in a UI.
554
+ # Corresponds to the JSON property `description`
555
+ # @return [String]
556
+ attr_accessor :description
557
+
558
+ # Textual representation of an expression in Common Expression Language syntax.
559
+ # Corresponds to the JSON property `expression`
560
+ # @return [String]
561
+ attr_accessor :expression
562
+
563
+ # Optional. String indicating the location of the expression for error reporting,
564
+ # e.g. a file name and a position in the file.
565
+ # Corresponds to the JSON property `location`
566
+ # @return [String]
567
+ attr_accessor :location
568
+
569
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
570
+ # This can be used e.g. in UIs which allow to enter the expression.
571
+ # Corresponds to the JSON property `title`
572
+ # @return [String]
573
+ attr_accessor :title
574
+
575
+ def initialize(**args)
576
+ update!(**args)
577
+ end
578
+
579
+ # Update properties of this object
580
+ def update!(**args)
581
+ @description = args[:description] if args.key?(:description)
582
+ @expression = args[:expression] if args.key?(:expression)
583
+ @location = args[:location] if args.key?(:location)
584
+ @title = args[:title] if args.key?(:title)
585
+ end
586
+ end
587
+ end
588
+ end
589
+ end
@@ -0,0 +1,28 @@
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
+ module Google
16
+ module Apis
17
+ module IamV2
18
+ # Version of the google-apis-iam_v2 gem
19
+ GEM_VERSION = "0.1.0"
20
+
21
+ # Version of the code generator used to generate this client
22
+ GENERATOR_VERSION = "0.11.1"
23
+
24
+ # Revision of the discovery document this client was generated from
25
+ REVISION = "20230119"
26
+ end
27
+ end
28
+ end