google-apis-looker_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,1376 @@
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 LookerV1
24
+
25
+ # Looker instance Admin settings fields.
26
+ class AdminSettings
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Email domain allowlist for the instance.
30
+ # Corresponds to the JSON property `allowedEmailDomains`
31
+ # @return [Array<String>]
32
+ attr_accessor :allowed_email_domains
33
+
34
+ def initialize(**args)
35
+ update!(**args)
36
+ end
37
+
38
+ # Update properties of this object
39
+ def update!(**args)
40
+ @allowed_email_domains = args[:allowed_email_domains] if args.key?(:allowed_email_domains)
41
+ end
42
+ end
43
+
44
+ # Specifies the audit configuration for a service. The configuration determines
45
+ # which permission types are logged, and what identities, if any, are exempted
46
+ # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
47
+ # are AuditConfigs for both `allServices` and a specific service, the union of
48
+ # the two AuditConfigs is used for that service: the log_types specified in each
49
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
50
+ # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
51
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
52
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
53
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
54
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
55
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
56
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
57
+ # exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com`
58
+ # from DATA_WRITE logging.
59
+ class AuditConfig
60
+ include Google::Apis::Core::Hashable
61
+
62
+ # The configuration for logging of each type of permission.
63
+ # Corresponds to the JSON property `auditLogConfigs`
64
+ # @return [Array<Google::Apis::LookerV1::AuditLogConfig>]
65
+ attr_accessor :audit_log_configs
66
+
67
+ # Specifies a service that will be enabled for audit logging. For example, `
68
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
69
+ # value that covers all services.
70
+ # Corresponds to the JSON property `service`
71
+ # @return [String]
72
+ attr_accessor :service
73
+
74
+ def initialize(**args)
75
+ update!(**args)
76
+ end
77
+
78
+ # Update properties of this object
79
+ def update!(**args)
80
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
81
+ @service = args[:service] if args.key?(:service)
82
+ end
83
+ end
84
+
85
+ # Provides the configuration for logging a type of permissions. Example: ` "
86
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
87
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
88
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
89
+ # DATA_READ logging.
90
+ class AuditLogConfig
91
+ include Google::Apis::Core::Hashable
92
+
93
+ # Specifies the identities that do not cause logging for this type of permission.
94
+ # Follows the same format of Binding.members.
95
+ # Corresponds to the JSON property `exemptedMembers`
96
+ # @return [Array<String>]
97
+ attr_accessor :exempted_members
98
+
99
+ # The log type that this config enables.
100
+ # Corresponds to the JSON property `logType`
101
+ # @return [String]
102
+ attr_accessor :log_type
103
+
104
+ def initialize(**args)
105
+ update!(**args)
106
+ end
107
+
108
+ # Update properties of this object
109
+ def update!(**args)
110
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
111
+ @log_type = args[:log_type] if args.key?(:log_type)
112
+ end
113
+ end
114
+
115
+ # Associates `members`, or principals, with a `role`.
116
+ class Binding
117
+ include Google::Apis::Core::Hashable
118
+
119
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
120
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
121
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
122
+ # "Summary size limit" description: "Determines if a summary is less than 100
123
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
124
+ # Requestor is owner" description: "Determines if requestor is the document
125
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
126
+ # Logic): title: "Public documents" description: "Determine whether the document
127
+ # should be publicly visible" expression: "document.type != 'private' &&
128
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
129
+ # string" description: "Create a notification string with a timestamp."
130
+ # expression: "'New message received at ' + string(document.create_time)" The
131
+ # exact variables and functions that may be referenced within an expression are
132
+ # determined by the service that evaluates it. See the service documentation for
133
+ # additional information.
134
+ # Corresponds to the JSON property `condition`
135
+ # @return [Google::Apis::LookerV1::Expr]
136
+ attr_accessor :condition
137
+
138
+ # Specifies the principals requesting access for a Google Cloud resource. `
139
+ # members` can have the following values: * `allUsers`: A special identifier
140
+ # that represents anyone who is on the internet; with or without a Google
141
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
142
+ # anyone who is authenticated with a Google account or a service account. Does
143
+ # not include identities that come from external identity providers (IdPs)
144
+ # through identity federation. * `user:`emailid``: An email address that
145
+ # represents a specific Google account. For example, `alice@example.com` . * `
146
+ # serviceAccount:`emailid``: An email address that represents a Google service
147
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`. * `
148
+ # serviceAccount:`projectid`.svc.id.goog[`namespace`/`kubernetes-sa`]`: An
149
+ # identifier for a [Kubernetes service account](https://cloud.google.com/
150
+ # kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-
151
+ # project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:`emailid``: An
152
+ # email address that represents a Google group. For example, `admins@example.com`
153
+ # . * `domain:`domain``: The G Suite domain (primary) that represents all the
154
+ # users of that domain. For example, `google.com` or `example.com`. * `deleted:
155
+ # user:`emailid`?uid=`uniqueid``: An email address (plus unique identifier)
156
+ # representing a user that has been recently deleted. For example, `alice@
157
+ # example.com?uid=123456789012345678901`. If the user is recovered, this value
158
+ # reverts to `user:`emailid`` and the recovered user retains the role in the
159
+ # binding. * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email address
160
+ # (plus unique identifier) representing a service account that has been recently
161
+ # deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=
162
+ # 123456789012345678901`. If the service account is undeleted, this value
163
+ # reverts to `serviceAccount:`emailid`` and the undeleted service account
164
+ # retains the role in the binding. * `deleted:group:`emailid`?uid=`uniqueid``:
165
+ # An email address (plus unique identifier) representing a Google group that has
166
+ # been recently deleted. For example, `admins@example.com?uid=
167
+ # 123456789012345678901`. If the group is recovered, this value reverts to `
168
+ # group:`emailid`` and the recovered group retains the role in the binding.
169
+ # Corresponds to the JSON property `members`
170
+ # @return [Array<String>]
171
+ attr_accessor :members
172
+
173
+ # Role that is assigned to the list of `members`, or principals. For example, `
174
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
175
+ # Corresponds to the JSON property `role`
176
+ # @return [String]
177
+ attr_accessor :role
178
+
179
+ def initialize(**args)
180
+ update!(**args)
181
+ end
182
+
183
+ # Update properties of this object
184
+ def update!(**args)
185
+ @condition = args[:condition] if args.key?(:condition)
186
+ @members = args[:members] if args.key?(:members)
187
+ @role = args[:role] if args.key?(:role)
188
+ end
189
+ end
190
+
191
+ # The request message for Operations.CancelOperation.
192
+ class CancelOperationRequest
193
+ include Google::Apis::Core::Hashable
194
+
195
+ def initialize(**args)
196
+ update!(**args)
197
+ end
198
+
199
+ # Update properties of this object
200
+ def update!(**args)
201
+ end
202
+ end
203
+
204
+ # Custom domain information.
205
+ class CustomDomain
206
+ include Google::Apis::Core::Hashable
207
+
208
+ # Domain name.
209
+ # Corresponds to the JSON property `domain`
210
+ # @return [String]
211
+ attr_accessor :domain
212
+
213
+ # Domain state.
214
+ # Corresponds to the JSON property `state`
215
+ # @return [String]
216
+ attr_accessor :state
217
+
218
+ def initialize(**args)
219
+ update!(**args)
220
+ end
221
+
222
+ # Update properties of this object
223
+ def update!(**args)
224
+ @domain = args[:domain] if args.key?(:domain)
225
+ @state = args[:state] if args.key?(:state)
226
+ end
227
+ end
228
+
229
+ # Represents a whole or partial calendar date, such as a birthday. The time of
230
+ # day and time zone are either specified elsewhere or are insignificant. The
231
+ # date is relative to the Gregorian Calendar. This can represent one of the
232
+ # following: * A full date, with non-zero year, month, and day values. * A month
233
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
234
+ # with a zero month and a zero day. * A year and month, with a zero day (for
235
+ # example, a credit card expiration date). Related types: * google.type.
236
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
237
+ class Date
238
+ include Google::Apis::Core::Hashable
239
+
240
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
241
+ # specify a year by itself or a year and month where the day isn't significant.
242
+ # Corresponds to the JSON property `day`
243
+ # @return [Fixnum]
244
+ attr_accessor :day
245
+
246
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
247
+ # and day.
248
+ # Corresponds to the JSON property `month`
249
+ # @return [Fixnum]
250
+ attr_accessor :month
251
+
252
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
253
+ # year.
254
+ # Corresponds to the JSON property `year`
255
+ # @return [Fixnum]
256
+ attr_accessor :year
257
+
258
+ def initialize(**args)
259
+ update!(**args)
260
+ end
261
+
262
+ # Update properties of this object
263
+ def update!(**args)
264
+ @day = args[:day] if args.key?(:day)
265
+ @month = args[:month] if args.key?(:month)
266
+ @year = args[:year] if args.key?(:year)
267
+ end
268
+ end
269
+
270
+ # Specifies the maintenance denial period.
271
+ class DenyMaintenancePeriod
272
+ include Google::Apis::Core::Hashable
273
+
274
+ # Represents a whole or partial calendar date, such as a birthday. The time of
275
+ # day and time zone are either specified elsewhere or are insignificant. The
276
+ # date is relative to the Gregorian Calendar. This can represent one of the
277
+ # following: * A full date, with non-zero year, month, and day values. * A month
278
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
279
+ # with a zero month and a zero day. * A year and month, with a zero day (for
280
+ # example, a credit card expiration date). Related types: * google.type.
281
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
282
+ # Corresponds to the JSON property `endDate`
283
+ # @return [Google::Apis::LookerV1::Date]
284
+ attr_accessor :end_date
285
+
286
+ # Represents a whole or partial calendar date, such as a birthday. The time of
287
+ # day and time zone are either specified elsewhere or are insignificant. The
288
+ # date is relative to the Gregorian Calendar. This can represent one of the
289
+ # following: * A full date, with non-zero year, month, and day values. * A month
290
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
291
+ # with a zero month and a zero day. * A year and month, with a zero day (for
292
+ # example, a credit card expiration date). Related types: * google.type.
293
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
294
+ # Corresponds to the JSON property `startDate`
295
+ # @return [Google::Apis::LookerV1::Date]
296
+ attr_accessor :start_date
297
+
298
+ # Represents a time of day. The date and time zone are either not significant or
299
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
300
+ # types are google.type.Date and `google.protobuf.Timestamp`.
301
+ # Corresponds to the JSON property `time`
302
+ # @return [Google::Apis::LookerV1::TimeOfDay]
303
+ attr_accessor :time
304
+
305
+ def initialize(**args)
306
+ update!(**args)
307
+ end
308
+
309
+ # Update properties of this object
310
+ def update!(**args)
311
+ @end_date = args[:end_date] if args.key?(:end_date)
312
+ @start_date = args[:start_date] if args.key?(:start_date)
313
+ @time = args[:time] if args.key?(:time)
314
+ end
315
+ end
316
+
317
+ # A generic empty message that you can re-use to avoid defining duplicated empty
318
+ # messages in your APIs. A typical example is to use it as the request or the
319
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
320
+ # protobuf.Empty) returns (google.protobuf.Empty); `
321
+ class Empty
322
+ include Google::Apis::Core::Hashable
323
+
324
+ def initialize(**args)
325
+ update!(**args)
326
+ end
327
+
328
+ # Update properties of this object
329
+ def update!(**args)
330
+ end
331
+ end
332
+
333
+ # Encryption configuration (i.e. CMEK).
334
+ class EncryptionConfig
335
+ include Google::Apis::Core::Hashable
336
+
337
+ # Name of the CMEK key in KMS (input parameter).
338
+ # Corresponds to the JSON property `kmsKeyName`
339
+ # @return [String]
340
+ attr_accessor :kms_key_name
341
+
342
+ # Output only. Full name and version of the CMEK key currently in use to encrypt
343
+ # Looker data. Format: `projects/`project`/locations/`location`/keyRings/`ring`/
344
+ # cryptoKeys/`key`/cryptoKeyVersions/`version``. Empty if CMEK is not configured
345
+ # in this instance.
346
+ # Corresponds to the JSON property `kmsKeyNameVersion`
347
+ # @return [String]
348
+ attr_accessor :kms_key_name_version
349
+
350
+ # Output only. Status of the CMEK key.
351
+ # Corresponds to the JSON property `kmsKeyState`
352
+ # @return [String]
353
+ attr_accessor :kms_key_state
354
+
355
+ def initialize(**args)
356
+ update!(**args)
357
+ end
358
+
359
+ # Update properties of this object
360
+ def update!(**args)
361
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
362
+ @kms_key_name_version = args[:kms_key_name_version] if args.key?(:kms_key_name_version)
363
+ @kms_key_state = args[:kms_key_state] if args.key?(:kms_key_state)
364
+ end
365
+ end
366
+
367
+ # Configuration for Encryption - e.g. CMEK.
368
+ class ExportEncryptionConfig
369
+ include Google::Apis::Core::Hashable
370
+
371
+ # Required. Name of the CMEK key in KMS.
372
+ # Corresponds to the JSON property `kmsKeyName`
373
+ # @return [String]
374
+ attr_accessor :kms_key_name
375
+
376
+ def initialize(**args)
377
+ update!(**args)
378
+ end
379
+
380
+ # Update properties of this object
381
+ def update!(**args)
382
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
383
+ end
384
+ end
385
+
386
+ # Request options for exporting data of an Instance.
387
+ class ExportInstanceRequest
388
+ include Google::Apis::Core::Hashable
389
+
390
+ # Configuration for Encryption - e.g. CMEK.
391
+ # Corresponds to the JSON property `encryptionConfig`
392
+ # @return [Google::Apis::LookerV1::ExportEncryptionConfig]
393
+ attr_accessor :encryption_config
394
+
395
+ # The path to the folder in Google Cloud Storage where the export will be stored.
396
+ # The URI is in the form `gs://bucketName/folderName`.
397
+ # Corresponds to the JSON property `gcsUri`
398
+ # @return [String]
399
+ attr_accessor :gcs_uri
400
+
401
+ def initialize(**args)
402
+ update!(**args)
403
+ end
404
+
405
+ # Update properties of this object
406
+ def update!(**args)
407
+ @encryption_config = args[:encryption_config] if args.key?(:encryption_config)
408
+ @gcs_uri = args[:gcs_uri] if args.key?(:gcs_uri)
409
+ end
410
+ end
411
+
412
+ # ExportMetadata represents the metadata of the exported artifacts. The metadata.
413
+ # json file in export artifact can be parsed as this message
414
+ class ExportMetadata
415
+ include Google::Apis::Core::Hashable
416
+
417
+ # Encryption key details for the exported artifact.
418
+ # Corresponds to the JSON property `exportEncryptionKey`
419
+ # @return [Google::Apis::LookerV1::ExportMetadataEncryptionKey]
420
+ attr_accessor :export_encryption_key
421
+
422
+ # List of files created as part of export artifact (excluding the metadata). The
423
+ # paths are relative to the folder containing the metadata.
424
+ # Corresponds to the JSON property `filePaths`
425
+ # @return [Array<String>]
426
+ attr_accessor :file_paths
427
+
428
+ # Looker encryption key, encrypted with the provided export encryption key. This
429
+ # value will only be populated if the looker instance uses Looker managed
430
+ # encryption instead of CMEK.
431
+ # Corresponds to the JSON property `lookerEncryptionKey`
432
+ # @return [String]
433
+ attr_accessor :looker_encryption_key
434
+
435
+ # Name of the exported instance. Format: projects/`project`/locations/`location`/
436
+ # instances/`instance`
437
+ # Corresponds to the JSON property `lookerInstance`
438
+ # @return [String]
439
+ attr_accessor :looker_instance
440
+
441
+ # Platform edition of the exported instance.
442
+ # Corresponds to the JSON property `lookerPlatformEdition`
443
+ # @return [String]
444
+ attr_accessor :looker_platform_edition
445
+
446
+ # Version of instance when the export was created.
447
+ # Corresponds to the JSON property `lookerVersion`
448
+ # @return [String]
449
+ attr_accessor :looker_version
450
+
451
+ # The source type of the migration.
452
+ # Corresponds to the JSON property `source`
453
+ # @return [String]
454
+ attr_accessor :source
455
+
456
+ def initialize(**args)
457
+ update!(**args)
458
+ end
459
+
460
+ # Update properties of this object
461
+ def update!(**args)
462
+ @export_encryption_key = args[:export_encryption_key] if args.key?(:export_encryption_key)
463
+ @file_paths = args[:file_paths] if args.key?(:file_paths)
464
+ @looker_encryption_key = args[:looker_encryption_key] if args.key?(:looker_encryption_key)
465
+ @looker_instance = args[:looker_instance] if args.key?(:looker_instance)
466
+ @looker_platform_edition = args[:looker_platform_edition] if args.key?(:looker_platform_edition)
467
+ @looker_version = args[:looker_version] if args.key?(:looker_version)
468
+ @source = args[:source] if args.key?(:source)
469
+ end
470
+ end
471
+
472
+ # Encryption key details for the exported artifact.
473
+ class ExportMetadataEncryptionKey
474
+ include Google::Apis::Core::Hashable
475
+
476
+ # Name of the CMEK.
477
+ # Corresponds to the JSON property `cmek`
478
+ # @return [String]
479
+ attr_accessor :cmek
480
+
481
+ # Version of the CMEK.
482
+ # Corresponds to the JSON property `version`
483
+ # @return [String]
484
+ attr_accessor :version
485
+
486
+ def initialize(**args)
487
+ update!(**args)
488
+ end
489
+
490
+ # Update properties of this object
491
+ def update!(**args)
492
+ @cmek = args[:cmek] if args.key?(:cmek)
493
+ @version = args[:version] if args.key?(:version)
494
+ end
495
+ end
496
+
497
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
498
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
499
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
500
+ # "Summary size limit" description: "Determines if a summary is less than 100
501
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
502
+ # Requestor is owner" description: "Determines if requestor is the document
503
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
504
+ # Logic): title: "Public documents" description: "Determine whether the document
505
+ # should be publicly visible" expression: "document.type != 'private' &&
506
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
507
+ # string" description: "Create a notification string with a timestamp."
508
+ # expression: "'New message received at ' + string(document.create_time)" The
509
+ # exact variables and functions that may be referenced within an expression are
510
+ # determined by the service that evaluates it. See the service documentation for
511
+ # additional information.
512
+ class Expr
513
+ include Google::Apis::Core::Hashable
514
+
515
+ # Optional. Description of the expression. This is a longer text which describes
516
+ # the expression, e.g. when hovered over it in a UI.
517
+ # Corresponds to the JSON property `description`
518
+ # @return [String]
519
+ attr_accessor :description
520
+
521
+ # Textual representation of an expression in Common Expression Language syntax.
522
+ # Corresponds to the JSON property `expression`
523
+ # @return [String]
524
+ attr_accessor :expression
525
+
526
+ # Optional. String indicating the location of the expression for error reporting,
527
+ # e.g. a file name and a position in the file.
528
+ # Corresponds to the JSON property `location`
529
+ # @return [String]
530
+ attr_accessor :location
531
+
532
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
533
+ # This can be used e.g. in UIs which allow to enter the expression.
534
+ # Corresponds to the JSON property `title`
535
+ # @return [String]
536
+ attr_accessor :title
537
+
538
+ def initialize(**args)
539
+ update!(**args)
540
+ end
541
+
542
+ # Update properties of this object
543
+ def update!(**args)
544
+ @description = args[:description] if args.key?(:description)
545
+ @expression = args[:expression] if args.key?(:expression)
546
+ @location = args[:location] if args.key?(:location)
547
+ @title = args[:title] if args.key?(:title)
548
+ end
549
+ end
550
+
551
+ # Requestion options for importing looker data to an Instance
552
+ class ImportInstanceRequest
553
+ include Google::Apis::Core::Hashable
554
+
555
+ # Path to the import folder in Google Cloud Storage, in the form `gs://
556
+ # bucketName/folderName`.
557
+ # Corresponds to the JSON property `gcsUri`
558
+ # @return [String]
559
+ attr_accessor :gcs_uri
560
+
561
+ def initialize(**args)
562
+ update!(**args)
563
+ end
564
+
565
+ # Update properties of this object
566
+ def update!(**args)
567
+ @gcs_uri = args[:gcs_uri] if args.key?(:gcs_uri)
568
+ end
569
+ end
570
+
571
+ # A Looker instance.
572
+ class Instance
573
+ include Google::Apis::Core::Hashable
574
+
575
+ # Looker instance Admin settings fields.
576
+ # Corresponds to the JSON property `adminSettings`
577
+ # @return [Google::Apis::LookerV1::AdminSettings]
578
+ attr_accessor :admin_settings
579
+
580
+ # Network name in the consumer project. Format: `projects/`project`/global/
581
+ # networks/`network``. Note that the consumer network may be in a different GCP
582
+ # project than the consumer project that is hosting the Looker Instance.
583
+ # Corresponds to the JSON property `consumerNetwork`
584
+ # @return [String]
585
+ attr_accessor :consumer_network
586
+
587
+ # Output only. The time when the Looker instance provisioning was first
588
+ # requested.
589
+ # Corresponds to the JSON property `createTime`
590
+ # @return [String]
591
+ attr_accessor :create_time
592
+
593
+ # Custom domain information.
594
+ # Corresponds to the JSON property `customDomain`
595
+ # @return [Google::Apis::LookerV1::CustomDomain]
596
+ attr_accessor :custom_domain
597
+
598
+ # Specifies the maintenance denial period.
599
+ # Corresponds to the JSON property `denyMaintenancePeriod`
600
+ # @return [Google::Apis::LookerV1::DenyMaintenancePeriod]
601
+ attr_accessor :deny_maintenance_period
602
+
603
+ # Output only. Public Egress IP (IPv4).
604
+ # Corresponds to the JSON property `egressPublicIp`
605
+ # @return [String]
606
+ attr_accessor :egress_public_ip
607
+
608
+ # Encryption configuration (i.e. CMEK).
609
+ # Corresponds to the JSON property `encryptionConfig`
610
+ # @return [Google::Apis::LookerV1::EncryptionConfig]
611
+ attr_accessor :encryption_config
612
+
613
+ # Output only. Private Ingress IP (IPv4).
614
+ # Corresponds to the JSON property `ingressPrivateIp`
615
+ # @return [String]
616
+ attr_accessor :ingress_private_ip
617
+
618
+ # Output only. Public Ingress IP (IPv4).
619
+ # Corresponds to the JSON property `ingressPublicIp`
620
+ # @return [String]
621
+ attr_accessor :ingress_public_ip
622
+
623
+ # Specifies the maintenance denial period.
624
+ # Corresponds to the JSON property `lastDenyMaintenancePeriod`
625
+ # @return [Google::Apis::LookerV1::DenyMaintenancePeriod]
626
+ attr_accessor :last_deny_maintenance_period
627
+
628
+ # Output only. Looker instance URI which can be used to access the Looker
629
+ # Instance UI.
630
+ # Corresponds to the JSON property `lookerUri`
631
+ # @return [String]
632
+ attr_accessor :looker_uri
633
+
634
+ # Output only. The Looker version that the instance is using.
635
+ # Corresponds to the JSON property `lookerVersion`
636
+ # @return [String]
637
+ attr_accessor :looker_version
638
+
639
+ # Published upcoming future maintenance schedule.
640
+ # Corresponds to the JSON property `maintenanceSchedule`
641
+ # @return [Google::Apis::LookerV1::MaintenanceSchedule]
642
+ attr_accessor :maintenance_schedule
643
+
644
+ # Specifies the recurring maintenance window.
645
+ # Corresponds to the JSON property `maintenanceWindow`
646
+ # @return [Google::Apis::LookerV1::MaintenanceWindow]
647
+ attr_accessor :maintenance_window
648
+
649
+ # Output only. Format: `projects/`project`/locations/`location`/instances/`
650
+ # instance``.
651
+ # Corresponds to the JSON property `name`
652
+ # @return [String]
653
+ attr_accessor :name
654
+
655
+ # Looker instance OAuth login settings.
656
+ # Corresponds to the JSON property `oauthConfig`
657
+ # @return [Google::Apis::LookerV1::OAuthConfig]
658
+ attr_accessor :oauth_config
659
+
660
+ # Platform edition.
661
+ # Corresponds to the JSON property `platformEdition`
662
+ # @return [String]
663
+ attr_accessor :platform_edition
664
+
665
+ # Whether private IP is enabled on the Looker instance.
666
+ # Corresponds to the JSON property `privateIpEnabled`
667
+ # @return [Boolean]
668
+ attr_accessor :private_ip_enabled
669
+ alias_method :private_ip_enabled?, :private_ip_enabled
670
+
671
+ # Whether public IP is enabled on the Looker instance.
672
+ # Corresponds to the JSON property `publicIpEnabled`
673
+ # @return [Boolean]
674
+ attr_accessor :public_ip_enabled
675
+ alias_method :public_ip_enabled?, :public_ip_enabled
676
+
677
+ # Name of a reserved IP address range within the Instance.consumer_network, to
678
+ # be used for private services access connection. May or may not be specified in
679
+ # a create request.
680
+ # Corresponds to the JSON property `reservedRange`
681
+ # @return [String]
682
+ attr_accessor :reserved_range
683
+
684
+ # Output only. The state of the instance.
685
+ # Corresponds to the JSON property `state`
686
+ # @return [String]
687
+ attr_accessor :state
688
+
689
+ # Output only. The time when the Looker instance was last updated.
690
+ # Corresponds to the JSON property `updateTime`
691
+ # @return [String]
692
+ attr_accessor :update_time
693
+
694
+ # Metadata about users for a Looker instance.
695
+ # Corresponds to the JSON property `userMetadata`
696
+ # @return [Google::Apis::LookerV1::UserMetadata]
697
+ attr_accessor :user_metadata
698
+
699
+ def initialize(**args)
700
+ update!(**args)
701
+ end
702
+
703
+ # Update properties of this object
704
+ def update!(**args)
705
+ @admin_settings = args[:admin_settings] if args.key?(:admin_settings)
706
+ @consumer_network = args[:consumer_network] if args.key?(:consumer_network)
707
+ @create_time = args[:create_time] if args.key?(:create_time)
708
+ @custom_domain = args[:custom_domain] if args.key?(:custom_domain)
709
+ @deny_maintenance_period = args[:deny_maintenance_period] if args.key?(:deny_maintenance_period)
710
+ @egress_public_ip = args[:egress_public_ip] if args.key?(:egress_public_ip)
711
+ @encryption_config = args[:encryption_config] if args.key?(:encryption_config)
712
+ @ingress_private_ip = args[:ingress_private_ip] if args.key?(:ingress_private_ip)
713
+ @ingress_public_ip = args[:ingress_public_ip] if args.key?(:ingress_public_ip)
714
+ @last_deny_maintenance_period = args[:last_deny_maintenance_period] if args.key?(:last_deny_maintenance_period)
715
+ @looker_uri = args[:looker_uri] if args.key?(:looker_uri)
716
+ @looker_version = args[:looker_version] if args.key?(:looker_version)
717
+ @maintenance_schedule = args[:maintenance_schedule] if args.key?(:maintenance_schedule)
718
+ @maintenance_window = args[:maintenance_window] if args.key?(:maintenance_window)
719
+ @name = args[:name] if args.key?(:name)
720
+ @oauth_config = args[:oauth_config] if args.key?(:oauth_config)
721
+ @platform_edition = args[:platform_edition] if args.key?(:platform_edition)
722
+ @private_ip_enabled = args[:private_ip_enabled] if args.key?(:private_ip_enabled)
723
+ @public_ip_enabled = args[:public_ip_enabled] if args.key?(:public_ip_enabled)
724
+ @reserved_range = args[:reserved_range] if args.key?(:reserved_range)
725
+ @state = args[:state] if args.key?(:state)
726
+ @update_time = args[:update_time] if args.key?(:update_time)
727
+ @user_metadata = args[:user_metadata] if args.key?(:user_metadata)
728
+ end
729
+ end
730
+
731
+ # Response from ListInstances.
732
+ class ListInstancesResponse
733
+ include Google::Apis::Core::Hashable
734
+
735
+ # The list of instances matching the request filters, up to the requested
736
+ # ListInstancesRequest.pageSize.
737
+ # Corresponds to the JSON property `instances`
738
+ # @return [Array<Google::Apis::LookerV1::Instance>]
739
+ attr_accessor :instances
740
+
741
+ # If provided, a page token that can look up the next ListInstancesRequest.
742
+ # pageSize results. If empty, the results list is exhausted.
743
+ # Corresponds to the JSON property `nextPageToken`
744
+ # @return [String]
745
+ attr_accessor :next_page_token
746
+
747
+ # Locations that could not be reached.
748
+ # Corresponds to the JSON property `unreachable`
749
+ # @return [Array<String>]
750
+ attr_accessor :unreachable
751
+
752
+ def initialize(**args)
753
+ update!(**args)
754
+ end
755
+
756
+ # Update properties of this object
757
+ def update!(**args)
758
+ @instances = args[:instances] if args.key?(:instances)
759
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
760
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
761
+ end
762
+ end
763
+
764
+ # The response message for Locations.ListLocations.
765
+ class ListLocationsResponse
766
+ include Google::Apis::Core::Hashable
767
+
768
+ # A list of locations that matches the specified filter in the request.
769
+ # Corresponds to the JSON property `locations`
770
+ # @return [Array<Google::Apis::LookerV1::Location>]
771
+ attr_accessor :locations
772
+
773
+ # The standard List next-page token.
774
+ # Corresponds to the JSON property `nextPageToken`
775
+ # @return [String]
776
+ attr_accessor :next_page_token
777
+
778
+ def initialize(**args)
779
+ update!(**args)
780
+ end
781
+
782
+ # Update properties of this object
783
+ def update!(**args)
784
+ @locations = args[:locations] if args.key?(:locations)
785
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
786
+ end
787
+ end
788
+
789
+ # The response message for Operations.ListOperations.
790
+ class ListOperationsResponse
791
+ include Google::Apis::Core::Hashable
792
+
793
+ # The standard List next-page token.
794
+ # Corresponds to the JSON property `nextPageToken`
795
+ # @return [String]
796
+ attr_accessor :next_page_token
797
+
798
+ # A list of operations that matches the specified filter in the request.
799
+ # Corresponds to the JSON property `operations`
800
+ # @return [Array<Google::Apis::LookerV1::Operation>]
801
+ attr_accessor :operations
802
+
803
+ def initialize(**args)
804
+ update!(**args)
805
+ end
806
+
807
+ # Update properties of this object
808
+ def update!(**args)
809
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
810
+ @operations = args[:operations] if args.key?(:operations)
811
+ end
812
+ end
813
+
814
+ # A resource that represents a Google Cloud location.
815
+ class Location
816
+ include Google::Apis::Core::Hashable
817
+
818
+ # The friendly name for this location, typically a nearby city name. For example,
819
+ # "Tokyo".
820
+ # Corresponds to the JSON property `displayName`
821
+ # @return [String]
822
+ attr_accessor :display_name
823
+
824
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
825
+ # region": "us-east1"`
826
+ # Corresponds to the JSON property `labels`
827
+ # @return [Hash<String,String>]
828
+ attr_accessor :labels
829
+
830
+ # The canonical id for this location. For example: `"us-east1"`.
831
+ # Corresponds to the JSON property `locationId`
832
+ # @return [String]
833
+ attr_accessor :location_id
834
+
835
+ # Service-specific metadata. For example the available capacity at the given
836
+ # location.
837
+ # Corresponds to the JSON property `metadata`
838
+ # @return [Hash<String,Object>]
839
+ attr_accessor :metadata
840
+
841
+ # Resource name for the location, which may vary between implementations. For
842
+ # example: `"projects/example-project/locations/us-east1"`
843
+ # Corresponds to the JSON property `name`
844
+ # @return [String]
845
+ attr_accessor :name
846
+
847
+ def initialize(**args)
848
+ update!(**args)
849
+ end
850
+
851
+ # Update properties of this object
852
+ def update!(**args)
853
+ @display_name = args[:display_name] if args.key?(:display_name)
854
+ @labels = args[:labels] if args.key?(:labels)
855
+ @location_id = args[:location_id] if args.key?(:location_id)
856
+ @metadata = args[:metadata] if args.key?(:metadata)
857
+ @name = args[:name] if args.key?(:name)
858
+ end
859
+ end
860
+
861
+ # Published upcoming future maintenance schedule.
862
+ class MaintenanceSchedule
863
+ include Google::Apis::Core::Hashable
864
+
865
+ # The scheduled end time for the maintenance.
866
+ # Corresponds to the JSON property `endTime`
867
+ # @return [String]
868
+ attr_accessor :end_time
869
+
870
+ # The scheduled start time for the maintenance.
871
+ # Corresponds to the JSON property `startTime`
872
+ # @return [String]
873
+ attr_accessor :start_time
874
+
875
+ def initialize(**args)
876
+ update!(**args)
877
+ end
878
+
879
+ # Update properties of this object
880
+ def update!(**args)
881
+ @end_time = args[:end_time] if args.key?(:end_time)
882
+ @start_time = args[:start_time] if args.key?(:start_time)
883
+ end
884
+ end
885
+
886
+ # Specifies the recurring maintenance window.
887
+ class MaintenanceWindow
888
+ include Google::Apis::Core::Hashable
889
+
890
+ # Required. Day of the week for this MaintenanceWindow (in UTC).
891
+ # Corresponds to the JSON property `dayOfWeek`
892
+ # @return [String]
893
+ attr_accessor :day_of_week
894
+
895
+ # Represents a time of day. The date and time zone are either not significant or
896
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
897
+ # types are google.type.Date and `google.protobuf.Timestamp`.
898
+ # Corresponds to the JSON property `startTime`
899
+ # @return [Google::Apis::LookerV1::TimeOfDay]
900
+ attr_accessor :start_time
901
+
902
+ def initialize(**args)
903
+ update!(**args)
904
+ end
905
+
906
+ # Update properties of this object
907
+ def update!(**args)
908
+ @day_of_week = args[:day_of_week] if args.key?(:day_of_week)
909
+ @start_time = args[:start_time] if args.key?(:start_time)
910
+ end
911
+ end
912
+
913
+ # Looker instance OAuth login settings.
914
+ class OAuthConfig
915
+ include Google::Apis::Core::Hashable
916
+
917
+ # Input only. Client ID from an external OAuth application. This is an input-
918
+ # only field, and thus will not be set in any responses.
919
+ # Corresponds to the JSON property `clientId`
920
+ # @return [String]
921
+ attr_accessor :client_id
922
+
923
+ # Input only. Client secret from an external OAuth application. This is an input-
924
+ # only field, and thus will not be set in any responses.
925
+ # Corresponds to the JSON property `clientSecret`
926
+ # @return [String]
927
+ attr_accessor :client_secret
928
+
929
+ def initialize(**args)
930
+ update!(**args)
931
+ end
932
+
933
+ # Update properties of this object
934
+ def update!(**args)
935
+ @client_id = args[:client_id] if args.key?(:client_id)
936
+ @client_secret = args[:client_secret] if args.key?(:client_secret)
937
+ end
938
+ end
939
+
940
+ # This resource represents a long-running operation that is the result of a
941
+ # network API call.
942
+ class Operation
943
+ include Google::Apis::Core::Hashable
944
+
945
+ # If the value is `false`, it means the operation is still in progress. If `true`
946
+ # , the operation is completed, and either `error` or `response` is available.
947
+ # Corresponds to the JSON property `done`
948
+ # @return [Boolean]
949
+ attr_accessor :done
950
+ alias_method :done?, :done
951
+
952
+ # The `Status` type defines a logical error model that is suitable for different
953
+ # programming environments, including REST APIs and RPC APIs. It is used by [
954
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
955
+ # data: error code, error message, and error details. You can find out more
956
+ # about this error model and how to work with it in the [API Design Guide](https:
957
+ # //cloud.google.com/apis/design/errors).
958
+ # Corresponds to the JSON property `error`
959
+ # @return [Google::Apis::LookerV1::Status]
960
+ attr_accessor :error
961
+
962
+ # Service-specific metadata associated with the operation. It typically contains
963
+ # progress information and common metadata such as create time. Some services
964
+ # might not provide such metadata. Any method that returns a long-running
965
+ # operation should document the metadata type, if any.
966
+ # Corresponds to the JSON property `metadata`
967
+ # @return [Hash<String,Object>]
968
+ attr_accessor :metadata
969
+
970
+ # The server-assigned name, which is only unique within the same service that
971
+ # originally returns it. If you use the default HTTP mapping, the `name` should
972
+ # be a resource name ending with `operations/`unique_id``.
973
+ # Corresponds to the JSON property `name`
974
+ # @return [String]
975
+ attr_accessor :name
976
+
977
+ # The normal, successful response of the operation. If the original method
978
+ # returns no data on success, such as `Delete`, the response is `google.protobuf.
979
+ # Empty`. If the original method is standard `Get`/`Create`/`Update`, the
980
+ # response should be the resource. For other methods, the response should have
981
+ # the type `XxxResponse`, where `Xxx` is the original method name. For example,
982
+ # if the original method name is `TakeSnapshot()`, the inferred response type is
983
+ # `TakeSnapshotResponse`.
984
+ # Corresponds to the JSON property `response`
985
+ # @return [Hash<String,Object>]
986
+ attr_accessor :response
987
+
988
+ def initialize(**args)
989
+ update!(**args)
990
+ end
991
+
992
+ # Update properties of this object
993
+ def update!(**args)
994
+ @done = args[:done] if args.key?(:done)
995
+ @error = args[:error] if args.key?(:error)
996
+ @metadata = args[:metadata] if args.key?(:metadata)
997
+ @name = args[:name] if args.key?(:name)
998
+ @response = args[:response] if args.key?(:response)
999
+ end
1000
+ end
1001
+
1002
+ # Represents the metadata of the long-running operation.
1003
+ class OperationMetadata
1004
+ include Google::Apis::Core::Hashable
1005
+
1006
+ # API version used to start the operation.
1007
+ # Corresponds to the JSON property `apiVersion`
1008
+ # @return [String]
1009
+ attr_accessor :api_version
1010
+
1011
+ # The time the operation was created.
1012
+ # Corresponds to the JSON property `createTime`
1013
+ # @return [String]
1014
+ attr_accessor :create_time
1015
+
1016
+ # The time the operation finished running.
1017
+ # Corresponds to the JSON property `endTime`
1018
+ # @return [String]
1019
+ attr_accessor :end_time
1020
+
1021
+ # Identifies whether the user has requested cancellation of the operation.
1022
+ # Operations that have successfully been cancelled have Operation.error value
1023
+ # with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
1024
+ # Corresponds to the JSON property `requestedCancellation`
1025
+ # @return [Boolean]
1026
+ attr_accessor :requested_cancellation
1027
+ alias_method :requested_cancellation?, :requested_cancellation
1028
+
1029
+ # Human-readable status of the operation, if any.
1030
+ # Corresponds to the JSON property `statusMessage`
1031
+ # @return [String]
1032
+ attr_accessor :status_message
1033
+
1034
+ # Server-defined resource path for the target of the operation.
1035
+ # Corresponds to the JSON property `target`
1036
+ # @return [String]
1037
+ attr_accessor :target
1038
+
1039
+ # Name of the verb executed by the operation.
1040
+ # Corresponds to the JSON property `verb`
1041
+ # @return [String]
1042
+ attr_accessor :verb
1043
+
1044
+ def initialize(**args)
1045
+ update!(**args)
1046
+ end
1047
+
1048
+ # Update properties of this object
1049
+ def update!(**args)
1050
+ @api_version = args[:api_version] if args.key?(:api_version)
1051
+ @create_time = args[:create_time] if args.key?(:create_time)
1052
+ @end_time = args[:end_time] if args.key?(:end_time)
1053
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
1054
+ @status_message = args[:status_message] if args.key?(:status_message)
1055
+ @target = args[:target] if args.key?(:target)
1056
+ @verb = args[:verb] if args.key?(:verb)
1057
+ end
1058
+ end
1059
+
1060
+ # An Identity and Access Management (IAM) policy, which specifies access
1061
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1062
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
1063
+ # Principals can be user accounts, service accounts, Google groups, and domains (
1064
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
1065
+ # an IAM predefined role or a user-created custom role. For some types of Google
1066
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
1067
+ # logical expression that allows access to a resource only if the expression
1068
+ # evaluates to `true`. A condition can add constraints based on attributes of
1069
+ # the request, the resource, or both. To learn which resources support
1070
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1071
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
1072
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1073
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1074
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1075
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1076
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
1077
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1078
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
1079
+ # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
1080
+ # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
1081
+ # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
1082
+ # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
1083
+ # title: expirable access description: Does not grant access after Sep 2020
1084
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
1085
+ # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
1086
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1087
+ class Policy
1088
+ include Google::Apis::Core::Hashable
1089
+
1090
+ # Specifies cloud audit logging configuration for this policy.
1091
+ # Corresponds to the JSON property `auditConfigs`
1092
+ # @return [Array<Google::Apis::LookerV1::AuditConfig>]
1093
+ attr_accessor :audit_configs
1094
+
1095
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
1096
+ # specify a `condition` that determines how and when the `bindings` are applied.
1097
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
1098
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
1099
+ # can be Google groups. Each occurrence of a principal counts towards these
1100
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
1101
+ # example.com`, and not to any other principal, then you can add another 1,450
1102
+ # principals to the `bindings` in the `Policy`.
1103
+ # Corresponds to the JSON property `bindings`
1104
+ # @return [Array<Google::Apis::LookerV1::Binding>]
1105
+ attr_accessor :bindings
1106
+
1107
+ # `etag` is used for optimistic concurrency control as a way to help prevent
1108
+ # simultaneous updates of a policy from overwriting each other. It is strongly
1109
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
1110
+ # to perform policy updates in order to avoid race conditions: An `etag` is
1111
+ # returned in the response to `getIamPolicy`, and systems are expected to put
1112
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
1113
+ # applied to the same version of the policy. **Important:** If you use IAM
1114
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
1115
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
1116
+ # with a version `1` policy, and all of the conditions in the version `3` policy
1117
+ # are lost.
1118
+ # Corresponds to the JSON property `etag`
1119
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1120
+ # @return [String]
1121
+ attr_accessor :etag
1122
+
1123
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
1124
+ # Requests that specify an invalid value are rejected. Any operation that
1125
+ # affects conditional role bindings must specify version `3`. This requirement
1126
+ # applies to the following operations: * Getting a policy that includes a
1127
+ # conditional role binding * Adding a conditional role binding to a policy *
1128
+ # Changing a conditional role binding in a policy * Removing any role binding,
1129
+ # with or without a condition, from a policy that includes conditions **
1130
+ # Important:** If you use IAM Conditions, you must include the `etag` field
1131
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
1132
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
1133
+ # conditions in the version `3` policy are lost. If a policy does not include
1134
+ # any conditions, operations on that policy may specify any valid version or
1135
+ # leave the field unset. To learn which resources support conditions in their
1136
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
1137
+ # conditions/resource-policies).
1138
+ # Corresponds to the JSON property `version`
1139
+ # @return [Fixnum]
1140
+ attr_accessor :version
1141
+
1142
+ def initialize(**args)
1143
+ update!(**args)
1144
+ end
1145
+
1146
+ # Update properties of this object
1147
+ def update!(**args)
1148
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1149
+ @bindings = args[:bindings] if args.key?(:bindings)
1150
+ @etag = args[:etag] if args.key?(:etag)
1151
+ @version = args[:version] if args.key?(:version)
1152
+ end
1153
+ end
1154
+
1155
+ # Request options for restarting an instance.
1156
+ class RestartInstanceRequest
1157
+ include Google::Apis::Core::Hashable
1158
+
1159
+ def initialize(**args)
1160
+ update!(**args)
1161
+ end
1162
+
1163
+ # Update properties of this object
1164
+ def update!(**args)
1165
+ end
1166
+ end
1167
+
1168
+ # Request message for `SetIamPolicy` method.
1169
+ class SetIamPolicyRequest
1170
+ include Google::Apis::Core::Hashable
1171
+
1172
+ # An Identity and Access Management (IAM) policy, which specifies access
1173
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1174
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
1175
+ # Principals can be user accounts, service accounts, Google groups, and domains (
1176
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
1177
+ # an IAM predefined role or a user-created custom role. For some types of Google
1178
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
1179
+ # logical expression that allows access to a resource only if the expression
1180
+ # evaluates to `true`. A condition can add constraints based on attributes of
1181
+ # the request, the resource, or both. To learn which resources support
1182
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1183
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
1184
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1185
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1186
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1187
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1188
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
1189
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1190
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
1191
+ # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
1192
+ # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
1193
+ # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
1194
+ # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
1195
+ # title: expirable access description: Does not grant access after Sep 2020
1196
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
1197
+ # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
1198
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1199
+ # Corresponds to the JSON property `policy`
1200
+ # @return [Google::Apis::LookerV1::Policy]
1201
+ attr_accessor :policy
1202
+
1203
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
1204
+ # the fields in the mask will be modified. If no mask is provided, the following
1205
+ # default mask is used: `paths: "bindings, etag"`
1206
+ # Corresponds to the JSON property `updateMask`
1207
+ # @return [String]
1208
+ attr_accessor :update_mask
1209
+
1210
+ def initialize(**args)
1211
+ update!(**args)
1212
+ end
1213
+
1214
+ # Update properties of this object
1215
+ def update!(**args)
1216
+ @policy = args[:policy] if args.key?(:policy)
1217
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1218
+ end
1219
+ end
1220
+
1221
+ # The `Status` type defines a logical error model that is suitable for different
1222
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1223
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1224
+ # data: error code, error message, and error details. You can find out more
1225
+ # about this error model and how to work with it in the [API Design Guide](https:
1226
+ # //cloud.google.com/apis/design/errors).
1227
+ class Status
1228
+ include Google::Apis::Core::Hashable
1229
+
1230
+ # The status code, which should be an enum value of google.rpc.Code.
1231
+ # Corresponds to the JSON property `code`
1232
+ # @return [Fixnum]
1233
+ attr_accessor :code
1234
+
1235
+ # A list of messages that carry the error details. There is a common set of
1236
+ # message types for APIs to use.
1237
+ # Corresponds to the JSON property `details`
1238
+ # @return [Array<Hash<String,Object>>]
1239
+ attr_accessor :details
1240
+
1241
+ # A developer-facing error message, which should be in English. Any user-facing
1242
+ # error message should be localized and sent in the google.rpc.Status.details
1243
+ # field, or localized by the client.
1244
+ # Corresponds to the JSON property `message`
1245
+ # @return [String]
1246
+ attr_accessor :message
1247
+
1248
+ def initialize(**args)
1249
+ update!(**args)
1250
+ end
1251
+
1252
+ # Update properties of this object
1253
+ def update!(**args)
1254
+ @code = args[:code] if args.key?(:code)
1255
+ @details = args[:details] if args.key?(:details)
1256
+ @message = args[:message] if args.key?(:message)
1257
+ end
1258
+ end
1259
+
1260
+ # Request message for `TestIamPermissions` method.
1261
+ class TestIamPermissionsRequest
1262
+ include Google::Apis::Core::Hashable
1263
+
1264
+ # The set of permissions to check for the `resource`. Permissions with wildcards
1265
+ # (such as `*` or `storage.*`) are not allowed. For more information see [IAM
1266
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
1267
+ # Corresponds to the JSON property `permissions`
1268
+ # @return [Array<String>]
1269
+ attr_accessor :permissions
1270
+
1271
+ def initialize(**args)
1272
+ update!(**args)
1273
+ end
1274
+
1275
+ # Update properties of this object
1276
+ def update!(**args)
1277
+ @permissions = args[:permissions] if args.key?(:permissions)
1278
+ end
1279
+ end
1280
+
1281
+ # Response message for `TestIamPermissions` method.
1282
+ class TestIamPermissionsResponse
1283
+ include Google::Apis::Core::Hashable
1284
+
1285
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
1286
+ # Corresponds to the JSON property `permissions`
1287
+ # @return [Array<String>]
1288
+ attr_accessor :permissions
1289
+
1290
+ def initialize(**args)
1291
+ update!(**args)
1292
+ end
1293
+
1294
+ # Update properties of this object
1295
+ def update!(**args)
1296
+ @permissions = args[:permissions] if args.key?(:permissions)
1297
+ end
1298
+ end
1299
+
1300
+ # Represents a time of day. The date and time zone are either not significant or
1301
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
1302
+ # types are google.type.Date and `google.protobuf.Timestamp`.
1303
+ class TimeOfDay
1304
+ include Google::Apis::Core::Hashable
1305
+
1306
+ # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to
1307
+ # allow the value "24:00:00" for scenarios like business closing time.
1308
+ # Corresponds to the JSON property `hours`
1309
+ # @return [Fixnum]
1310
+ attr_accessor :hours
1311
+
1312
+ # Minutes of hour of day. Must be from 0 to 59.
1313
+ # Corresponds to the JSON property `minutes`
1314
+ # @return [Fixnum]
1315
+ attr_accessor :minutes
1316
+
1317
+ # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
1318
+ # Corresponds to the JSON property `nanos`
1319
+ # @return [Fixnum]
1320
+ attr_accessor :nanos
1321
+
1322
+ # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
1323
+ # allow the value 60 if it allows leap-seconds.
1324
+ # Corresponds to the JSON property `seconds`
1325
+ # @return [Fixnum]
1326
+ attr_accessor :seconds
1327
+
1328
+ def initialize(**args)
1329
+ update!(**args)
1330
+ end
1331
+
1332
+ # Update properties of this object
1333
+ def update!(**args)
1334
+ @hours = args[:hours] if args.key?(:hours)
1335
+ @minutes = args[:minutes] if args.key?(:minutes)
1336
+ @nanos = args[:nanos] if args.key?(:nanos)
1337
+ @seconds = args[:seconds] if args.key?(:seconds)
1338
+ end
1339
+ end
1340
+
1341
+ # Metadata about users for a Looker instance.
1342
+ class UserMetadata
1343
+ include Google::Apis::Core::Hashable
1344
+
1345
+ # Optional. The number of additional developer users the instance owner has
1346
+ # purchased.
1347
+ # Corresponds to the JSON property `additionalDeveloperUserCount`
1348
+ # @return [Fixnum]
1349
+ attr_accessor :additional_developer_user_count
1350
+
1351
+ # Optional. The number of additional standard users the instance owner has
1352
+ # purchased.
1353
+ # Corresponds to the JSON property `additionalStandardUserCount`
1354
+ # @return [Fixnum]
1355
+ attr_accessor :additional_standard_user_count
1356
+
1357
+ # Optional. The number of additional viewer users the instance owner has
1358
+ # purchased.
1359
+ # Corresponds to the JSON property `additionalViewerUserCount`
1360
+ # @return [Fixnum]
1361
+ attr_accessor :additional_viewer_user_count
1362
+
1363
+ def initialize(**args)
1364
+ update!(**args)
1365
+ end
1366
+
1367
+ # Update properties of this object
1368
+ def update!(**args)
1369
+ @additional_developer_user_count = args[:additional_developer_user_count] if args.key?(:additional_developer_user_count)
1370
+ @additional_standard_user_count = args[:additional_standard_user_count] if args.key?(:additional_standard_user_count)
1371
+ @additional_viewer_user_count = args[:additional_viewer_user_count] if args.key?(:additional_viewer_user_count)
1372
+ end
1373
+ end
1374
+ end
1375
+ end
1376
+ end