google-apis-metastore_v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1689 @@
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 MetastoreV1
24
+
25
+ # Specifies the audit configuration for a service. The configuration determines
26
+ # which permission types are logged, and what identities, if any, are exempted
27
+ # from logging. An AuditConfig must have one or more AuditLogConfigs.If there
28
+ # are AuditConfigs for both allServices and a specific service, the union of the
29
+ # two AuditConfigs is used for that service: the log_types specified in each
30
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
31
+ # exempted.Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
32
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
33
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
34
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
35
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
36
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
37
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
38
+ # exempts jose@example.com from DATA_READ logging, and aliya@example.com from
39
+ # DATA_WRITE logging.
40
+ class AuditConfig
41
+ include Google::Apis::Core::Hashable
42
+
43
+ # The configuration for logging of each type of permission.
44
+ # Corresponds to the JSON property `auditLogConfigs`
45
+ # @return [Array<Google::Apis::MetastoreV1::AuditLogConfig>]
46
+ attr_accessor :audit_log_configs
47
+
48
+ # Specifies a service that will be enabled for audit logging. For example,
49
+ # storage.googleapis.com, cloudsql.googleapis.com. allServices is a special
50
+ # value that covers all services.
51
+ # Corresponds to the JSON property `service`
52
+ # @return [String]
53
+ attr_accessor :service
54
+
55
+ def initialize(**args)
56
+ update!(**args)
57
+ end
58
+
59
+ # Update properties of this object
60
+ def update!(**args)
61
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
62
+ @service = args[:service] if args.key?(:service)
63
+ end
64
+ end
65
+
66
+ # Provides the configuration for logging a type of permissions. Example: ` "
67
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
68
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
69
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
70
+ # DATA_READ logging.
71
+ class AuditLogConfig
72
+ include Google::Apis::Core::Hashable
73
+
74
+ # Specifies the identities that do not cause logging for this type of permission.
75
+ # Follows the same format of Binding.members.
76
+ # Corresponds to the JSON property `exemptedMembers`
77
+ # @return [Array<String>]
78
+ attr_accessor :exempted_members
79
+
80
+ # The log type that this config enables.
81
+ # Corresponds to the JSON property `logType`
82
+ # @return [String]
83
+ attr_accessor :log_type
84
+
85
+ def initialize(**args)
86
+ update!(**args)
87
+ end
88
+
89
+ # Update properties of this object
90
+ def update!(**args)
91
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
92
+ @log_type = args[:log_type] if args.key?(:log_type)
93
+ end
94
+ end
95
+
96
+ # Represents a backend metastore for the federation.
97
+ class BackendMetastore
98
+ include Google::Apis::Core::Hashable
99
+
100
+ # The type of the backend metastore.
101
+ # Corresponds to the JSON property `metastoreType`
102
+ # @return [String]
103
+ attr_accessor :metastore_type
104
+
105
+ # The relative resource name of the metastore that is being federated. The
106
+ # formats of the relative resource names for the currently supported metastores
107
+ # are listed below: Dataplex projects/`project_id`/locations/`location`/lakes/`
108
+ # lake_id` BigQuery projects/`project_id` Dataproc Metastore projects/`
109
+ # project_id`/locations/`location`/services/`service_id`
110
+ # Corresponds to the JSON property `name`
111
+ # @return [String]
112
+ attr_accessor :name
113
+
114
+ def initialize(**args)
115
+ update!(**args)
116
+ end
117
+
118
+ # Update properties of this object
119
+ def update!(**args)
120
+ @metastore_type = args[:metastore_type] if args.key?(:metastore_type)
121
+ @name = args[:name] if args.key?(:name)
122
+ end
123
+ end
124
+
125
+ # The details of a backup resource.
126
+ class Backup
127
+ include Google::Apis::Core::Hashable
128
+
129
+ # Output only. The time when the backup was started.
130
+ # Corresponds to the JSON property `createTime`
131
+ # @return [String]
132
+ attr_accessor :create_time
133
+
134
+ # The description of the backup.
135
+ # Corresponds to the JSON property `description`
136
+ # @return [String]
137
+ attr_accessor :description
138
+
139
+ # Output only. The time when the backup finished creating.
140
+ # Corresponds to the JSON property `endTime`
141
+ # @return [String]
142
+ attr_accessor :end_time
143
+
144
+ # Immutable. The relative resource name of the backup, in the following form:
145
+ # projects/`project_number`/locations/`location_id`/services/`service_id`/
146
+ # backups/`backup_id`
147
+ # Corresponds to the JSON property `name`
148
+ # @return [String]
149
+ attr_accessor :name
150
+
151
+ # Output only. Services that are restoring from the backup.
152
+ # Corresponds to the JSON property `restoringServices`
153
+ # @return [Array<String>]
154
+ attr_accessor :restoring_services
155
+
156
+ # A managed metastore service that serves metadata queries.
157
+ # Corresponds to the JSON property `serviceRevision`
158
+ # @return [Google::Apis::MetastoreV1::Service]
159
+ attr_accessor :service_revision
160
+
161
+ # Output only. The current state of the backup.
162
+ # Corresponds to the JSON property `state`
163
+ # @return [String]
164
+ attr_accessor :state
165
+
166
+ def initialize(**args)
167
+ update!(**args)
168
+ end
169
+
170
+ # Update properties of this object
171
+ def update!(**args)
172
+ @create_time = args[:create_time] if args.key?(:create_time)
173
+ @description = args[:description] if args.key?(:description)
174
+ @end_time = args[:end_time] if args.key?(:end_time)
175
+ @name = args[:name] if args.key?(:name)
176
+ @restoring_services = args[:restoring_services] if args.key?(:restoring_services)
177
+ @service_revision = args[:service_revision] if args.key?(:service_revision)
178
+ @state = args[:state] if args.key?(:state)
179
+ end
180
+ end
181
+
182
+ # Associates members, or principals, with a role.
183
+ class Binding
184
+ include Google::Apis::Core::Hashable
185
+
186
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
187
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
188
+ # documented at https://github.com/google/cel-spec.Example (Comparison): title: "
189
+ # Summary size limit" description: "Determines if a summary is less than 100
190
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
191
+ # Requestor is owner" description: "Determines if requestor is the document
192
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
193
+ # Logic): title: "Public documents" description: "Determine whether the document
194
+ # should be publicly visible" expression: "document.type != 'private' &&
195
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
196
+ # string" description: "Create a notification string with a timestamp."
197
+ # expression: "'New message received at ' + string(document.create_time)" The
198
+ # exact variables and functions that may be referenced within an expression are
199
+ # determined by the service that evaluates it. See the service documentation for
200
+ # additional information.
201
+ # Corresponds to the JSON property `condition`
202
+ # @return [Google::Apis::MetastoreV1::Expr]
203
+ attr_accessor :condition
204
+
205
+ # Specifies the principals requesting access for a Google Cloud resource.
206
+ # members can have the following values: allUsers: A special identifier that
207
+ # represents anyone who is on the internet; with or without a Google account.
208
+ # allAuthenticatedUsers: A special identifier that represents anyone who is
209
+ # authenticated with a Google account or a service account. Does not include
210
+ # identities that come from external identity providers (IdPs) through identity
211
+ # federation. user:`emailid`: An email address that represents a specific Google
212
+ # account. For example, alice@example.com . serviceAccount:`emailid`: An email
213
+ # address that represents a Google service account. For example, my-other-app@
214
+ # appspot.gserviceaccount.com. serviceAccount:`projectid`.svc.id.goog[`namespace`
215
+ # /`kubernetes-sa`]: An identifier for a Kubernetes service account (https://
216
+ # cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts).
217
+ # For example, my-project.svc.id.goog[my-namespace/my-kubernetes-sa]. group:`
218
+ # emailid`: An email address that represents a Google group. For example, admins@
219
+ # example.com. deleted:user:`emailid`?uid=`uniqueid`: An email address (plus
220
+ # unique identifier) representing a user that has been recently deleted. For
221
+ # example, alice@example.com?uid=123456789012345678901. If the user is recovered,
222
+ # this value reverts to user:`emailid` and the recovered user retains the role
223
+ # in the binding. deleted:serviceAccount:`emailid`?uid=`uniqueid`: An email
224
+ # address (plus unique identifier) representing a service account that has been
225
+ # recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=
226
+ # 123456789012345678901. If the service account is undeleted, this value reverts
227
+ # to serviceAccount:`emailid` and the undeleted service account retains the role
228
+ # in the binding. deleted:group:`emailid`?uid=`uniqueid`: An email address (plus
229
+ # unique identifier) representing a Google group that has been recently deleted.
230
+ # For example, admins@example.com?uid=123456789012345678901. If the group is
231
+ # recovered, this value reverts to group:`emailid` and the recovered group
232
+ # retains the role in the binding. domain:`domain`: The G Suite domain (primary)
233
+ # that represents all the users of that domain. For example, google.com or
234
+ # example.com.
235
+ # Corresponds to the JSON property `members`
236
+ # @return [Array<String>]
237
+ attr_accessor :members
238
+
239
+ # Role that is assigned to the list of members, or principals. For example,
240
+ # roles/viewer, roles/editor, or roles/owner.
241
+ # Corresponds to the JSON property `role`
242
+ # @return [String]
243
+ attr_accessor :role
244
+
245
+ def initialize(**args)
246
+ update!(**args)
247
+ end
248
+
249
+ # Update properties of this object
250
+ def update!(**args)
251
+ @condition = args[:condition] if args.key?(:condition)
252
+ @members = args[:members] if args.key?(:members)
253
+ @role = args[:role] if args.key?(:role)
254
+ end
255
+ end
256
+
257
+ # The request message for Operations.CancelOperation.
258
+ class CancelOperationRequest
259
+ include Google::Apis::Core::Hashable
260
+
261
+ def initialize(**args)
262
+ update!(**args)
263
+ end
264
+
265
+ # Update properties of this object
266
+ def update!(**args)
267
+ end
268
+ end
269
+
270
+ # Contains information of the customer's network configurations.
271
+ class Consumer
272
+ include Google::Apis::Core::Hashable
273
+
274
+ # Output only. The URI of the endpoint used to access the metastore service.
275
+ # Corresponds to the JSON property `endpointUri`
276
+ # @return [String]
277
+ attr_accessor :endpoint_uri
278
+
279
+ # Immutable. The subnetwork of the customer project from which an IP address is
280
+ # reserved and used as the Dataproc Metastore service's endpoint. It is
281
+ # accessible to hosts in the subnet and to all hosts in a subnet in the same
282
+ # region and same network. There must be at least one IP address available in
283
+ # the subnet's primary range. The subnet is specified in the following form:
284
+ # projects/`project_number`/regions/`region_id`/subnetworks/`subnetwork_id`
285
+ # Corresponds to the JSON property `subnetwork`
286
+ # @return [String]
287
+ attr_accessor :subnetwork
288
+
289
+ def initialize(**args)
290
+ update!(**args)
291
+ end
292
+
293
+ # Update properties of this object
294
+ def update!(**args)
295
+ @endpoint_uri = args[:endpoint_uri] if args.key?(:endpoint_uri)
296
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
297
+ end
298
+ end
299
+
300
+ # A specification of the location of and metadata about a database dump from a
301
+ # relational database management system.
302
+ class DatabaseDump
303
+ include Google::Apis::Core::Hashable
304
+
305
+ # The type of the database.
306
+ # Corresponds to the JSON property `databaseType`
307
+ # @return [String]
308
+ attr_accessor :database_type
309
+
310
+ # A Cloud Storage object or folder URI that specifies the source from which to
311
+ # import metadata. It must begin with gs://.
312
+ # Corresponds to the JSON property `gcsUri`
313
+ # @return [String]
314
+ attr_accessor :gcs_uri
315
+
316
+ # The name of the source database.
317
+ # Corresponds to the JSON property `sourceDatabase`
318
+ # @return [String]
319
+ attr_accessor :source_database
320
+
321
+ # Optional. The type of the database dump. If unspecified, defaults to MYSQL.
322
+ # Corresponds to the JSON property `type`
323
+ # @return [String]
324
+ attr_accessor :type
325
+
326
+ def initialize(**args)
327
+ update!(**args)
328
+ end
329
+
330
+ # Update properties of this object
331
+ def update!(**args)
332
+ @database_type = args[:database_type] if args.key?(:database_type)
333
+ @gcs_uri = args[:gcs_uri] if args.key?(:gcs_uri)
334
+ @source_database = args[:source_database] if args.key?(:source_database)
335
+ @type = args[:type] if args.key?(:type)
336
+ end
337
+ end
338
+
339
+ # A generic empty message that you can re-use to avoid defining duplicated empty
340
+ # messages in your APIs. A typical example is to use it as the request or the
341
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
342
+ # protobuf.Empty) returns (google.protobuf.Empty); `
343
+ class Empty
344
+ include Google::Apis::Core::Hashable
345
+
346
+ def initialize(**args)
347
+ update!(**args)
348
+ end
349
+
350
+ # Update properties of this object
351
+ def update!(**args)
352
+ end
353
+ end
354
+
355
+ # Encryption settings for the service.
356
+ class EncryptionConfig
357
+ include Google::Apis::Core::Hashable
358
+
359
+ # The fully qualified customer provided Cloud KMS key name to use for customer
360
+ # data encryption, in the following form:projects/`project_number`/locations/`
361
+ # location_id`/keyRings/`key_ring_id`/cryptoKeys/`crypto_key_id`.
362
+ # Corresponds to the JSON property `kmsKey`
363
+ # @return [String]
364
+ attr_accessor :kms_key
365
+
366
+ def initialize(**args)
367
+ update!(**args)
368
+ end
369
+
370
+ # Update properties of this object
371
+ def update!(**args)
372
+ @kms_key = args[:kms_key] if args.key?(:kms_key)
373
+ end
374
+ end
375
+
376
+ # Request message for DataprocMetastore.ExportMetadata.
377
+ class ExportMetadataRequest
378
+ include Google::Apis::Core::Hashable
379
+
380
+ # Optional. The type of the database dump. If unspecified, defaults to MYSQL.
381
+ # Corresponds to the JSON property `databaseDumpType`
382
+ # @return [String]
383
+ attr_accessor :database_dump_type
384
+
385
+ # A Cloud Storage URI of a folder, in the format gs:///. A sub-folder containing
386
+ # exported files will be created below it.
387
+ # Corresponds to the JSON property `destinationGcsFolder`
388
+ # @return [String]
389
+ attr_accessor :destination_gcs_folder
390
+
391
+ # Optional. A request ID. Specify a unique request ID to allow the server to
392
+ # ignore the request if it has completed. The server will ignore subsequent
393
+ # requests that provide a duplicate request ID for at least 60 minutes after the
394
+ # first request.For example, if an initial request times out, followed by
395
+ # another request with the same request ID, the server ignores the second
396
+ # request to prevent the creation of duplicate commitments.The request ID must
397
+ # be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#
398
+ # Format). A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
399
+ # Corresponds to the JSON property `requestId`
400
+ # @return [String]
401
+ attr_accessor :request_id
402
+
403
+ def initialize(**args)
404
+ update!(**args)
405
+ end
406
+
407
+ # Update properties of this object
408
+ def update!(**args)
409
+ @database_dump_type = args[:database_dump_type] if args.key?(:database_dump_type)
410
+ @destination_gcs_folder = args[:destination_gcs_folder] if args.key?(:destination_gcs_folder)
411
+ @request_id = args[:request_id] if args.key?(:request_id)
412
+ end
413
+ end
414
+
415
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
416
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
417
+ # documented at https://github.com/google/cel-spec.Example (Comparison): title: "
418
+ # Summary size limit" description: "Determines if a summary is less than 100
419
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
420
+ # Requestor is owner" description: "Determines if requestor is the document
421
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
422
+ # Logic): title: "Public documents" description: "Determine whether the document
423
+ # should be publicly visible" expression: "document.type != 'private' &&
424
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
425
+ # string" description: "Create a notification string with a timestamp."
426
+ # expression: "'New message received at ' + string(document.create_time)" The
427
+ # exact variables and functions that may be referenced within an expression are
428
+ # determined by the service that evaluates it. See the service documentation for
429
+ # additional information.
430
+ class Expr
431
+ include Google::Apis::Core::Hashable
432
+
433
+ # Optional. Description of the expression. This is a longer text which describes
434
+ # the expression, e.g. when hovered over it in a UI.
435
+ # Corresponds to the JSON property `description`
436
+ # @return [String]
437
+ attr_accessor :description
438
+
439
+ # Textual representation of an expression in Common Expression Language syntax.
440
+ # Corresponds to the JSON property `expression`
441
+ # @return [String]
442
+ attr_accessor :expression
443
+
444
+ # Optional. String indicating the location of the expression for error reporting,
445
+ # e.g. a file name and a position in the file.
446
+ # Corresponds to the JSON property `location`
447
+ # @return [String]
448
+ attr_accessor :location
449
+
450
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
451
+ # This can be used e.g. in UIs which allow to enter the expression.
452
+ # Corresponds to the JSON property `title`
453
+ # @return [String]
454
+ attr_accessor :title
455
+
456
+ def initialize(**args)
457
+ update!(**args)
458
+ end
459
+
460
+ # Update properties of this object
461
+ def update!(**args)
462
+ @description = args[:description] if args.key?(:description)
463
+ @expression = args[:expression] if args.key?(:expression)
464
+ @location = args[:location] if args.key?(:location)
465
+ @title = args[:title] if args.key?(:title)
466
+ end
467
+ end
468
+
469
+ # Represents a federation of multiple backend metastores.
470
+ class Federation
471
+ include Google::Apis::Core::Hashable
472
+
473
+ # A map from BackendMetastore rank to BackendMetastores from which the
474
+ # federation service serves metadata at query time. The map key represents the
475
+ # order in which BackendMetastores should be evaluated to resolve database names
476
+ # at query time and should be greater than or equal to zero. A BackendMetastore
477
+ # with a lower number will be evaluated before a BackendMetastore with a higher
478
+ # number.
479
+ # Corresponds to the JSON property `backendMetastores`
480
+ # @return [Hash<String,Google::Apis::MetastoreV1::BackendMetastore>]
481
+ attr_accessor :backend_metastores
482
+
483
+ # Output only. The time when the metastore federation was created.
484
+ # Corresponds to the JSON property `createTime`
485
+ # @return [String]
486
+ attr_accessor :create_time
487
+
488
+ # Output only. The federation endpoint.
489
+ # Corresponds to the JSON property `endpointUri`
490
+ # @return [String]
491
+ attr_accessor :endpoint_uri
492
+
493
+ # User-defined labels for the metastore federation.
494
+ # Corresponds to the JSON property `labels`
495
+ # @return [Hash<String,String>]
496
+ attr_accessor :labels
497
+
498
+ # Immutable. The relative resource name of the federation, of the form: projects/
499
+ # `project_number`/locations/`location_id`/federations/`federation_id``.
500
+ # Corresponds to the JSON property `name`
501
+ # @return [String]
502
+ attr_accessor :name
503
+
504
+ # Output only. The current state of the federation.
505
+ # Corresponds to the JSON property `state`
506
+ # @return [String]
507
+ attr_accessor :state
508
+
509
+ # Output only. Additional information about the current state of the metastore
510
+ # federation, if available.
511
+ # Corresponds to the JSON property `stateMessage`
512
+ # @return [String]
513
+ attr_accessor :state_message
514
+
515
+ # Output only. The globally unique resource identifier of the metastore
516
+ # federation.
517
+ # Corresponds to the JSON property `uid`
518
+ # @return [String]
519
+ attr_accessor :uid
520
+
521
+ # Output only. The time when the metastore federation was last updated.
522
+ # Corresponds to the JSON property `updateTime`
523
+ # @return [String]
524
+ attr_accessor :update_time
525
+
526
+ # Immutable. The Apache Hive metastore version of the federation. All backend
527
+ # metastore versions must be compatible with the federation version.
528
+ # Corresponds to the JSON property `version`
529
+ # @return [String]
530
+ attr_accessor :version
531
+
532
+ def initialize(**args)
533
+ update!(**args)
534
+ end
535
+
536
+ # Update properties of this object
537
+ def update!(**args)
538
+ @backend_metastores = args[:backend_metastores] if args.key?(:backend_metastores)
539
+ @create_time = args[:create_time] if args.key?(:create_time)
540
+ @endpoint_uri = args[:endpoint_uri] if args.key?(:endpoint_uri)
541
+ @labels = args[:labels] if args.key?(:labels)
542
+ @name = args[:name] if args.key?(:name)
543
+ @state = args[:state] if args.key?(:state)
544
+ @state_message = args[:state_message] if args.key?(:state_message)
545
+ @uid = args[:uid] if args.key?(:uid)
546
+ @update_time = args[:update_time] if args.key?(:update_time)
547
+ @version = args[:version] if args.key?(:version)
548
+ end
549
+ end
550
+
551
+ # Specifies configuration information specific to running Hive metastore
552
+ # software as the metastore service.
553
+ class HiveMetastoreConfig
554
+ include Google::Apis::Core::Hashable
555
+
556
+ # A mapping of Hive metastore configuration key-value pairs to apply to the Hive
557
+ # metastore (configured in hive-site.xml). The mappings override system defaults
558
+ # (some keys cannot be overridden). These overrides are also applied to
559
+ # auxiliary versions and can be further customized in the auxiliary version's
560
+ # AuxiliaryVersionConfig.
561
+ # Corresponds to the JSON property `configOverrides`
562
+ # @return [Hash<String,String>]
563
+ attr_accessor :config_overrides
564
+
565
+ # Configuration information for a Kerberos principal.
566
+ # Corresponds to the JSON property `kerberosConfig`
567
+ # @return [Google::Apis::MetastoreV1::KerberosConfig]
568
+ attr_accessor :kerberos_config
569
+
570
+ # Immutable. The Hive metastore schema version.
571
+ # Corresponds to the JSON property `version`
572
+ # @return [String]
573
+ attr_accessor :version
574
+
575
+ def initialize(**args)
576
+ update!(**args)
577
+ end
578
+
579
+ # Update properties of this object
580
+ def update!(**args)
581
+ @config_overrides = args[:config_overrides] if args.key?(:config_overrides)
582
+ @kerberos_config = args[:kerberos_config] if args.key?(:kerberos_config)
583
+ @version = args[:version] if args.key?(:version)
584
+ end
585
+ end
586
+
587
+ # A specification of a supported version of the Hive Metastore software.
588
+ class HiveMetastoreVersion
589
+ include Google::Apis::Core::Hashable
590
+
591
+ # Whether version will be chosen by the server if a metastore service is created
592
+ # with a HiveMetastoreConfig that omits the version.
593
+ # Corresponds to the JSON property `isDefault`
594
+ # @return [Boolean]
595
+ attr_accessor :is_default
596
+ alias_method :is_default?, :is_default
597
+
598
+ # The semantic version of the Hive Metastore software.
599
+ # Corresponds to the JSON property `version`
600
+ # @return [String]
601
+ attr_accessor :version
602
+
603
+ def initialize(**args)
604
+ update!(**args)
605
+ end
606
+
607
+ # Update properties of this object
608
+ def update!(**args)
609
+ @is_default = args[:is_default] if args.key?(:is_default)
610
+ @version = args[:version] if args.key?(:version)
611
+ end
612
+ end
613
+
614
+ # Configuration information for a Kerberos principal.
615
+ class KerberosConfig
616
+ include Google::Apis::Core::Hashable
617
+
618
+ # A securely stored value.
619
+ # Corresponds to the JSON property `keytab`
620
+ # @return [Google::Apis::MetastoreV1::Secret]
621
+ attr_accessor :keytab
622
+
623
+ # A Cloud Storage URI that specifies the path to a krb5.conf file. It is of the
624
+ # form gs://`bucket_name`/path/to/krb5.conf, although the file does not need to
625
+ # be named krb5.conf explicitly.
626
+ # Corresponds to the JSON property `krb5ConfigGcsUri`
627
+ # @return [String]
628
+ attr_accessor :krb5_config_gcs_uri
629
+
630
+ # A Kerberos principal that exists in the both the keytab the KDC to
631
+ # authenticate as. A typical principal is of the form primary/instance@REALM,
632
+ # but there is no exact format.
633
+ # Corresponds to the JSON property `principal`
634
+ # @return [String]
635
+ attr_accessor :principal
636
+
637
+ def initialize(**args)
638
+ update!(**args)
639
+ end
640
+
641
+ # Update properties of this object
642
+ def update!(**args)
643
+ @keytab = args[:keytab] if args.key?(:keytab)
644
+ @krb5_config_gcs_uri = args[:krb5_config_gcs_uri] if args.key?(:krb5_config_gcs_uri)
645
+ @principal = args[:principal] if args.key?(:principal)
646
+ end
647
+ end
648
+
649
+ # Response message for DataprocMetastore.ListBackups.
650
+ class ListBackupsResponse
651
+ include Google::Apis::Core::Hashable
652
+
653
+ # The backups of the specified service.
654
+ # Corresponds to the JSON property `backups`
655
+ # @return [Array<Google::Apis::MetastoreV1::Backup>]
656
+ attr_accessor :backups
657
+
658
+ # A token that can be sent as page_token to retrieve the next page. If this
659
+ # field is omitted, there are no subsequent pages.
660
+ # Corresponds to the JSON property `nextPageToken`
661
+ # @return [String]
662
+ attr_accessor :next_page_token
663
+
664
+ # Locations that could not be reached.
665
+ # Corresponds to the JSON property `unreachable`
666
+ # @return [Array<String>]
667
+ attr_accessor :unreachable
668
+
669
+ def initialize(**args)
670
+ update!(**args)
671
+ end
672
+
673
+ # Update properties of this object
674
+ def update!(**args)
675
+ @backups = args[:backups] if args.key?(:backups)
676
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
677
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
678
+ end
679
+ end
680
+
681
+ # Response message for ListFederations
682
+ class ListFederationsResponse
683
+ include Google::Apis::Core::Hashable
684
+
685
+ # The services in the specified location.
686
+ # Corresponds to the JSON property `federations`
687
+ # @return [Array<Google::Apis::MetastoreV1::Federation>]
688
+ attr_accessor :federations
689
+
690
+ # A token that can be sent as page_token to retrieve the next page. If this
691
+ # field is omitted, there are no subsequent pages.
692
+ # Corresponds to the JSON property `nextPageToken`
693
+ # @return [String]
694
+ attr_accessor :next_page_token
695
+
696
+ # Locations that could not be reached.
697
+ # Corresponds to the JSON property `unreachable`
698
+ # @return [Array<String>]
699
+ attr_accessor :unreachable
700
+
701
+ def initialize(**args)
702
+ update!(**args)
703
+ end
704
+
705
+ # Update properties of this object
706
+ def update!(**args)
707
+ @federations = args[:federations] if args.key?(:federations)
708
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
709
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
710
+ end
711
+ end
712
+
713
+ # The response message for Locations.ListLocations.
714
+ class ListLocationsResponse
715
+ include Google::Apis::Core::Hashable
716
+
717
+ # A list of locations that matches the specified filter in the request.
718
+ # Corresponds to the JSON property `locations`
719
+ # @return [Array<Google::Apis::MetastoreV1::Location>]
720
+ attr_accessor :locations
721
+
722
+ # The standard List next-page token.
723
+ # Corresponds to the JSON property `nextPageToken`
724
+ # @return [String]
725
+ attr_accessor :next_page_token
726
+
727
+ def initialize(**args)
728
+ update!(**args)
729
+ end
730
+
731
+ # Update properties of this object
732
+ def update!(**args)
733
+ @locations = args[:locations] if args.key?(:locations)
734
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
735
+ end
736
+ end
737
+
738
+ # Response message for DataprocMetastore.ListMetadataImports.
739
+ class ListMetadataImportsResponse
740
+ include Google::Apis::Core::Hashable
741
+
742
+ # The imports in the specified service.
743
+ # Corresponds to the JSON property `metadataImports`
744
+ # @return [Array<Google::Apis::MetastoreV1::MetadataImport>]
745
+ attr_accessor :metadata_imports
746
+
747
+ # A token that can be sent as page_token to retrieve the next page. If this
748
+ # field is omitted, there are no subsequent pages.
749
+ # Corresponds to the JSON property `nextPageToken`
750
+ # @return [String]
751
+ attr_accessor :next_page_token
752
+
753
+ # Locations that could not be reached.
754
+ # Corresponds to the JSON property `unreachable`
755
+ # @return [Array<String>]
756
+ attr_accessor :unreachable
757
+
758
+ def initialize(**args)
759
+ update!(**args)
760
+ end
761
+
762
+ # Update properties of this object
763
+ def update!(**args)
764
+ @metadata_imports = args[:metadata_imports] if args.key?(:metadata_imports)
765
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
766
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
767
+ end
768
+ end
769
+
770
+ # The response message for Operations.ListOperations.
771
+ class ListOperationsResponse
772
+ include Google::Apis::Core::Hashable
773
+
774
+ # The standard List next-page token.
775
+ # Corresponds to the JSON property `nextPageToken`
776
+ # @return [String]
777
+ attr_accessor :next_page_token
778
+
779
+ # A list of operations that matches the specified filter in the request.
780
+ # Corresponds to the JSON property `operations`
781
+ # @return [Array<Google::Apis::MetastoreV1::Operation>]
782
+ attr_accessor :operations
783
+
784
+ def initialize(**args)
785
+ update!(**args)
786
+ end
787
+
788
+ # Update properties of this object
789
+ def update!(**args)
790
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
791
+ @operations = args[:operations] if args.key?(:operations)
792
+ end
793
+ end
794
+
795
+ # Response message for DataprocMetastore.ListServices.
796
+ class ListServicesResponse
797
+ include Google::Apis::Core::Hashable
798
+
799
+ # A token that can be sent as page_token to retrieve the next page. If this
800
+ # field is omitted, there are no subsequent pages.
801
+ # Corresponds to the JSON property `nextPageToken`
802
+ # @return [String]
803
+ attr_accessor :next_page_token
804
+
805
+ # The services in the specified location.
806
+ # Corresponds to the JSON property `services`
807
+ # @return [Array<Google::Apis::MetastoreV1::Service>]
808
+ attr_accessor :services
809
+
810
+ # Locations that could not be reached.
811
+ # Corresponds to the JSON property `unreachable`
812
+ # @return [Array<String>]
813
+ attr_accessor :unreachable
814
+
815
+ def initialize(**args)
816
+ update!(**args)
817
+ end
818
+
819
+ # Update properties of this object
820
+ def update!(**args)
821
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
822
+ @services = args[:services] if args.key?(:services)
823
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
824
+ end
825
+ end
826
+
827
+ # A resource that represents Google Cloud Platform location.
828
+ class Location
829
+ include Google::Apis::Core::Hashable
830
+
831
+ # The friendly name for this location, typically a nearby city name. For example,
832
+ # "Tokyo".
833
+ # Corresponds to the JSON property `displayName`
834
+ # @return [String]
835
+ attr_accessor :display_name
836
+
837
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
838
+ # region": "us-east1"`
839
+ # Corresponds to the JSON property `labels`
840
+ # @return [Hash<String,String>]
841
+ attr_accessor :labels
842
+
843
+ # The canonical id for this location. For example: "us-east1".
844
+ # Corresponds to the JSON property `locationId`
845
+ # @return [String]
846
+ attr_accessor :location_id
847
+
848
+ # Service-specific metadata. For example the available capacity at the given
849
+ # location.
850
+ # Corresponds to the JSON property `metadata`
851
+ # @return [Hash<String,Object>]
852
+ attr_accessor :metadata
853
+
854
+ # Resource name for the location, which may vary between implementations. For
855
+ # example: "projects/example-project/locations/us-east1"
856
+ # Corresponds to the JSON property `name`
857
+ # @return [String]
858
+ attr_accessor :name
859
+
860
+ def initialize(**args)
861
+ update!(**args)
862
+ end
863
+
864
+ # Update properties of this object
865
+ def update!(**args)
866
+ @display_name = args[:display_name] if args.key?(:display_name)
867
+ @labels = args[:labels] if args.key?(:labels)
868
+ @location_id = args[:location_id] if args.key?(:location_id)
869
+ @metadata = args[:metadata] if args.key?(:metadata)
870
+ @name = args[:name] if args.key?(:name)
871
+ end
872
+ end
873
+
874
+ # Metadata about the service in a location.
875
+ class LocationMetadata
876
+ include Google::Apis::Core::Hashable
877
+
878
+ # The versions of Hive Metastore that can be used when creating a new metastore
879
+ # service in this location. The server guarantees that exactly one
880
+ # HiveMetastoreVersion in the list will set is_default.
881
+ # Corresponds to the JSON property `supportedHiveMetastoreVersions`
882
+ # @return [Array<Google::Apis::MetastoreV1::HiveMetastoreVersion>]
883
+ attr_accessor :supported_hive_metastore_versions
884
+
885
+ def initialize(**args)
886
+ update!(**args)
887
+ end
888
+
889
+ # Update properties of this object
890
+ def update!(**args)
891
+ @supported_hive_metastore_versions = args[:supported_hive_metastore_versions] if args.key?(:supported_hive_metastore_versions)
892
+ end
893
+ end
894
+
895
+ # Maintenance window. This specifies when Dataproc Metastore may perform system
896
+ # maintenance operation to the service.
897
+ class MaintenanceWindow
898
+ include Google::Apis::Core::Hashable
899
+
900
+ # The day of week, when the window starts.
901
+ # Corresponds to the JSON property `dayOfWeek`
902
+ # @return [String]
903
+ attr_accessor :day_of_week
904
+
905
+ # The hour of day (0-23) when the window starts.
906
+ # Corresponds to the JSON property `hourOfDay`
907
+ # @return [Fixnum]
908
+ attr_accessor :hour_of_day
909
+
910
+ def initialize(**args)
911
+ update!(**args)
912
+ end
913
+
914
+ # Update properties of this object
915
+ def update!(**args)
916
+ @day_of_week = args[:day_of_week] if args.key?(:day_of_week)
917
+ @hour_of_day = args[:hour_of_day] if args.key?(:hour_of_day)
918
+ end
919
+ end
920
+
921
+ # The details of a metadata export operation.
922
+ class MetadataExport
923
+ include Google::Apis::Core::Hashable
924
+
925
+ # Output only. The type of the database dump.
926
+ # Corresponds to the JSON property `databaseDumpType`
927
+ # @return [String]
928
+ attr_accessor :database_dump_type
929
+
930
+ # Output only. A Cloud Storage URI of a folder that metadata are exported to, in
931
+ # the form of gs:////, where is automatically generated.
932
+ # Corresponds to the JSON property `destinationGcsUri`
933
+ # @return [String]
934
+ attr_accessor :destination_gcs_uri
935
+
936
+ # Output only. The time when the export ended.
937
+ # Corresponds to the JSON property `endTime`
938
+ # @return [String]
939
+ attr_accessor :end_time
940
+
941
+ # Output only. The time when the export started.
942
+ # Corresponds to the JSON property `startTime`
943
+ # @return [String]
944
+ attr_accessor :start_time
945
+
946
+ # Output only. The current state of the export.
947
+ # Corresponds to the JSON property `state`
948
+ # @return [String]
949
+ attr_accessor :state
950
+
951
+ def initialize(**args)
952
+ update!(**args)
953
+ end
954
+
955
+ # Update properties of this object
956
+ def update!(**args)
957
+ @database_dump_type = args[:database_dump_type] if args.key?(:database_dump_type)
958
+ @destination_gcs_uri = args[:destination_gcs_uri] if args.key?(:destination_gcs_uri)
959
+ @end_time = args[:end_time] if args.key?(:end_time)
960
+ @start_time = args[:start_time] if args.key?(:start_time)
961
+ @state = args[:state] if args.key?(:state)
962
+ end
963
+ end
964
+
965
+ # A metastore resource that imports metadata.
966
+ class MetadataImport
967
+ include Google::Apis::Core::Hashable
968
+
969
+ # Output only. The time when the metadata import was started.
970
+ # Corresponds to the JSON property `createTime`
971
+ # @return [String]
972
+ attr_accessor :create_time
973
+
974
+ # A specification of the location of and metadata about a database dump from a
975
+ # relational database management system.
976
+ # Corresponds to the JSON property `databaseDump`
977
+ # @return [Google::Apis::MetastoreV1::DatabaseDump]
978
+ attr_accessor :database_dump
979
+
980
+ # The description of the metadata import.
981
+ # Corresponds to the JSON property `description`
982
+ # @return [String]
983
+ attr_accessor :description
984
+
985
+ # Output only. The time when the metadata import finished.
986
+ # Corresponds to the JSON property `endTime`
987
+ # @return [String]
988
+ attr_accessor :end_time
989
+
990
+ # Immutable. The relative resource name of the metadata import, of the form:
991
+ # projects/`project_number`/locations/`location_id`/services/`service_id`/
992
+ # metadataImports/`metadata_import_id`.
993
+ # Corresponds to the JSON property `name`
994
+ # @return [String]
995
+ attr_accessor :name
996
+
997
+ # Output only. The current state of the metadata import.
998
+ # Corresponds to the JSON property `state`
999
+ # @return [String]
1000
+ attr_accessor :state
1001
+
1002
+ # Output only. The time when the metadata import was last updated.
1003
+ # Corresponds to the JSON property `updateTime`
1004
+ # @return [String]
1005
+ attr_accessor :update_time
1006
+
1007
+ def initialize(**args)
1008
+ update!(**args)
1009
+ end
1010
+
1011
+ # Update properties of this object
1012
+ def update!(**args)
1013
+ @create_time = args[:create_time] if args.key?(:create_time)
1014
+ @database_dump = args[:database_dump] if args.key?(:database_dump)
1015
+ @description = args[:description] if args.key?(:description)
1016
+ @end_time = args[:end_time] if args.key?(:end_time)
1017
+ @name = args[:name] if args.key?(:name)
1018
+ @state = args[:state] if args.key?(:state)
1019
+ @update_time = args[:update_time] if args.key?(:update_time)
1020
+ end
1021
+ end
1022
+
1023
+ # The metadata management activities of the metastore service.
1024
+ class MetadataManagementActivity
1025
+ include Google::Apis::Core::Hashable
1026
+
1027
+ # Output only. The latest metadata exports of the metastore service.
1028
+ # Corresponds to the JSON property `metadataExports`
1029
+ # @return [Array<Google::Apis::MetastoreV1::MetadataExport>]
1030
+ attr_accessor :metadata_exports
1031
+
1032
+ # Output only. The latest restores of the metastore service.
1033
+ # Corresponds to the JSON property `restores`
1034
+ # @return [Array<Google::Apis::MetastoreV1::Restore>]
1035
+ attr_accessor :restores
1036
+
1037
+ def initialize(**args)
1038
+ update!(**args)
1039
+ end
1040
+
1041
+ # Update properties of this object
1042
+ def update!(**args)
1043
+ @metadata_exports = args[:metadata_exports] if args.key?(:metadata_exports)
1044
+ @restores = args[:restores] if args.key?(:restores)
1045
+ end
1046
+ end
1047
+
1048
+ # Network configuration for the Dataproc Metastore service.
1049
+ class NetworkConfig
1050
+ include Google::Apis::Core::Hashable
1051
+
1052
+ # Immutable. The consumer-side network configuration for the Dataproc Metastore
1053
+ # instance.
1054
+ # Corresponds to the JSON property `consumers`
1055
+ # @return [Array<Google::Apis::MetastoreV1::Consumer>]
1056
+ attr_accessor :consumers
1057
+
1058
+ def initialize(**args)
1059
+ update!(**args)
1060
+ end
1061
+
1062
+ # Update properties of this object
1063
+ def update!(**args)
1064
+ @consumers = args[:consumers] if args.key?(:consumers)
1065
+ end
1066
+ end
1067
+
1068
+ # This resource represents a long-running operation that is the result of a
1069
+ # network API call.
1070
+ class Operation
1071
+ include Google::Apis::Core::Hashable
1072
+
1073
+ # If the value is false, it means the operation is still in progress. If true,
1074
+ # the operation is completed, and either error or response is available.
1075
+ # Corresponds to the JSON property `done`
1076
+ # @return [Boolean]
1077
+ attr_accessor :done
1078
+ alias_method :done?, :done
1079
+
1080
+ # The Status type defines a logical error model that is suitable for different
1081
+ # programming environments, including REST APIs and RPC APIs. It is used by gRPC
1082
+ # (https://github.com/grpc). Each Status message contains three pieces of data:
1083
+ # error code, error message, and error details.You can find out more about this
1084
+ # error model and how to work with it in the API Design Guide (https://cloud.
1085
+ # google.com/apis/design/errors).
1086
+ # Corresponds to the JSON property `error`
1087
+ # @return [Google::Apis::MetastoreV1::Status]
1088
+ attr_accessor :error
1089
+
1090
+ # Service-specific metadata associated with the operation. It typically contains
1091
+ # progress information and common metadata such as create time. Some services
1092
+ # might not provide such metadata. Any method that returns a long-running
1093
+ # operation should document the metadata type, if any.
1094
+ # Corresponds to the JSON property `metadata`
1095
+ # @return [Hash<String,Object>]
1096
+ attr_accessor :metadata
1097
+
1098
+ # The server-assigned name, which is only unique within the same service that
1099
+ # originally returns it. If you use the default HTTP mapping, the name should be
1100
+ # a resource name ending with operations/`unique_id`.
1101
+ # Corresponds to the JSON property `name`
1102
+ # @return [String]
1103
+ attr_accessor :name
1104
+
1105
+ # The normal response of the operation in case of success. If the original
1106
+ # method returns no data on success, such as Delete, the response is google.
1107
+ # protobuf.Empty. If the original method is standard Get/Create/Update, the
1108
+ # response should be the resource. For other methods, the response should have
1109
+ # the type XxxResponse, where Xxx is the original method name. For example, if
1110
+ # the original method name is TakeSnapshot(), the inferred response type is
1111
+ # TakeSnapshotResponse.
1112
+ # Corresponds to the JSON property `response`
1113
+ # @return [Hash<String,Object>]
1114
+ attr_accessor :response
1115
+
1116
+ def initialize(**args)
1117
+ update!(**args)
1118
+ end
1119
+
1120
+ # Update properties of this object
1121
+ def update!(**args)
1122
+ @done = args[:done] if args.key?(:done)
1123
+ @error = args[:error] if args.key?(:error)
1124
+ @metadata = args[:metadata] if args.key?(:metadata)
1125
+ @name = args[:name] if args.key?(:name)
1126
+ @response = args[:response] if args.key?(:response)
1127
+ end
1128
+ end
1129
+
1130
+ # Represents the metadata of a long-running operation.
1131
+ class OperationMetadata
1132
+ include Google::Apis::Core::Hashable
1133
+
1134
+ # Output only. API version used to start the operation.
1135
+ # Corresponds to the JSON property `apiVersion`
1136
+ # @return [String]
1137
+ attr_accessor :api_version
1138
+
1139
+ # Output only. The time the operation was created.
1140
+ # Corresponds to the JSON property `createTime`
1141
+ # @return [String]
1142
+ attr_accessor :create_time
1143
+
1144
+ # Output only. The time the operation finished running.
1145
+ # Corresponds to the JSON property `endTime`
1146
+ # @return [String]
1147
+ attr_accessor :end_time
1148
+
1149
+ # Output only. Identifies whether the caller has requested cancellation of the
1150
+ # operation. Operations that have successfully been cancelled have Operation.
1151
+ # error value with a google.rpc.Status.code of 1, corresponding to Code.
1152
+ # CANCELLED.
1153
+ # Corresponds to the JSON property `requestedCancellation`
1154
+ # @return [Boolean]
1155
+ attr_accessor :requested_cancellation
1156
+ alias_method :requested_cancellation?, :requested_cancellation
1157
+
1158
+ # Output only. Human-readable status of the operation, if any.
1159
+ # Corresponds to the JSON property `statusMessage`
1160
+ # @return [String]
1161
+ attr_accessor :status_message
1162
+
1163
+ # Output only. Server-defined resource path for the target of the operation.
1164
+ # Corresponds to the JSON property `target`
1165
+ # @return [String]
1166
+ attr_accessor :target
1167
+
1168
+ # Output only. Name of the verb executed by the operation.
1169
+ # Corresponds to the JSON property `verb`
1170
+ # @return [String]
1171
+ attr_accessor :verb
1172
+
1173
+ def initialize(**args)
1174
+ update!(**args)
1175
+ end
1176
+
1177
+ # Update properties of this object
1178
+ def update!(**args)
1179
+ @api_version = args[:api_version] if args.key?(:api_version)
1180
+ @create_time = args[:create_time] if args.key?(:create_time)
1181
+ @end_time = args[:end_time] if args.key?(:end_time)
1182
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
1183
+ @status_message = args[:status_message] if args.key?(:status_message)
1184
+ @target = args[:target] if args.key?(:target)
1185
+ @verb = args[:verb] if args.key?(:verb)
1186
+ end
1187
+ end
1188
+
1189
+ # An Identity and Access Management (IAM) policy, which specifies access
1190
+ # controls for Google Cloud resources.A Policy is a collection of bindings. A
1191
+ # binding binds one or more members, or principals, to a single role. Principals
1192
+ # can be user accounts, service accounts, Google groups, and domains (such as G
1193
+ # Suite). A role is a named list of permissions; each role can be an IAM
1194
+ # predefined role or a user-created custom role.For some types of Google Cloud
1195
+ # resources, a binding can also specify a condition, which is a logical
1196
+ # expression that allows access to a resource only if the expression evaluates
1197
+ # to true. A condition can add constraints based on attributes of the request,
1198
+ # the resource, or both. To learn which resources support conditions in their
1199
+ # IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/
1200
+ # conditions/resource-policies).JSON example: ` "bindings": [ ` "role": "roles/
1201
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
1202
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
1203
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
1204
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
1205
+ # title": "expirable access", "description": "Does not grant access after Sep
1206
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
1207
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` YAML example: bindings: - members:
1208
+ # - user:mike@example.com - group:admins@example.com - domain:google.com -
1209
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
1210
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
1211
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
1212
+ # description: Does not grant access after Sep 2020 expression: request.time <
1213
+ # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
1214
+ # description of IAM and its features, see the IAM documentation (https://cloud.
1215
+ # google.com/iam/docs/).
1216
+ class Policy
1217
+ include Google::Apis::Core::Hashable
1218
+
1219
+ # Specifies cloud audit logging configuration for this policy.
1220
+ # Corresponds to the JSON property `auditConfigs`
1221
+ # @return [Array<Google::Apis::MetastoreV1::AuditConfig>]
1222
+ attr_accessor :audit_configs
1223
+
1224
+ # Associates a list of members, or principals, with a role. Optionally, may
1225
+ # specify a condition that determines how and when the bindings are applied.
1226
+ # Each of the bindings must contain at least one principal.The bindings in a
1227
+ # Policy can refer to up to 1,500 principals; up to 250 of these principals can
1228
+ # be Google groups. Each occurrence of a principal counts towards these limits.
1229
+ # For example, if the bindings grant 50 different roles to user:alice@example.
1230
+ # com, and not to any other principal, then you can add another 1,450 principals
1231
+ # to the bindings in the Policy.
1232
+ # Corresponds to the JSON property `bindings`
1233
+ # @return [Array<Google::Apis::MetastoreV1::Binding>]
1234
+ attr_accessor :bindings
1235
+
1236
+ # etag is used for optimistic concurrency control as a way to help prevent
1237
+ # simultaneous updates of a policy from overwriting each other. It is strongly
1238
+ # suggested that systems make use of the etag in the read-modify-write cycle to
1239
+ # perform policy updates in order to avoid race conditions: An etag is returned
1240
+ # in the response to getIamPolicy, and systems are expected to put that etag in
1241
+ # the request to setIamPolicy to ensure that their change will be applied to the
1242
+ # same version of the policy.Important: If you use IAM Conditions, you must
1243
+ # include the etag field whenever you call setIamPolicy. If you omit this field,
1244
+ # then IAM allows you to overwrite a version 3 policy with a version 1 policy,
1245
+ # and all of the conditions in the version 3 policy are lost.
1246
+ # Corresponds to the JSON property `etag`
1247
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1248
+ # @return [String]
1249
+ attr_accessor :etag
1250
+
1251
+ # Specifies the format of the policy.Valid values are 0, 1, and 3. Requests that
1252
+ # specify an invalid value are rejected.Any operation that affects conditional
1253
+ # role bindings must specify version 3. This requirement applies to the
1254
+ # following operations: Getting a policy that includes a conditional role
1255
+ # binding Adding a conditional role binding to a policy Changing a conditional
1256
+ # role binding in a policy Removing any role binding, with or without a
1257
+ # condition, from a policy that includes conditionsImportant: If you use IAM
1258
+ # Conditions, you must include the etag field whenever you call setIamPolicy. If
1259
+ # you omit this field, then IAM allows you to overwrite a version 3 policy with
1260
+ # a version 1 policy, and all of the conditions in the version 3 policy are lost.
1261
+ # If a policy does not include any conditions, operations on that policy may
1262
+ # specify any valid version or leave the field unset.To learn which resources
1263
+ # support conditions in their IAM policies, see the IAM documentation (https://
1264
+ # cloud.google.com/iam/help/conditions/resource-policies).
1265
+ # Corresponds to the JSON property `version`
1266
+ # @return [Fixnum]
1267
+ attr_accessor :version
1268
+
1269
+ def initialize(**args)
1270
+ update!(**args)
1271
+ end
1272
+
1273
+ # Update properties of this object
1274
+ def update!(**args)
1275
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1276
+ @bindings = args[:bindings] if args.key?(:bindings)
1277
+ @etag = args[:etag] if args.key?(:etag)
1278
+ @version = args[:version] if args.key?(:version)
1279
+ end
1280
+ end
1281
+
1282
+ # The details of a metadata restore operation.
1283
+ class Restore
1284
+ include Google::Apis::Core::Hashable
1285
+
1286
+ # Output only. The relative resource name of the metastore service backup to
1287
+ # restore from, in the following form:projects/`project_id`/locations/`
1288
+ # location_id`/services/`service_id`/backups/`backup_id`.
1289
+ # Corresponds to the JSON property `backup`
1290
+ # @return [String]
1291
+ attr_accessor :backup
1292
+
1293
+ # Output only. The restore details containing the revision of the service to be
1294
+ # restored to, in format of JSON.
1295
+ # Corresponds to the JSON property `details`
1296
+ # @return [String]
1297
+ attr_accessor :details
1298
+
1299
+ # Output only. The time when the restore ended.
1300
+ # Corresponds to the JSON property `endTime`
1301
+ # @return [String]
1302
+ attr_accessor :end_time
1303
+
1304
+ # Output only. The time when the restore started.
1305
+ # Corresponds to the JSON property `startTime`
1306
+ # @return [String]
1307
+ attr_accessor :start_time
1308
+
1309
+ # Output only. The current state of the restore.
1310
+ # Corresponds to the JSON property `state`
1311
+ # @return [String]
1312
+ attr_accessor :state
1313
+
1314
+ # Output only. The type of restore.
1315
+ # Corresponds to the JSON property `type`
1316
+ # @return [String]
1317
+ attr_accessor :type
1318
+
1319
+ def initialize(**args)
1320
+ update!(**args)
1321
+ end
1322
+
1323
+ # Update properties of this object
1324
+ def update!(**args)
1325
+ @backup = args[:backup] if args.key?(:backup)
1326
+ @details = args[:details] if args.key?(:details)
1327
+ @end_time = args[:end_time] if args.key?(:end_time)
1328
+ @start_time = args[:start_time] if args.key?(:start_time)
1329
+ @state = args[:state] if args.key?(:state)
1330
+ @type = args[:type] if args.key?(:type)
1331
+ end
1332
+ end
1333
+
1334
+ # Request message for DataprocMetastore.Restore.
1335
+ class RestoreServiceRequest
1336
+ include Google::Apis::Core::Hashable
1337
+
1338
+ # Required. The relative resource name of the metastore service backup to
1339
+ # restore from, in the following form:projects/`project_id`/locations/`
1340
+ # location_id`/services/`service_id`/backups/`backup_id`.
1341
+ # Corresponds to the JSON property `backup`
1342
+ # @return [String]
1343
+ attr_accessor :backup
1344
+
1345
+ # Optional. A request ID. Specify a unique request ID to allow the server to
1346
+ # ignore the request if it has completed. The server will ignore subsequent
1347
+ # requests that provide a duplicate request ID for at least 60 minutes after the
1348
+ # first request.For example, if an initial request times out, followed by
1349
+ # another request with the same request ID, the server ignores the second
1350
+ # request to prevent the creation of duplicate commitments.The request ID must
1351
+ # be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#
1352
+ # Format). A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
1353
+ # Corresponds to the JSON property `requestId`
1354
+ # @return [String]
1355
+ attr_accessor :request_id
1356
+
1357
+ # Optional. The type of restore. If unspecified, defaults to METADATA_ONLY.
1358
+ # Corresponds to the JSON property `restoreType`
1359
+ # @return [String]
1360
+ attr_accessor :restore_type
1361
+
1362
+ def initialize(**args)
1363
+ update!(**args)
1364
+ end
1365
+
1366
+ # Update properties of this object
1367
+ def update!(**args)
1368
+ @backup = args[:backup] if args.key?(:backup)
1369
+ @request_id = args[:request_id] if args.key?(:request_id)
1370
+ @restore_type = args[:restore_type] if args.key?(:restore_type)
1371
+ end
1372
+ end
1373
+
1374
+ # A securely stored value.
1375
+ class Secret
1376
+ include Google::Apis::Core::Hashable
1377
+
1378
+ # The relative resource name of a Secret Manager secret version, in the
1379
+ # following form:projects/`project_number`/secrets/`secret_id`/versions/`
1380
+ # version_id`.
1381
+ # Corresponds to the JSON property `cloudSecret`
1382
+ # @return [String]
1383
+ attr_accessor :cloud_secret
1384
+
1385
+ def initialize(**args)
1386
+ update!(**args)
1387
+ end
1388
+
1389
+ # Update properties of this object
1390
+ def update!(**args)
1391
+ @cloud_secret = args[:cloud_secret] if args.key?(:cloud_secret)
1392
+ end
1393
+ end
1394
+
1395
+ # A managed metastore service that serves metadata queries.
1396
+ class Service
1397
+ include Google::Apis::Core::Hashable
1398
+
1399
+ # Output only. A Cloud Storage URI (starting with gs://) that specifies where
1400
+ # artifacts related to the metastore service are stored.
1401
+ # Corresponds to the JSON property `artifactGcsUri`
1402
+ # @return [String]
1403
+ attr_accessor :artifact_gcs_uri
1404
+
1405
+ # Output only. The time when the metastore service was created.
1406
+ # Corresponds to the JSON property `createTime`
1407
+ # @return [String]
1408
+ attr_accessor :create_time
1409
+
1410
+ # Immutable. The database type that the Metastore service stores its data.
1411
+ # Corresponds to the JSON property `databaseType`
1412
+ # @return [String]
1413
+ attr_accessor :database_type
1414
+
1415
+ # Encryption settings for the service.
1416
+ # Corresponds to the JSON property `encryptionConfig`
1417
+ # @return [Google::Apis::MetastoreV1::EncryptionConfig]
1418
+ attr_accessor :encryption_config
1419
+
1420
+ # Output only. The URI of the endpoint used to access the metastore service.
1421
+ # Corresponds to the JSON property `endpointUri`
1422
+ # @return [String]
1423
+ attr_accessor :endpoint_uri
1424
+
1425
+ # Specifies configuration information specific to running Hive metastore
1426
+ # software as the metastore service.
1427
+ # Corresponds to the JSON property `hiveMetastoreConfig`
1428
+ # @return [Google::Apis::MetastoreV1::HiveMetastoreConfig]
1429
+ attr_accessor :hive_metastore_config
1430
+
1431
+ # User-defined labels for the metastore service.
1432
+ # Corresponds to the JSON property `labels`
1433
+ # @return [Hash<String,String>]
1434
+ attr_accessor :labels
1435
+
1436
+ # Maintenance window. This specifies when Dataproc Metastore may perform system
1437
+ # maintenance operation to the service.
1438
+ # Corresponds to the JSON property `maintenanceWindow`
1439
+ # @return [Google::Apis::MetastoreV1::MaintenanceWindow]
1440
+ attr_accessor :maintenance_window
1441
+
1442
+ # The metadata management activities of the metastore service.
1443
+ # Corresponds to the JSON property `metadataManagementActivity`
1444
+ # @return [Google::Apis::MetastoreV1::MetadataManagementActivity]
1445
+ attr_accessor :metadata_management_activity
1446
+
1447
+ # Immutable. The relative resource name of the metastore service, in the
1448
+ # following format:projects/`project_number`/locations/`location_id`/services/`
1449
+ # service_id`.
1450
+ # Corresponds to the JSON property `name`
1451
+ # @return [String]
1452
+ attr_accessor :name
1453
+
1454
+ # Immutable. The relative resource name of the VPC network on which the instance
1455
+ # can be accessed. It is specified in the following form:projects/`
1456
+ # project_number`/global/networks/`network_id`.
1457
+ # Corresponds to the JSON property `network`
1458
+ # @return [String]
1459
+ attr_accessor :network
1460
+
1461
+ # Network configuration for the Dataproc Metastore service.
1462
+ # Corresponds to the JSON property `networkConfig`
1463
+ # @return [Google::Apis::MetastoreV1::NetworkConfig]
1464
+ attr_accessor :network_config
1465
+
1466
+ # The TCP port at which the metastore service is reached. Default: 9083.
1467
+ # Corresponds to the JSON property `port`
1468
+ # @return [Fixnum]
1469
+ attr_accessor :port
1470
+
1471
+ # Immutable. The release channel of the service. If unspecified, defaults to
1472
+ # STABLE.
1473
+ # Corresponds to the JSON property `releaseChannel`
1474
+ # @return [String]
1475
+ attr_accessor :release_channel
1476
+
1477
+ # Output only. The current state of the metastore service.
1478
+ # Corresponds to the JSON property `state`
1479
+ # @return [String]
1480
+ attr_accessor :state
1481
+
1482
+ # Output only. Additional information about the current state of the metastore
1483
+ # service, if available.
1484
+ # Corresponds to the JSON property `stateMessage`
1485
+ # @return [String]
1486
+ attr_accessor :state_message
1487
+
1488
+ # Telemetry Configuration for the Dataproc Metastore service.
1489
+ # Corresponds to the JSON property `telemetryConfig`
1490
+ # @return [Google::Apis::MetastoreV1::TelemetryConfig]
1491
+ attr_accessor :telemetry_config
1492
+
1493
+ # The tier of the service.
1494
+ # Corresponds to the JSON property `tier`
1495
+ # @return [String]
1496
+ attr_accessor :tier
1497
+
1498
+ # Output only. The globally unique resource identifier of the metastore service.
1499
+ # Corresponds to the JSON property `uid`
1500
+ # @return [String]
1501
+ attr_accessor :uid
1502
+
1503
+ # Output only. The time when the metastore service was last updated.
1504
+ # Corresponds to the JSON property `updateTime`
1505
+ # @return [String]
1506
+ attr_accessor :update_time
1507
+
1508
+ def initialize(**args)
1509
+ update!(**args)
1510
+ end
1511
+
1512
+ # Update properties of this object
1513
+ def update!(**args)
1514
+ @artifact_gcs_uri = args[:artifact_gcs_uri] if args.key?(:artifact_gcs_uri)
1515
+ @create_time = args[:create_time] if args.key?(:create_time)
1516
+ @database_type = args[:database_type] if args.key?(:database_type)
1517
+ @encryption_config = args[:encryption_config] if args.key?(:encryption_config)
1518
+ @endpoint_uri = args[:endpoint_uri] if args.key?(:endpoint_uri)
1519
+ @hive_metastore_config = args[:hive_metastore_config] if args.key?(:hive_metastore_config)
1520
+ @labels = args[:labels] if args.key?(:labels)
1521
+ @maintenance_window = args[:maintenance_window] if args.key?(:maintenance_window)
1522
+ @metadata_management_activity = args[:metadata_management_activity] if args.key?(:metadata_management_activity)
1523
+ @name = args[:name] if args.key?(:name)
1524
+ @network = args[:network] if args.key?(:network)
1525
+ @network_config = args[:network_config] if args.key?(:network_config)
1526
+ @port = args[:port] if args.key?(:port)
1527
+ @release_channel = args[:release_channel] if args.key?(:release_channel)
1528
+ @state = args[:state] if args.key?(:state)
1529
+ @state_message = args[:state_message] if args.key?(:state_message)
1530
+ @telemetry_config = args[:telemetry_config] if args.key?(:telemetry_config)
1531
+ @tier = args[:tier] if args.key?(:tier)
1532
+ @uid = args[:uid] if args.key?(:uid)
1533
+ @update_time = args[:update_time] if args.key?(:update_time)
1534
+ end
1535
+ end
1536
+
1537
+ # Request message for SetIamPolicy method.
1538
+ class SetIamPolicyRequest
1539
+ include Google::Apis::Core::Hashable
1540
+
1541
+ # An Identity and Access Management (IAM) policy, which specifies access
1542
+ # controls for Google Cloud resources.A Policy is a collection of bindings. A
1543
+ # binding binds one or more members, or principals, to a single role. Principals
1544
+ # can be user accounts, service accounts, Google groups, and domains (such as G
1545
+ # Suite). A role is a named list of permissions; each role can be an IAM
1546
+ # predefined role or a user-created custom role.For some types of Google Cloud
1547
+ # resources, a binding can also specify a condition, which is a logical
1548
+ # expression that allows access to a resource only if the expression evaluates
1549
+ # to true. A condition can add constraints based on attributes of the request,
1550
+ # the resource, or both. To learn which resources support conditions in their
1551
+ # IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/
1552
+ # conditions/resource-policies).JSON example: ` "bindings": [ ` "role": "roles/
1553
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
1554
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
1555
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
1556
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
1557
+ # title": "expirable access", "description": "Does not grant access after Sep
1558
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
1559
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` YAML example: bindings: - members:
1560
+ # - user:mike@example.com - group:admins@example.com - domain:google.com -
1561
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
1562
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
1563
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
1564
+ # description: Does not grant access after Sep 2020 expression: request.time <
1565
+ # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
1566
+ # description of IAM and its features, see the IAM documentation (https://cloud.
1567
+ # google.com/iam/docs/).
1568
+ # Corresponds to the JSON property `policy`
1569
+ # @return [Google::Apis::MetastoreV1::Policy]
1570
+ attr_accessor :policy
1571
+
1572
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
1573
+ # the fields in the mask will be modified. If no mask is provided, the following
1574
+ # default mask is used:paths: "bindings, etag"
1575
+ # Corresponds to the JSON property `updateMask`
1576
+ # @return [String]
1577
+ attr_accessor :update_mask
1578
+
1579
+ def initialize(**args)
1580
+ update!(**args)
1581
+ end
1582
+
1583
+ # Update properties of this object
1584
+ def update!(**args)
1585
+ @policy = args[:policy] if args.key?(:policy)
1586
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1587
+ end
1588
+ end
1589
+
1590
+ # The Status type defines a logical error model that is suitable for different
1591
+ # programming environments, including REST APIs and RPC APIs. It is used by gRPC
1592
+ # (https://github.com/grpc). Each Status message contains three pieces of data:
1593
+ # error code, error message, and error details.You can find out more about this
1594
+ # error model and how to work with it in the API Design Guide (https://cloud.
1595
+ # google.com/apis/design/errors).
1596
+ class Status
1597
+ include Google::Apis::Core::Hashable
1598
+
1599
+ # The status code, which should be an enum value of google.rpc.Code.
1600
+ # Corresponds to the JSON property `code`
1601
+ # @return [Fixnum]
1602
+ attr_accessor :code
1603
+
1604
+ # A list of messages that carry the error details. There is a common set of
1605
+ # message types for APIs to use.
1606
+ # Corresponds to the JSON property `details`
1607
+ # @return [Array<Hash<String,Object>>]
1608
+ attr_accessor :details
1609
+
1610
+ # A developer-facing error message, which should be in English. Any user-facing
1611
+ # error message should be localized and sent in the google.rpc.Status.details
1612
+ # field, or localized by the client.
1613
+ # Corresponds to the JSON property `message`
1614
+ # @return [String]
1615
+ attr_accessor :message
1616
+
1617
+ def initialize(**args)
1618
+ update!(**args)
1619
+ end
1620
+
1621
+ # Update properties of this object
1622
+ def update!(**args)
1623
+ @code = args[:code] if args.key?(:code)
1624
+ @details = args[:details] if args.key?(:details)
1625
+ @message = args[:message] if args.key?(:message)
1626
+ end
1627
+ end
1628
+
1629
+ # Telemetry Configuration for the Dataproc Metastore service.
1630
+ class TelemetryConfig
1631
+ include Google::Apis::Core::Hashable
1632
+
1633
+ # The output format of the Dataproc Metastore service's logs.
1634
+ # Corresponds to the JSON property `logFormat`
1635
+ # @return [String]
1636
+ attr_accessor :log_format
1637
+
1638
+ def initialize(**args)
1639
+ update!(**args)
1640
+ end
1641
+
1642
+ # Update properties of this object
1643
+ def update!(**args)
1644
+ @log_format = args[:log_format] if args.key?(:log_format)
1645
+ end
1646
+ end
1647
+
1648
+ # Request message for TestIamPermissions method.
1649
+ class TestIamPermissionsRequest
1650
+ include Google::Apis::Core::Hashable
1651
+
1652
+ # The set of permissions to check for the resource. Permissions with wildcards (
1653
+ # such as * or storage.*) are not allowed. For more information see IAM Overview
1654
+ # (https://cloud.google.com/iam/docs/overview#permissions).
1655
+ # Corresponds to the JSON property `permissions`
1656
+ # @return [Array<String>]
1657
+ attr_accessor :permissions
1658
+
1659
+ def initialize(**args)
1660
+ update!(**args)
1661
+ end
1662
+
1663
+ # Update properties of this object
1664
+ def update!(**args)
1665
+ @permissions = args[:permissions] if args.key?(:permissions)
1666
+ end
1667
+ end
1668
+
1669
+ # Response message for TestIamPermissions method.
1670
+ class TestIamPermissionsResponse
1671
+ include Google::Apis::Core::Hashable
1672
+
1673
+ # A subset of TestPermissionsRequest.permissions that the caller is allowed.
1674
+ # Corresponds to the JSON property `permissions`
1675
+ # @return [Array<String>]
1676
+ attr_accessor :permissions
1677
+
1678
+ def initialize(**args)
1679
+ update!(**args)
1680
+ end
1681
+
1682
+ # Update properties of this object
1683
+ def update!(**args)
1684
+ @permissions = args[:permissions] if args.key?(:permissions)
1685
+ end
1686
+ end
1687
+ end
1688
+ end
1689
+ end