google-apis-dataplex_v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,3783 @@
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 DataplexV1
24
+
25
+ # A generic empty message that you can re-use to avoid defining duplicated empty
26
+ # messages in your APIs. A typical example is to use it as the request or the
27
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
28
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
29
+ # Empty is empty JSON object ``.
30
+ class Empty
31
+ include Google::Apis::Core::Hashable
32
+
33
+ def initialize(**args)
34
+ update!(**args)
35
+ end
36
+
37
+ # Update properties of this object
38
+ def update!(**args)
39
+ end
40
+ end
41
+
42
+ # Action represents an issue requiring administrator action for resolution.
43
+ class GoogleCloudDataplexV1Action
44
+ include Google::Apis::Core::Hashable
45
+
46
+ # Output only. The relative resource name of the asset, of the form: projects/`
47
+ # project_number`/locations/`location_id`/lakes/`lake_id`/zones/`zone_id`/assets/
48
+ # `asset_id`.
49
+ # Corresponds to the JSON property `asset`
50
+ # @return [String]
51
+ attr_accessor :asset
52
+
53
+ # The category of issue associated with the action.
54
+ # Corresponds to the JSON property `category`
55
+ # @return [String]
56
+ attr_accessor :category
57
+
58
+ # The list of data locations associated with this action. Cloud Storage
59
+ # locations are represented as URI paths(E.g. gs://bucket/table1/year=2020/month=
60
+ # Jan/). BigQuery locations refer to resource names(E.g. bigquery.googleapis.com/
61
+ # projects/project-id/datasets/dataset-id).
62
+ # Corresponds to the JSON property `dataLocations`
63
+ # @return [Array<String>]
64
+ attr_accessor :data_locations
65
+
66
+ # The time that the issue was detected.
67
+ # Corresponds to the JSON property `detectTime`
68
+ # @return [String]
69
+ attr_accessor :detect_time
70
+
71
+ # Failed to apply security policy to the managed resource(s) under a lake, zone
72
+ # or an asset. For a lake or zone resource, one or more underlying assets has a
73
+ # failure applying security policy to the associated managed resource.
74
+ # Corresponds to the JSON property `failedSecurityPolicyApply`
75
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ActionFailedSecurityPolicyApply]
76
+ attr_accessor :failed_security_policy_apply
77
+
78
+ # Action details for incompatible schemas detected by discovery.
79
+ # Corresponds to the JSON property `incompatibleDataSchema`
80
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ActionIncompatibleDataSchema]
81
+ attr_accessor :incompatible_data_schema
82
+
83
+ # Action details for invalid or unsupported data files detected by discovery.
84
+ # Corresponds to the JSON property `invalidDataFormat`
85
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ActionInvalidDataFormat]
86
+ attr_accessor :invalid_data_format
87
+
88
+ # Action details for invalid data arrangement.
89
+ # Corresponds to the JSON property `invalidDataOrganization`
90
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ActionInvalidDataOrganization]
91
+ attr_accessor :invalid_data_organization
92
+
93
+ # Action details for invalid or unsupported partitions detected by discovery.
94
+ # Corresponds to the JSON property `invalidDataPartition`
95
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ActionInvalidDataPartition]
96
+ attr_accessor :invalid_data_partition
97
+
98
+ # Detailed description of the issue requiring action.
99
+ # Corresponds to the JSON property `issue`
100
+ # @return [String]
101
+ attr_accessor :issue
102
+
103
+ # Output only. The relative resource name of the lake, of the form: projects/`
104
+ # project_number`/locations/`location_id`/lakes/`lake_id`.
105
+ # Corresponds to the JSON property `lake`
106
+ # @return [String]
107
+ attr_accessor :lake
108
+
109
+ # Action details for absence of data detected by discovery.
110
+ # Corresponds to the JSON property `missingData`
111
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ActionMissingData]
112
+ attr_accessor :missing_data
113
+
114
+ # Action details for resource references in assets that cannot be located.
115
+ # Corresponds to the JSON property `missingResource`
116
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ActionMissingResource]
117
+ attr_accessor :missing_resource
118
+
119
+ # Output only. The relative resource name of the action, of the form: projects/`
120
+ # project`/locations/`location`/lakes/`lake`/actions/`action` projects/`project`/
121
+ # locations/`location`/lakes/`lake`/zones/`zone`/actions/`action` projects/`
122
+ # project`/locations/`location`/lakes/`lake`/zones/`zone`/assets/`asset`/actions/
123
+ # `action`.
124
+ # Corresponds to the JSON property `name`
125
+ # @return [String]
126
+ attr_accessor :name
127
+
128
+ # Action details for unauthorized resource issues raised to indicate that the
129
+ # service account associated with the lake instance is not authorized to access
130
+ # or manage the resource associated with an asset.
131
+ # Corresponds to the JSON property `unauthorizedResource`
132
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ActionUnauthorizedResource]
133
+ attr_accessor :unauthorized_resource
134
+
135
+ # Output only. The relative resource name of the zone, of the form: projects/`
136
+ # project_number`/locations/`location_id`/lakes/`lake_id`/zones/`zone_id`.
137
+ # Corresponds to the JSON property `zone`
138
+ # @return [String]
139
+ attr_accessor :zone
140
+
141
+ def initialize(**args)
142
+ update!(**args)
143
+ end
144
+
145
+ # Update properties of this object
146
+ def update!(**args)
147
+ @asset = args[:asset] if args.key?(:asset)
148
+ @category = args[:category] if args.key?(:category)
149
+ @data_locations = args[:data_locations] if args.key?(:data_locations)
150
+ @detect_time = args[:detect_time] if args.key?(:detect_time)
151
+ @failed_security_policy_apply = args[:failed_security_policy_apply] if args.key?(:failed_security_policy_apply)
152
+ @incompatible_data_schema = args[:incompatible_data_schema] if args.key?(:incompatible_data_schema)
153
+ @invalid_data_format = args[:invalid_data_format] if args.key?(:invalid_data_format)
154
+ @invalid_data_organization = args[:invalid_data_organization] if args.key?(:invalid_data_organization)
155
+ @invalid_data_partition = args[:invalid_data_partition] if args.key?(:invalid_data_partition)
156
+ @issue = args[:issue] if args.key?(:issue)
157
+ @lake = args[:lake] if args.key?(:lake)
158
+ @missing_data = args[:missing_data] if args.key?(:missing_data)
159
+ @missing_resource = args[:missing_resource] if args.key?(:missing_resource)
160
+ @name = args[:name] if args.key?(:name)
161
+ @unauthorized_resource = args[:unauthorized_resource] if args.key?(:unauthorized_resource)
162
+ @zone = args[:zone] if args.key?(:zone)
163
+ end
164
+ end
165
+
166
+ # Failed to apply security policy to the managed resource(s) under a lake, zone
167
+ # or an asset. For a lake or zone resource, one or more underlying assets has a
168
+ # failure applying security policy to the associated managed resource.
169
+ class GoogleCloudDataplexV1ActionFailedSecurityPolicyApply
170
+ include Google::Apis::Core::Hashable
171
+
172
+ # Resource name of one of the assets with failing security policy application.
173
+ # Populated for a lake or zone resource only.
174
+ # Corresponds to the JSON property `asset`
175
+ # @return [String]
176
+ attr_accessor :asset
177
+
178
+ def initialize(**args)
179
+ update!(**args)
180
+ end
181
+
182
+ # Update properties of this object
183
+ def update!(**args)
184
+ @asset = args[:asset] if args.key?(:asset)
185
+ end
186
+ end
187
+
188
+ # Action details for incompatible schemas detected by discovery.
189
+ class GoogleCloudDataplexV1ActionIncompatibleDataSchema
190
+ include Google::Apis::Core::Hashable
191
+
192
+ # The existing and expected schema of the table. The schema is provided as a
193
+ # JSON formatted structure listing columns and data types.
194
+ # Corresponds to the JSON property `existingSchema`
195
+ # @return [String]
196
+ attr_accessor :existing_schema
197
+
198
+ # The new and incompatible schema within the table. The schema is provided as a
199
+ # JSON formatted structured listing columns and data types.
200
+ # Corresponds to the JSON property `newSchema`
201
+ # @return [String]
202
+ attr_accessor :new_schema
203
+
204
+ # The list of data locations sampled and used for format/schema inference.
205
+ # Corresponds to the JSON property `sampledDataLocations`
206
+ # @return [Array<String>]
207
+ attr_accessor :sampled_data_locations
208
+
209
+ # Whether the action relates to a schema that is incompatible or modified.
210
+ # Corresponds to the JSON property `schemaChange`
211
+ # @return [String]
212
+ attr_accessor :schema_change
213
+
214
+ # The name of the table containing invalid data.
215
+ # Corresponds to the JSON property `table`
216
+ # @return [String]
217
+ attr_accessor :table
218
+
219
+ def initialize(**args)
220
+ update!(**args)
221
+ end
222
+
223
+ # Update properties of this object
224
+ def update!(**args)
225
+ @existing_schema = args[:existing_schema] if args.key?(:existing_schema)
226
+ @new_schema = args[:new_schema] if args.key?(:new_schema)
227
+ @sampled_data_locations = args[:sampled_data_locations] if args.key?(:sampled_data_locations)
228
+ @schema_change = args[:schema_change] if args.key?(:schema_change)
229
+ @table = args[:table] if args.key?(:table)
230
+ end
231
+ end
232
+
233
+ # Action details for invalid or unsupported data files detected by discovery.
234
+ class GoogleCloudDataplexV1ActionInvalidDataFormat
235
+ include Google::Apis::Core::Hashable
236
+
237
+ # The expected data format of the entity.
238
+ # Corresponds to the JSON property `expectedFormat`
239
+ # @return [String]
240
+ attr_accessor :expected_format
241
+
242
+ # The new unexpected data format within the entity.
243
+ # Corresponds to the JSON property `newFormat`
244
+ # @return [String]
245
+ attr_accessor :new_format
246
+
247
+ # The list of data locations sampled and used for format/schema inference.
248
+ # Corresponds to the JSON property `sampledDataLocations`
249
+ # @return [Array<String>]
250
+ attr_accessor :sampled_data_locations
251
+
252
+ def initialize(**args)
253
+ update!(**args)
254
+ end
255
+
256
+ # Update properties of this object
257
+ def update!(**args)
258
+ @expected_format = args[:expected_format] if args.key?(:expected_format)
259
+ @new_format = args[:new_format] if args.key?(:new_format)
260
+ @sampled_data_locations = args[:sampled_data_locations] if args.key?(:sampled_data_locations)
261
+ end
262
+ end
263
+
264
+ # Action details for invalid data arrangement.
265
+ class GoogleCloudDataplexV1ActionInvalidDataOrganization
266
+ include Google::Apis::Core::Hashable
267
+
268
+ def initialize(**args)
269
+ update!(**args)
270
+ end
271
+
272
+ # Update properties of this object
273
+ def update!(**args)
274
+ end
275
+ end
276
+
277
+ # Action details for invalid or unsupported partitions detected by discovery.
278
+ class GoogleCloudDataplexV1ActionInvalidDataPartition
279
+ include Google::Apis::Core::Hashable
280
+
281
+ # The issue type of InvalidDataPartition.
282
+ # Corresponds to the JSON property `expectedStructure`
283
+ # @return [String]
284
+ attr_accessor :expected_structure
285
+
286
+ def initialize(**args)
287
+ update!(**args)
288
+ end
289
+
290
+ # Update properties of this object
291
+ def update!(**args)
292
+ @expected_structure = args[:expected_structure] if args.key?(:expected_structure)
293
+ end
294
+ end
295
+
296
+ # Action details for absence of data detected by discovery.
297
+ class GoogleCloudDataplexV1ActionMissingData
298
+ include Google::Apis::Core::Hashable
299
+
300
+ def initialize(**args)
301
+ update!(**args)
302
+ end
303
+
304
+ # Update properties of this object
305
+ def update!(**args)
306
+ end
307
+ end
308
+
309
+ # Action details for resource references in assets that cannot be located.
310
+ class GoogleCloudDataplexV1ActionMissingResource
311
+ include Google::Apis::Core::Hashable
312
+
313
+ def initialize(**args)
314
+ update!(**args)
315
+ end
316
+
317
+ # Update properties of this object
318
+ def update!(**args)
319
+ end
320
+ end
321
+
322
+ # Action details for unauthorized resource issues raised to indicate that the
323
+ # service account associated with the lake instance is not authorized to access
324
+ # or manage the resource associated with an asset.
325
+ class GoogleCloudDataplexV1ActionUnauthorizedResource
326
+ include Google::Apis::Core::Hashable
327
+
328
+ def initialize(**args)
329
+ update!(**args)
330
+ end
331
+
332
+ # Update properties of this object
333
+ def update!(**args)
334
+ end
335
+ end
336
+
337
+ # An asset represents a cloud resource that is being managed within a lake as a
338
+ # member of a zone.
339
+ class GoogleCloudDataplexV1Asset
340
+ include Google::Apis::Core::Hashable
341
+
342
+ # Output only. The time when the asset was created.
343
+ # Corresponds to the JSON property `createTime`
344
+ # @return [String]
345
+ attr_accessor :create_time
346
+
347
+ # Optional. Description of the asset.
348
+ # Corresponds to the JSON property `description`
349
+ # @return [String]
350
+ attr_accessor :description
351
+
352
+ # Settings to manage the metadata discovery and publishing for an asset.
353
+ # Corresponds to the JSON property `discoverySpec`
354
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1AssetDiscoverySpec]
355
+ attr_accessor :discovery_spec
356
+
357
+ # Status of discovery for an asset.
358
+ # Corresponds to the JSON property `discoveryStatus`
359
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1AssetDiscoveryStatus]
360
+ attr_accessor :discovery_status
361
+
362
+ # Optional. User friendly display name.
363
+ # Corresponds to the JSON property `displayName`
364
+ # @return [String]
365
+ attr_accessor :display_name
366
+
367
+ # Optional. User defined labels for the asset.
368
+ # Corresponds to the JSON property `labels`
369
+ # @return [Hash<String,String>]
370
+ attr_accessor :labels
371
+
372
+ # Output only. The relative resource name of the asset, of the form: projects/`
373
+ # project_number`/locations/`location_id`/lakes/`lake_id`/zones/`zone_id`/assets/
374
+ # `asset_id`.
375
+ # Corresponds to the JSON property `name`
376
+ # @return [String]
377
+ attr_accessor :name
378
+
379
+ # Identifies the cloud resource that is referenced by this asset.
380
+ # Corresponds to the JSON property `resourceSpec`
381
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1AssetResourceSpec]
382
+ attr_accessor :resource_spec
383
+
384
+ # Status of the resource referenced by an asset.
385
+ # Corresponds to the JSON property `resourceStatus`
386
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1AssetResourceStatus]
387
+ attr_accessor :resource_status
388
+
389
+ # Security policy status of the asset. Data security policy, i.e., readers,
390
+ # writers & owners, should be specified in the lake/zone/asset IAM policy.
391
+ # Corresponds to the JSON property `securityStatus`
392
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1AssetSecurityStatus]
393
+ attr_accessor :security_status
394
+
395
+ # Output only. Current state of the asset.
396
+ # Corresponds to the JSON property `state`
397
+ # @return [String]
398
+ attr_accessor :state
399
+
400
+ # Output only. System generated globally unique ID for the asset. This ID will
401
+ # be different if the asset is deleted and re-created with the same name.
402
+ # Corresponds to the JSON property `uid`
403
+ # @return [String]
404
+ attr_accessor :uid
405
+
406
+ # Output only. The time when the asset was last updated.
407
+ # Corresponds to the JSON property `updateTime`
408
+ # @return [String]
409
+ attr_accessor :update_time
410
+
411
+ def initialize(**args)
412
+ update!(**args)
413
+ end
414
+
415
+ # Update properties of this object
416
+ def update!(**args)
417
+ @create_time = args[:create_time] if args.key?(:create_time)
418
+ @description = args[:description] if args.key?(:description)
419
+ @discovery_spec = args[:discovery_spec] if args.key?(:discovery_spec)
420
+ @discovery_status = args[:discovery_status] if args.key?(:discovery_status)
421
+ @display_name = args[:display_name] if args.key?(:display_name)
422
+ @labels = args[:labels] if args.key?(:labels)
423
+ @name = args[:name] if args.key?(:name)
424
+ @resource_spec = args[:resource_spec] if args.key?(:resource_spec)
425
+ @resource_status = args[:resource_status] if args.key?(:resource_status)
426
+ @security_status = args[:security_status] if args.key?(:security_status)
427
+ @state = args[:state] if args.key?(:state)
428
+ @uid = args[:uid] if args.key?(:uid)
429
+ @update_time = args[:update_time] if args.key?(:update_time)
430
+ end
431
+ end
432
+
433
+ # Settings to manage the metadata discovery and publishing for an asset.
434
+ class GoogleCloudDataplexV1AssetDiscoverySpec
435
+ include Google::Apis::Core::Hashable
436
+
437
+ # Describe CSV and similar semi-structured data formats.
438
+ # Corresponds to the JSON property `csvOptions`
439
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1AssetDiscoverySpecCsvOptions]
440
+ attr_accessor :csv_options
441
+
442
+ # Optional. Whether discovery is enabled.
443
+ # Corresponds to the JSON property `enabled`
444
+ # @return [Boolean]
445
+ attr_accessor :enabled
446
+ alias_method :enabled?, :enabled
447
+
448
+ # Optional. The list of patterns to apply for selecting data to exclude during
449
+ # discovery. For Cloud Storage bucket assets, these are interpreted as glob
450
+ # patterns used to match object names. For BigQuery dataset assets, these are
451
+ # interpreted as patterns to match table names.
452
+ # Corresponds to the JSON property `excludePatterns`
453
+ # @return [Array<String>]
454
+ attr_accessor :exclude_patterns
455
+
456
+ # Optional. The list of patterns to apply for selecting data to include during
457
+ # discovery if only a subset of the data should considered. For Cloud Storage
458
+ # bucket assets, these are interpreted as glob patterns used to match object
459
+ # names. For BigQuery dataset assets, these are interpreted as patterns to match
460
+ # table names.
461
+ # Corresponds to the JSON property `includePatterns`
462
+ # @return [Array<String>]
463
+ attr_accessor :include_patterns
464
+
465
+ # Describe JSON data format.
466
+ # Corresponds to the JSON property `jsonOptions`
467
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1AssetDiscoverySpecJsonOptions]
468
+ attr_accessor :json_options
469
+
470
+ # Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running
471
+ # discovery periodically. Successive discovery runs must be scheduled at least
472
+ # 60 minutes apart. The default value is to run discovery every 60 minutes. To
473
+ # explicitly set a timezone to the cron tab, apply a prefix in the cron tab: "
474
+ # CRON_TZ=$`IANA_TIME_ZONE`" or TZ=$`IANA_TIME_ZONE`". The $`IANA_TIME_ZONE` may
475
+ # only be a valid string from IANA time zone database. For example, "CRON_TZ=
476
+ # America/New_York 1 * * * *", or "TZ=America/New_York 1 * * * *".
477
+ # Corresponds to the JSON property `schedule`
478
+ # @return [String]
479
+ attr_accessor :schedule
480
+
481
+ def initialize(**args)
482
+ update!(**args)
483
+ end
484
+
485
+ # Update properties of this object
486
+ def update!(**args)
487
+ @csv_options = args[:csv_options] if args.key?(:csv_options)
488
+ @enabled = args[:enabled] if args.key?(:enabled)
489
+ @exclude_patterns = args[:exclude_patterns] if args.key?(:exclude_patterns)
490
+ @include_patterns = args[:include_patterns] if args.key?(:include_patterns)
491
+ @json_options = args[:json_options] if args.key?(:json_options)
492
+ @schedule = args[:schedule] if args.key?(:schedule)
493
+ end
494
+ end
495
+
496
+ # Describe CSV and similar semi-structured data formats.
497
+ class GoogleCloudDataplexV1AssetDiscoverySpecCsvOptions
498
+ include Google::Apis::Core::Hashable
499
+
500
+ # Optional. The delimiter being used to separate values. This defaults to ','.
501
+ # Corresponds to the JSON property `delimiter`
502
+ # @return [String]
503
+ attr_accessor :delimiter
504
+
505
+ # Optional. Whether to disable the inference of data type for CSV data. If true,
506
+ # all columns will be registered as strings.
507
+ # Corresponds to the JSON property `disableTypeInference`
508
+ # @return [Boolean]
509
+ attr_accessor :disable_type_inference
510
+ alias_method :disable_type_inference?, :disable_type_inference
511
+
512
+ # Optional. The character encoding of the data. The default is UTF-8.
513
+ # Corresponds to the JSON property `encoding`
514
+ # @return [String]
515
+ attr_accessor :encoding
516
+
517
+ # Optional. The number of rows to interpret as header rows that should be
518
+ # skipped when reading data rows.
519
+ # Corresponds to the JSON property `headerRows`
520
+ # @return [Fixnum]
521
+ attr_accessor :header_rows
522
+
523
+ def initialize(**args)
524
+ update!(**args)
525
+ end
526
+
527
+ # Update properties of this object
528
+ def update!(**args)
529
+ @delimiter = args[:delimiter] if args.key?(:delimiter)
530
+ @disable_type_inference = args[:disable_type_inference] if args.key?(:disable_type_inference)
531
+ @encoding = args[:encoding] if args.key?(:encoding)
532
+ @header_rows = args[:header_rows] if args.key?(:header_rows)
533
+ end
534
+ end
535
+
536
+ # Describe JSON data format.
537
+ class GoogleCloudDataplexV1AssetDiscoverySpecJsonOptions
538
+ include Google::Apis::Core::Hashable
539
+
540
+ # Optional. Whether to disable the inference of data type for Json data. If true,
541
+ # all columns will be registered as their primitive types (strings, number or
542
+ # boolean).
543
+ # Corresponds to the JSON property `disableTypeInference`
544
+ # @return [Boolean]
545
+ attr_accessor :disable_type_inference
546
+ alias_method :disable_type_inference?, :disable_type_inference
547
+
548
+ # Optional. The character encoding of the data. The default is UTF-8.
549
+ # Corresponds to the JSON property `encoding`
550
+ # @return [String]
551
+ attr_accessor :encoding
552
+
553
+ def initialize(**args)
554
+ update!(**args)
555
+ end
556
+
557
+ # Update properties of this object
558
+ def update!(**args)
559
+ @disable_type_inference = args[:disable_type_inference] if args.key?(:disable_type_inference)
560
+ @encoding = args[:encoding] if args.key?(:encoding)
561
+ end
562
+ end
563
+
564
+ # Status of discovery for an asset.
565
+ class GoogleCloudDataplexV1AssetDiscoveryStatus
566
+ include Google::Apis::Core::Hashable
567
+
568
+ # The duration of the last discovery run.
569
+ # Corresponds to the JSON property `lastRunDuration`
570
+ # @return [String]
571
+ attr_accessor :last_run_duration
572
+
573
+ # The start time of the last discovery run.
574
+ # Corresponds to the JSON property `lastRunTime`
575
+ # @return [String]
576
+ attr_accessor :last_run_time
577
+
578
+ # Additional information about the current state.
579
+ # Corresponds to the JSON property `message`
580
+ # @return [String]
581
+ attr_accessor :message
582
+
583
+ # The current status of the discovery feature.
584
+ # Corresponds to the JSON property `state`
585
+ # @return [String]
586
+ attr_accessor :state
587
+
588
+ # The aggregated data statistics for the asset reported by discovery.
589
+ # Corresponds to the JSON property `stats`
590
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1AssetDiscoveryStatusStats]
591
+ attr_accessor :stats
592
+
593
+ # Last update time of the status.
594
+ # Corresponds to the JSON property `updateTime`
595
+ # @return [String]
596
+ attr_accessor :update_time
597
+
598
+ def initialize(**args)
599
+ update!(**args)
600
+ end
601
+
602
+ # Update properties of this object
603
+ def update!(**args)
604
+ @last_run_duration = args[:last_run_duration] if args.key?(:last_run_duration)
605
+ @last_run_time = args[:last_run_time] if args.key?(:last_run_time)
606
+ @message = args[:message] if args.key?(:message)
607
+ @state = args[:state] if args.key?(:state)
608
+ @stats = args[:stats] if args.key?(:stats)
609
+ @update_time = args[:update_time] if args.key?(:update_time)
610
+ end
611
+ end
612
+
613
+ # The aggregated data statistics for the asset reported by discovery.
614
+ class GoogleCloudDataplexV1AssetDiscoveryStatusStats
615
+ include Google::Apis::Core::Hashable
616
+
617
+ # The count of data items within the referenced resource.
618
+ # Corresponds to the JSON property `dataItems`
619
+ # @return [Fixnum]
620
+ attr_accessor :data_items
621
+
622
+ # The number of stored data bytes within the referenced resource.
623
+ # Corresponds to the JSON property `dataSize`
624
+ # @return [Fixnum]
625
+ attr_accessor :data_size
626
+
627
+ # The count of fileset entities within the referenced resource.
628
+ # Corresponds to the JSON property `filesets`
629
+ # @return [Fixnum]
630
+ attr_accessor :filesets
631
+
632
+ # The count of table entities within the referenced resource.
633
+ # Corresponds to the JSON property `tables`
634
+ # @return [Fixnum]
635
+ attr_accessor :tables
636
+
637
+ def initialize(**args)
638
+ update!(**args)
639
+ end
640
+
641
+ # Update properties of this object
642
+ def update!(**args)
643
+ @data_items = args[:data_items] if args.key?(:data_items)
644
+ @data_size = args[:data_size] if args.key?(:data_size)
645
+ @filesets = args[:filesets] if args.key?(:filesets)
646
+ @tables = args[:tables] if args.key?(:tables)
647
+ end
648
+ end
649
+
650
+ # Identifies the cloud resource that is referenced by this asset.
651
+ class GoogleCloudDataplexV1AssetResourceSpec
652
+ include Google::Apis::Core::Hashable
653
+
654
+ # Immutable. Relative name of the cloud resource that contains the data that is
655
+ # being managed within a lake. For example: projects/`project_number`/buckets/`
656
+ # bucket_id` projects/`project_number`/datasets/`dataset_id`
657
+ # Corresponds to the JSON property `name`
658
+ # @return [String]
659
+ attr_accessor :name
660
+
661
+ # Required. Immutable. Type of resource.
662
+ # Corresponds to the JSON property `type`
663
+ # @return [String]
664
+ attr_accessor :type
665
+
666
+ def initialize(**args)
667
+ update!(**args)
668
+ end
669
+
670
+ # Update properties of this object
671
+ def update!(**args)
672
+ @name = args[:name] if args.key?(:name)
673
+ @type = args[:type] if args.key?(:type)
674
+ end
675
+ end
676
+
677
+ # Status of the resource referenced by an asset.
678
+ class GoogleCloudDataplexV1AssetResourceStatus
679
+ include Google::Apis::Core::Hashable
680
+
681
+ # Additional information about the current state.
682
+ # Corresponds to the JSON property `message`
683
+ # @return [String]
684
+ attr_accessor :message
685
+
686
+ # The current state of the managed resource.
687
+ # Corresponds to the JSON property `state`
688
+ # @return [String]
689
+ attr_accessor :state
690
+
691
+ # Last update time of the status.
692
+ # Corresponds to the JSON property `updateTime`
693
+ # @return [String]
694
+ attr_accessor :update_time
695
+
696
+ def initialize(**args)
697
+ update!(**args)
698
+ end
699
+
700
+ # Update properties of this object
701
+ def update!(**args)
702
+ @message = args[:message] if args.key?(:message)
703
+ @state = args[:state] if args.key?(:state)
704
+ @update_time = args[:update_time] if args.key?(:update_time)
705
+ end
706
+ end
707
+
708
+ # Security policy status of the asset. Data security policy, i.e., readers,
709
+ # writers & owners, should be specified in the lake/zone/asset IAM policy.
710
+ class GoogleCloudDataplexV1AssetSecurityStatus
711
+ include Google::Apis::Core::Hashable
712
+
713
+ # Additional information about the current state.
714
+ # Corresponds to the JSON property `message`
715
+ # @return [String]
716
+ attr_accessor :message
717
+
718
+ # The current state of the security policy applied to the attached resource.
719
+ # Corresponds to the JSON property `state`
720
+ # @return [String]
721
+ attr_accessor :state
722
+
723
+ # Last update time of the status.
724
+ # Corresponds to the JSON property `updateTime`
725
+ # @return [String]
726
+ attr_accessor :update_time
727
+
728
+ def initialize(**args)
729
+ update!(**args)
730
+ end
731
+
732
+ # Update properties of this object
733
+ def update!(**args)
734
+ @message = args[:message] if args.key?(:message)
735
+ @state = args[:state] if args.key?(:state)
736
+ @update_time = args[:update_time] if args.key?(:update_time)
737
+ end
738
+ end
739
+
740
+ # Aggregated status of the underlying assets of a lake or zone.
741
+ class GoogleCloudDataplexV1AssetStatus
742
+ include Google::Apis::Core::Hashable
743
+
744
+ # Number of active assets.
745
+ # Corresponds to the JSON property `activeAssets`
746
+ # @return [Fixnum]
747
+ attr_accessor :active_assets
748
+
749
+ # Number of assets that are in process of updating the security policy on
750
+ # attached resources.
751
+ # Corresponds to the JSON property `securityPolicyApplyingAssets`
752
+ # @return [Fixnum]
753
+ attr_accessor :security_policy_applying_assets
754
+
755
+ # Last update time of the status.
756
+ # Corresponds to the JSON property `updateTime`
757
+ # @return [String]
758
+ attr_accessor :update_time
759
+
760
+ def initialize(**args)
761
+ update!(**args)
762
+ end
763
+
764
+ # Update properties of this object
765
+ def update!(**args)
766
+ @active_assets = args[:active_assets] if args.key?(:active_assets)
767
+ @security_policy_applying_assets = args[:security_policy_applying_assets] if args.key?(:security_policy_applying_assets)
768
+ @update_time = args[:update_time] if args.key?(:update_time)
769
+ end
770
+ end
771
+
772
+ # Cancel task jobs.
773
+ class GoogleCloudDataplexV1CancelJobRequest
774
+ include Google::Apis::Core::Hashable
775
+
776
+ def initialize(**args)
777
+ update!(**args)
778
+ end
779
+
780
+ # Update properties of this object
781
+ def update!(**args)
782
+ end
783
+ end
784
+
785
+ # Content represents a user-visible notebook or a sql script
786
+ class GoogleCloudDataplexV1Content
787
+ include Google::Apis::Core::Hashable
788
+
789
+ # Output only. Content creation time.
790
+ # Corresponds to the JSON property `createTime`
791
+ # @return [String]
792
+ attr_accessor :create_time
793
+
794
+ # Required. Content data in string format.
795
+ # Corresponds to the JSON property `dataText`
796
+ # @return [String]
797
+ attr_accessor :data_text
798
+
799
+ # Optional. Description of the content.
800
+ # Corresponds to the JSON property `description`
801
+ # @return [String]
802
+ attr_accessor :description
803
+
804
+ # Optional. User defined labels for the content.
805
+ # Corresponds to the JSON property `labels`
806
+ # @return [Hash<String,String>]
807
+ attr_accessor :labels
808
+
809
+ # Output only. The relative resource name of the content, of the form: projects/`
810
+ # project_id`/locations/`location_id`/lakes/`lake_id`/content/`content_id`
811
+ # Corresponds to the JSON property `name`
812
+ # @return [String]
813
+ attr_accessor :name
814
+
815
+ # Configuration for Notebook content.
816
+ # Corresponds to the JSON property `notebook`
817
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ContentNotebook]
818
+ attr_accessor :notebook
819
+
820
+ # Required. The path for the Content file, represented as directory structure.
821
+ # Unique within a lake. Limited to alphanumerics, hyphens, underscores, dots and
822
+ # slashes.
823
+ # Corresponds to the JSON property `path`
824
+ # @return [String]
825
+ attr_accessor :path
826
+
827
+ # Configuration for the Sql Script content.
828
+ # Corresponds to the JSON property `sqlScript`
829
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ContentSqlScript]
830
+ attr_accessor :sql_script
831
+
832
+ # Output only. System generated globally unique ID for the content. This ID will
833
+ # be different if the content is deleted and re-created with the same name.
834
+ # Corresponds to the JSON property `uid`
835
+ # @return [String]
836
+ attr_accessor :uid
837
+
838
+ # Output only. The time when the content was last updated.
839
+ # Corresponds to the JSON property `updateTime`
840
+ # @return [String]
841
+ attr_accessor :update_time
842
+
843
+ def initialize(**args)
844
+ update!(**args)
845
+ end
846
+
847
+ # Update properties of this object
848
+ def update!(**args)
849
+ @create_time = args[:create_time] if args.key?(:create_time)
850
+ @data_text = args[:data_text] if args.key?(:data_text)
851
+ @description = args[:description] if args.key?(:description)
852
+ @labels = args[:labels] if args.key?(:labels)
853
+ @name = args[:name] if args.key?(:name)
854
+ @notebook = args[:notebook] if args.key?(:notebook)
855
+ @path = args[:path] if args.key?(:path)
856
+ @sql_script = args[:sql_script] if args.key?(:sql_script)
857
+ @uid = args[:uid] if args.key?(:uid)
858
+ @update_time = args[:update_time] if args.key?(:update_time)
859
+ end
860
+ end
861
+
862
+ # Configuration for Notebook content.
863
+ class GoogleCloudDataplexV1ContentNotebook
864
+ include Google::Apis::Core::Hashable
865
+
866
+ # Required. Kernel Type of the notebook.
867
+ # Corresponds to the JSON property `kernelType`
868
+ # @return [String]
869
+ attr_accessor :kernel_type
870
+
871
+ def initialize(**args)
872
+ update!(**args)
873
+ end
874
+
875
+ # Update properties of this object
876
+ def update!(**args)
877
+ @kernel_type = args[:kernel_type] if args.key?(:kernel_type)
878
+ end
879
+ end
880
+
881
+ # Configuration for the Sql Script content.
882
+ class GoogleCloudDataplexV1ContentSqlScript
883
+ include Google::Apis::Core::Hashable
884
+
885
+ # Required. Query Engine to be used for the Sql Query.
886
+ # Corresponds to the JSON property `engine`
887
+ # @return [String]
888
+ attr_accessor :engine
889
+
890
+ def initialize(**args)
891
+ update!(**args)
892
+ end
893
+
894
+ # Update properties of this object
895
+ def update!(**args)
896
+ @engine = args[:engine] if args.key?(:engine)
897
+ end
898
+ end
899
+
900
+ # The payload associated with Discovery data processing.
901
+ class GoogleCloudDataplexV1DiscoveryEvent
902
+ include Google::Apis::Core::Hashable
903
+
904
+ # Details about the action.
905
+ # Corresponds to the JSON property `action`
906
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DiscoveryEventActionDetails]
907
+ attr_accessor :action
908
+
909
+ # The id of the associated asset.
910
+ # Corresponds to the JSON property `assetId`
911
+ # @return [String]
912
+ attr_accessor :asset_id
913
+
914
+ # Details about configuration events.
915
+ # Corresponds to the JSON property `config`
916
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DiscoveryEventConfigDetails]
917
+ attr_accessor :config
918
+
919
+ # The data location associated with the event.
920
+ # Corresponds to the JSON property `dataLocation`
921
+ # @return [String]
922
+ attr_accessor :data_location
923
+
924
+ # Details about the entity.
925
+ # Corresponds to the JSON property `entity`
926
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DiscoveryEventEntityDetails]
927
+ attr_accessor :entity
928
+
929
+ # The id of the associated lake.
930
+ # Corresponds to the JSON property `lakeId`
931
+ # @return [String]
932
+ attr_accessor :lake_id
933
+
934
+ # The log message.
935
+ # Corresponds to the JSON property `message`
936
+ # @return [String]
937
+ attr_accessor :message
938
+
939
+ # Details about the partition.
940
+ # Corresponds to the JSON property `partition`
941
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1DiscoveryEventPartitionDetails]
942
+ attr_accessor :partition
943
+
944
+ # The type of the event being logged.
945
+ # Corresponds to the JSON property `type`
946
+ # @return [String]
947
+ attr_accessor :type
948
+
949
+ # The id of the associated zone.
950
+ # Corresponds to the JSON property `zoneId`
951
+ # @return [String]
952
+ attr_accessor :zone_id
953
+
954
+ def initialize(**args)
955
+ update!(**args)
956
+ end
957
+
958
+ # Update properties of this object
959
+ def update!(**args)
960
+ @action = args[:action] if args.key?(:action)
961
+ @asset_id = args[:asset_id] if args.key?(:asset_id)
962
+ @config = args[:config] if args.key?(:config)
963
+ @data_location = args[:data_location] if args.key?(:data_location)
964
+ @entity = args[:entity] if args.key?(:entity)
965
+ @lake_id = args[:lake_id] if args.key?(:lake_id)
966
+ @message = args[:message] if args.key?(:message)
967
+ @partition = args[:partition] if args.key?(:partition)
968
+ @type = args[:type] if args.key?(:type)
969
+ @zone_id = args[:zone_id] if args.key?(:zone_id)
970
+ end
971
+ end
972
+
973
+ # Details about the action.
974
+ class GoogleCloudDataplexV1DiscoveryEventActionDetails
975
+ include Google::Apis::Core::Hashable
976
+
977
+ # The type of action. Eg. IncompatibleDataSchema, InvalidDataFormat
978
+ # Corresponds to the JSON property `type`
979
+ # @return [String]
980
+ attr_accessor :type
981
+
982
+ def initialize(**args)
983
+ update!(**args)
984
+ end
985
+
986
+ # Update properties of this object
987
+ def update!(**args)
988
+ @type = args[:type] if args.key?(:type)
989
+ end
990
+ end
991
+
992
+ # Details about configuration events.
993
+ class GoogleCloudDataplexV1DiscoveryEventConfigDetails
994
+ include Google::Apis::Core::Hashable
995
+
996
+ # A list of discovery configuration parameters in effect. The keys are the field
997
+ # paths within DiscoverySpec. Eg. includePatterns, excludePatterns, csvOptions.
998
+ # disableTypeInference, etc.
999
+ # Corresponds to the JSON property `parameters`
1000
+ # @return [Hash<String,String>]
1001
+ attr_accessor :parameters
1002
+
1003
+ def initialize(**args)
1004
+ update!(**args)
1005
+ end
1006
+
1007
+ # Update properties of this object
1008
+ def update!(**args)
1009
+ @parameters = args[:parameters] if args.key?(:parameters)
1010
+ end
1011
+ end
1012
+
1013
+ # Details about the entity.
1014
+ class GoogleCloudDataplexV1DiscoveryEventEntityDetails
1015
+ include Google::Apis::Core::Hashable
1016
+
1017
+ # The name of the entity resource. The name is the fully-qualified resource name.
1018
+ # Corresponds to the JSON property `entity`
1019
+ # @return [String]
1020
+ attr_accessor :entity
1021
+
1022
+ # The type of the entity resource.
1023
+ # Corresponds to the JSON property `type`
1024
+ # @return [String]
1025
+ attr_accessor :type
1026
+
1027
+ def initialize(**args)
1028
+ update!(**args)
1029
+ end
1030
+
1031
+ # Update properties of this object
1032
+ def update!(**args)
1033
+ @entity = args[:entity] if args.key?(:entity)
1034
+ @type = args[:type] if args.key?(:type)
1035
+ end
1036
+ end
1037
+
1038
+ # Details about the partition.
1039
+ class GoogleCloudDataplexV1DiscoveryEventPartitionDetails
1040
+ include Google::Apis::Core::Hashable
1041
+
1042
+ # The name to the containing entity resource. The name is the fully-qualified
1043
+ # resource name.
1044
+ # Corresponds to the JSON property `entity`
1045
+ # @return [String]
1046
+ attr_accessor :entity
1047
+
1048
+ # The name to the partition resource. The name is the fully-qualified resource
1049
+ # name.
1050
+ # Corresponds to the JSON property `partition`
1051
+ # @return [String]
1052
+ attr_accessor :partition
1053
+
1054
+ # The type of the containing entity resource.
1055
+ # Corresponds to the JSON property `type`
1056
+ # @return [String]
1057
+ attr_accessor :type
1058
+
1059
+ def initialize(**args)
1060
+ update!(**args)
1061
+ end
1062
+
1063
+ # Update properties of this object
1064
+ def update!(**args)
1065
+ @entity = args[:entity] if args.key?(:entity)
1066
+ @partition = args[:partition] if args.key?(:partition)
1067
+ @type = args[:type] if args.key?(:type)
1068
+ end
1069
+ end
1070
+
1071
+ # Represents tables and fileset metadata contained within a zone.
1072
+ class GoogleCloudDataplexV1Entity
1073
+ include Google::Apis::Core::Hashable
1074
+
1075
+ # Required. Immutable. The ID of the asset associated with the storage location
1076
+ # containing the entity data. The entity must be with in the same zone with the
1077
+ # asset.
1078
+ # Corresponds to the JSON property `asset`
1079
+ # @return [String]
1080
+ attr_accessor :asset
1081
+
1082
+ # Output only. The name of the associated Data Catalog entry.
1083
+ # Corresponds to the JSON property `catalogEntry`
1084
+ # @return [String]
1085
+ attr_accessor :catalog_entry
1086
+
1087
+ # Provides compatibility information for various metadata stores.
1088
+ # Corresponds to the JSON property `compatibility`
1089
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1EntityCompatibilityStatus]
1090
+ attr_accessor :compatibility
1091
+
1092
+ # Output only. The time when the entity was created.
1093
+ # Corresponds to the JSON property `createTime`
1094
+ # @return [String]
1095
+ attr_accessor :create_time
1096
+
1097
+ # Required. Immutable. The storage path of the entity data. For Cloud Storage
1098
+ # data, this is the fully-qualified path to the entity, such as gs://bucket/path/
1099
+ # to/data. For BigQuery data, this is the name of the table resource, such as
1100
+ # projects/project_id/datasets/dataset_id/tables/table_id.
1101
+ # Corresponds to the JSON property `dataPath`
1102
+ # @return [String]
1103
+ attr_accessor :data_path
1104
+
1105
+ # Optional. The set of items within the data path constituting the data in the
1106
+ # entity, represented as a glob path. Example: gs://bucket/path/to/data/**/*.csv.
1107
+ # Corresponds to the JSON property `dataPathPattern`
1108
+ # @return [String]
1109
+ attr_accessor :data_path_pattern
1110
+
1111
+ # Optional. User friendly longer description text. Must be shorter than or equal
1112
+ # to 1024 characters.
1113
+ # Corresponds to the JSON property `description`
1114
+ # @return [String]
1115
+ attr_accessor :description
1116
+
1117
+ # Optional. Display name must be shorter than or equal to 63 characters.
1118
+ # Corresponds to the JSON property `displayName`
1119
+ # @return [String]
1120
+ attr_accessor :display_name
1121
+
1122
+ # Optional. The etag for this entity. Required for update and delete requests.
1123
+ # Must match the server's etag.
1124
+ # Corresponds to the JSON property `etag`
1125
+ # @return [String]
1126
+ attr_accessor :etag
1127
+
1128
+ # Describes the format of the data within its storage location.
1129
+ # Corresponds to the JSON property `format`
1130
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1StorageFormat]
1131
+ attr_accessor :format
1132
+
1133
+ # Required. A user-provided entity ID. It is mutable, and will be used as the
1134
+ # published table name. Specifying a new ID in an update entity request will
1135
+ # override the existing value. The ID must contain only letters (a-z, A-Z),
1136
+ # numbers (0-9), and underscores. Must begin with a letter.
1137
+ # Corresponds to the JSON property `id`
1138
+ # @return [String]
1139
+ attr_accessor :id
1140
+
1141
+ # Output only. The resource name of the entity, of the form: projects/`
1142
+ # project_number`/locations/`location_id`/lakes/`lake_id`/zones/`zone_id`/
1143
+ # entities/`id`.
1144
+ # Corresponds to the JSON property `name`
1145
+ # @return [String]
1146
+ attr_accessor :name
1147
+
1148
+ # Schema information describing the structure and layout of the data.
1149
+ # Corresponds to the JSON property `schema`
1150
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1Schema]
1151
+ attr_accessor :schema
1152
+
1153
+ # Required. Immutable. Identifies the storage system of the entity data.
1154
+ # Corresponds to the JSON property `system`
1155
+ # @return [String]
1156
+ attr_accessor :system
1157
+
1158
+ # Required. Immutable. The type of entity.
1159
+ # Corresponds to the JSON property `type`
1160
+ # @return [String]
1161
+ attr_accessor :type
1162
+
1163
+ # Output only. The time when the entity was last updated.
1164
+ # Corresponds to the JSON property `updateTime`
1165
+ # @return [String]
1166
+ attr_accessor :update_time
1167
+
1168
+ def initialize(**args)
1169
+ update!(**args)
1170
+ end
1171
+
1172
+ # Update properties of this object
1173
+ def update!(**args)
1174
+ @asset = args[:asset] if args.key?(:asset)
1175
+ @catalog_entry = args[:catalog_entry] if args.key?(:catalog_entry)
1176
+ @compatibility = args[:compatibility] if args.key?(:compatibility)
1177
+ @create_time = args[:create_time] if args.key?(:create_time)
1178
+ @data_path = args[:data_path] if args.key?(:data_path)
1179
+ @data_path_pattern = args[:data_path_pattern] if args.key?(:data_path_pattern)
1180
+ @description = args[:description] if args.key?(:description)
1181
+ @display_name = args[:display_name] if args.key?(:display_name)
1182
+ @etag = args[:etag] if args.key?(:etag)
1183
+ @format = args[:format] if args.key?(:format)
1184
+ @id = args[:id] if args.key?(:id)
1185
+ @name = args[:name] if args.key?(:name)
1186
+ @schema = args[:schema] if args.key?(:schema)
1187
+ @system = args[:system] if args.key?(:system)
1188
+ @type = args[:type] if args.key?(:type)
1189
+ @update_time = args[:update_time] if args.key?(:update_time)
1190
+ end
1191
+ end
1192
+
1193
+ # Provides compatibility information for various metadata stores.
1194
+ class GoogleCloudDataplexV1EntityCompatibilityStatus
1195
+ include Google::Apis::Core::Hashable
1196
+
1197
+ # Provides compatibility information for a specific metadata store.
1198
+ # Corresponds to the JSON property `bigquery`
1199
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1EntityCompatibilityStatusCompatibility]
1200
+ attr_accessor :bigquery
1201
+
1202
+ # Provides compatibility information for a specific metadata store.
1203
+ # Corresponds to the JSON property `hiveMetastore`
1204
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1EntityCompatibilityStatusCompatibility]
1205
+ attr_accessor :hive_metastore
1206
+
1207
+ def initialize(**args)
1208
+ update!(**args)
1209
+ end
1210
+
1211
+ # Update properties of this object
1212
+ def update!(**args)
1213
+ @bigquery = args[:bigquery] if args.key?(:bigquery)
1214
+ @hive_metastore = args[:hive_metastore] if args.key?(:hive_metastore)
1215
+ end
1216
+ end
1217
+
1218
+ # Provides compatibility information for a specific metadata store.
1219
+ class GoogleCloudDataplexV1EntityCompatibilityStatusCompatibility
1220
+ include Google::Apis::Core::Hashable
1221
+
1222
+ # Output only. Whether the entity is compatible and can be represented in the
1223
+ # metadata store.
1224
+ # Corresponds to the JSON property `compatible`
1225
+ # @return [Boolean]
1226
+ attr_accessor :compatible
1227
+ alias_method :compatible?, :compatible
1228
+
1229
+ # Output only. Provides additional detail if the entity is incompatible with the
1230
+ # metadata store.
1231
+ # Corresponds to the JSON property `reason`
1232
+ # @return [String]
1233
+ attr_accessor :reason
1234
+
1235
+ def initialize(**args)
1236
+ update!(**args)
1237
+ end
1238
+
1239
+ # Update properties of this object
1240
+ def update!(**args)
1241
+ @compatible = args[:compatible] if args.key?(:compatible)
1242
+ @reason = args[:reason] if args.key?(:reason)
1243
+ end
1244
+ end
1245
+
1246
+ # Environment represents a user-visible compute infrastructure for analytics
1247
+ # within a lake.
1248
+ class GoogleCloudDataplexV1Environment
1249
+ include Google::Apis::Core::Hashable
1250
+
1251
+ # Output only. Environment creation time.
1252
+ # Corresponds to the JSON property `createTime`
1253
+ # @return [String]
1254
+ attr_accessor :create_time
1255
+
1256
+ # Optional. Description of the environment.
1257
+ # Corresponds to the JSON property `description`
1258
+ # @return [String]
1259
+ attr_accessor :description
1260
+
1261
+ # Optional. User friendly display name.
1262
+ # Corresponds to the JSON property `displayName`
1263
+ # @return [String]
1264
+ attr_accessor :display_name
1265
+
1266
+ # Output only. URI Endpoints to access sessions associated with the Environment.
1267
+ # Corresponds to the JSON property `endpoints`
1268
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1EnvironmentEndpoints]
1269
+ attr_accessor :endpoints
1270
+
1271
+ # Configuration for the underlying infrastructure used to run workloads.
1272
+ # Corresponds to the JSON property `infrastructureSpec`
1273
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1EnvironmentInfrastructureSpec]
1274
+ attr_accessor :infrastructure_spec
1275
+
1276
+ # Optional. User defined labels for the environment.
1277
+ # Corresponds to the JSON property `labels`
1278
+ # @return [Hash<String,String>]
1279
+ attr_accessor :labels
1280
+
1281
+ # Output only. The relative resource name of the environment, of the form:
1282
+ # projects/`project_id`/locations/`location_id`/lakes/`lake_id`/environment/`
1283
+ # environment_id`
1284
+ # Corresponds to the JSON property `name`
1285
+ # @return [String]
1286
+ attr_accessor :name
1287
+
1288
+ # Optional. Configuration for sessions created for this environment.
1289
+ # Corresponds to the JSON property `sessionSpec`
1290
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1EnvironmentSessionSpec]
1291
+ attr_accessor :session_spec
1292
+
1293
+ # Output only. Status of sessions created for this environment.
1294
+ # Corresponds to the JSON property `sessionStatus`
1295
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1EnvironmentSessionStatus]
1296
+ attr_accessor :session_status
1297
+
1298
+ # Output only. Current state of the environment.
1299
+ # Corresponds to the JSON property `state`
1300
+ # @return [String]
1301
+ attr_accessor :state
1302
+
1303
+ # Output only. System generated globally unique ID for the environment. This ID
1304
+ # will be different if the environment is deleted and re-created with the same
1305
+ # name.
1306
+ # Corresponds to the JSON property `uid`
1307
+ # @return [String]
1308
+ attr_accessor :uid
1309
+
1310
+ # Output only. The time when the environment was last updated.
1311
+ # Corresponds to the JSON property `updateTime`
1312
+ # @return [String]
1313
+ attr_accessor :update_time
1314
+
1315
+ def initialize(**args)
1316
+ update!(**args)
1317
+ end
1318
+
1319
+ # Update properties of this object
1320
+ def update!(**args)
1321
+ @create_time = args[:create_time] if args.key?(:create_time)
1322
+ @description = args[:description] if args.key?(:description)
1323
+ @display_name = args[:display_name] if args.key?(:display_name)
1324
+ @endpoints = args[:endpoints] if args.key?(:endpoints)
1325
+ @infrastructure_spec = args[:infrastructure_spec] if args.key?(:infrastructure_spec)
1326
+ @labels = args[:labels] if args.key?(:labels)
1327
+ @name = args[:name] if args.key?(:name)
1328
+ @session_spec = args[:session_spec] if args.key?(:session_spec)
1329
+ @session_status = args[:session_status] if args.key?(:session_status)
1330
+ @state = args[:state] if args.key?(:state)
1331
+ @uid = args[:uid] if args.key?(:uid)
1332
+ @update_time = args[:update_time] if args.key?(:update_time)
1333
+ end
1334
+ end
1335
+
1336
+ #
1337
+ class GoogleCloudDataplexV1EnvironmentEndpoints
1338
+ include Google::Apis::Core::Hashable
1339
+
1340
+ # Output only. URI to serve notebook APIs
1341
+ # Corresponds to the JSON property `notebooks`
1342
+ # @return [String]
1343
+ attr_accessor :notebooks
1344
+
1345
+ # Output only. URI to serve SQL APIs
1346
+ # Corresponds to the JSON property `sql`
1347
+ # @return [String]
1348
+ attr_accessor :sql
1349
+
1350
+ def initialize(**args)
1351
+ update!(**args)
1352
+ end
1353
+
1354
+ # Update properties of this object
1355
+ def update!(**args)
1356
+ @notebooks = args[:notebooks] if args.key?(:notebooks)
1357
+ @sql = args[:sql] if args.key?(:sql)
1358
+ end
1359
+ end
1360
+
1361
+ # Configuration for the underlying infrastructure used to run workloads.
1362
+ class GoogleCloudDataplexV1EnvironmentInfrastructureSpec
1363
+ include Google::Apis::Core::Hashable
1364
+
1365
+ # Compute resources associated with the analyze interactive workloads.
1366
+ # Corresponds to the JSON property `compute`
1367
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1EnvironmentInfrastructureSpecComputeResources]
1368
+ attr_accessor :compute
1369
+
1370
+ # Software Runtime Configuration to run Analyze.
1371
+ # Corresponds to the JSON property `osImage`
1372
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1EnvironmentInfrastructureSpecOsImageRuntime]
1373
+ attr_accessor :os_image
1374
+
1375
+ def initialize(**args)
1376
+ update!(**args)
1377
+ end
1378
+
1379
+ # Update properties of this object
1380
+ def update!(**args)
1381
+ @compute = args[:compute] if args.key?(:compute)
1382
+ @os_image = args[:os_image] if args.key?(:os_image)
1383
+ end
1384
+ end
1385
+
1386
+ # Compute resources associated with the analyze interactive workloads.
1387
+ class GoogleCloudDataplexV1EnvironmentInfrastructureSpecComputeResources
1388
+ include Google::Apis::Core::Hashable
1389
+
1390
+ # Optional. Size in GB of the disk. Default is 100 GB.
1391
+ # Corresponds to the JSON property `diskSizeGb`
1392
+ # @return [Fixnum]
1393
+ attr_accessor :disk_size_gb
1394
+
1395
+ # Optional. Max configurable nodes. If max_node_count > node_count, then auto-
1396
+ # scaling is enabled.
1397
+ # Corresponds to the JSON property `maxNodeCount`
1398
+ # @return [Fixnum]
1399
+ attr_accessor :max_node_count
1400
+
1401
+ # Optional. Total number of nodes in the sessions created for this environment.
1402
+ # Corresponds to the JSON property `nodeCount`
1403
+ # @return [Fixnum]
1404
+ attr_accessor :node_count
1405
+
1406
+ def initialize(**args)
1407
+ update!(**args)
1408
+ end
1409
+
1410
+ # Update properties of this object
1411
+ def update!(**args)
1412
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
1413
+ @max_node_count = args[:max_node_count] if args.key?(:max_node_count)
1414
+ @node_count = args[:node_count] if args.key?(:node_count)
1415
+ end
1416
+ end
1417
+
1418
+ # Software Runtime Configuration to run Analyze.
1419
+ class GoogleCloudDataplexV1EnvironmentInfrastructureSpecOsImageRuntime
1420
+ include Google::Apis::Core::Hashable
1421
+
1422
+ # Required. Dataplex Image version.
1423
+ # Corresponds to the JSON property `imageVersion`
1424
+ # @return [String]
1425
+ attr_accessor :image_version
1426
+
1427
+ # Optional. List of Java jars to be included in the runtime environment. Valid
1428
+ # input includes Cloud Storage URIs to Jar binaries. For example, gs://bucket-
1429
+ # name/my/path/to/file.jar
1430
+ # Corresponds to the JSON property `javaLibraries`
1431
+ # @return [Array<String>]
1432
+ attr_accessor :java_libraries
1433
+
1434
+ # Optional. Spark properties to provide configuration for use in sessions
1435
+ # created for this environment. The properties to set on daemon config files.
1436
+ # Property keys are specified in prefix:property format. The prefix must be "
1437
+ # spark".
1438
+ # Corresponds to the JSON property `properties`
1439
+ # @return [Hash<String,String>]
1440
+ attr_accessor :properties
1441
+
1442
+ # Optional. A list of python packages to be installed. Valid formats include
1443
+ # Cloud Storage URI to a PIP installable library. For example, gs://bucket-name/
1444
+ # my/path/to/lib.tar.gz
1445
+ # Corresponds to the JSON property `pythonPackages`
1446
+ # @return [Array<String>]
1447
+ attr_accessor :python_packages
1448
+
1449
+ def initialize(**args)
1450
+ update!(**args)
1451
+ end
1452
+
1453
+ # Update properties of this object
1454
+ def update!(**args)
1455
+ @image_version = args[:image_version] if args.key?(:image_version)
1456
+ @java_libraries = args[:java_libraries] if args.key?(:java_libraries)
1457
+ @properties = args[:properties] if args.key?(:properties)
1458
+ @python_packages = args[:python_packages] if args.key?(:python_packages)
1459
+ end
1460
+ end
1461
+
1462
+ #
1463
+ class GoogleCloudDataplexV1EnvironmentSessionSpec
1464
+ include Google::Apis::Core::Hashable
1465
+
1466
+ # Optional. If True, this causes sessions to be pre-created and available for
1467
+ # faster startup to enable interactive exploration use-cases. This defaults to
1468
+ # False to avoid additional billed charges. These can only be set to True for
1469
+ # the environment with name set to "default", and with default configuration.
1470
+ # Corresponds to the JSON property `enableFastStartup`
1471
+ # @return [Boolean]
1472
+ attr_accessor :enable_fast_startup
1473
+ alias_method :enable_fast_startup?, :enable_fast_startup
1474
+
1475
+ # Optional. The idle time configuration of the session. The session will be auto-
1476
+ # terminated at the end of this period.
1477
+ # Corresponds to the JSON property `maxIdleDuration`
1478
+ # @return [String]
1479
+ attr_accessor :max_idle_duration
1480
+
1481
+ def initialize(**args)
1482
+ update!(**args)
1483
+ end
1484
+
1485
+ # Update properties of this object
1486
+ def update!(**args)
1487
+ @enable_fast_startup = args[:enable_fast_startup] if args.key?(:enable_fast_startup)
1488
+ @max_idle_duration = args[:max_idle_duration] if args.key?(:max_idle_duration)
1489
+ end
1490
+ end
1491
+
1492
+ #
1493
+ class GoogleCloudDataplexV1EnvironmentSessionStatus
1494
+ include Google::Apis::Core::Hashable
1495
+
1496
+ # Output only. Queries over sessions to mark whether the environment is
1497
+ # currently active or not
1498
+ # Corresponds to the JSON property `active`
1499
+ # @return [Boolean]
1500
+ attr_accessor :active
1501
+ alias_method :active?, :active
1502
+
1503
+ def initialize(**args)
1504
+ update!(**args)
1505
+ end
1506
+
1507
+ # Update properties of this object
1508
+ def update!(**args)
1509
+ @active = args[:active] if args.key?(:active)
1510
+ end
1511
+ end
1512
+
1513
+ # A job represents an instance of a task.
1514
+ class GoogleCloudDataplexV1Job
1515
+ include Google::Apis::Core::Hashable
1516
+
1517
+ # Output only. The time when the job ended.
1518
+ # Corresponds to the JSON property `endTime`
1519
+ # @return [String]
1520
+ attr_accessor :end_time
1521
+
1522
+ # Output only. Additional information about the current state.
1523
+ # Corresponds to the JSON property `message`
1524
+ # @return [String]
1525
+ attr_accessor :message
1526
+
1527
+ # Output only. The relative resource name of the job, of the form: projects/`
1528
+ # project_number`/locations/`location_id`/lakes/`lake_id`/ tasks/`task_id`/jobs/`
1529
+ # job_id`.
1530
+ # Corresponds to the JSON property `name`
1531
+ # @return [String]
1532
+ attr_accessor :name
1533
+
1534
+ # Output only. . The number of times the job has been retried (excluding the
1535
+ # initial attempt).
1536
+ # Corresponds to the JSON property `retryCount`
1537
+ # @return [Fixnum]
1538
+ attr_accessor :retry_count
1539
+
1540
+ # Output only. The underlying service running a job.
1541
+ # Corresponds to the JSON property `service`
1542
+ # @return [String]
1543
+ attr_accessor :service
1544
+
1545
+ # Output only. The full resource name for the job run under a particular service.
1546
+ # Corresponds to the JSON property `serviceJob`
1547
+ # @return [String]
1548
+ attr_accessor :service_job
1549
+
1550
+ # Output only. The time when the job was started.
1551
+ # Corresponds to the JSON property `startTime`
1552
+ # @return [String]
1553
+ attr_accessor :start_time
1554
+
1555
+ # Output only. Execution state for the job.
1556
+ # Corresponds to the JSON property `state`
1557
+ # @return [String]
1558
+ attr_accessor :state
1559
+
1560
+ # Output only. System generated globally unique ID for the job.
1561
+ # Corresponds to the JSON property `uid`
1562
+ # @return [String]
1563
+ attr_accessor :uid
1564
+
1565
+ def initialize(**args)
1566
+ update!(**args)
1567
+ end
1568
+
1569
+ # Update properties of this object
1570
+ def update!(**args)
1571
+ @end_time = args[:end_time] if args.key?(:end_time)
1572
+ @message = args[:message] if args.key?(:message)
1573
+ @name = args[:name] if args.key?(:name)
1574
+ @retry_count = args[:retry_count] if args.key?(:retry_count)
1575
+ @service = args[:service] if args.key?(:service)
1576
+ @service_job = args[:service_job] if args.key?(:service_job)
1577
+ @start_time = args[:start_time] if args.key?(:start_time)
1578
+ @state = args[:state] if args.key?(:state)
1579
+ @uid = args[:uid] if args.key?(:uid)
1580
+ end
1581
+ end
1582
+
1583
+ # The payload associated with Job logs that contains events describing jobs that
1584
+ # have run within a Lake.
1585
+ class GoogleCloudDataplexV1JobEvent
1586
+ include Google::Apis::Core::Hashable
1587
+
1588
+ # The time when the job ended running.
1589
+ # Corresponds to the JSON property `endTime`
1590
+ # @return [String]
1591
+ attr_accessor :end_time
1592
+
1593
+ # The unique id identifying the job.
1594
+ # Corresponds to the JSON property `jobId`
1595
+ # @return [String]
1596
+ attr_accessor :job_id
1597
+
1598
+ # The log message.
1599
+ # Corresponds to the JSON property `message`
1600
+ # @return [String]
1601
+ attr_accessor :message
1602
+
1603
+ # The number of retries.
1604
+ # Corresponds to the JSON property `retries`
1605
+ # @return [Fixnum]
1606
+ attr_accessor :retries
1607
+
1608
+ # The service used to execute the job.
1609
+ # Corresponds to the JSON property `service`
1610
+ # @return [String]
1611
+ attr_accessor :service
1612
+
1613
+ # The reference to the job within the service.
1614
+ # Corresponds to the JSON property `serviceJob`
1615
+ # @return [String]
1616
+ attr_accessor :service_job
1617
+
1618
+ # The time when the job started running.
1619
+ # Corresponds to the JSON property `startTime`
1620
+ # @return [String]
1621
+ attr_accessor :start_time
1622
+
1623
+ # The job state on completion.
1624
+ # Corresponds to the JSON property `state`
1625
+ # @return [String]
1626
+ attr_accessor :state
1627
+
1628
+ # The type of the job.
1629
+ # Corresponds to the JSON property `type`
1630
+ # @return [String]
1631
+ attr_accessor :type
1632
+
1633
+ def initialize(**args)
1634
+ update!(**args)
1635
+ end
1636
+
1637
+ # Update properties of this object
1638
+ def update!(**args)
1639
+ @end_time = args[:end_time] if args.key?(:end_time)
1640
+ @job_id = args[:job_id] if args.key?(:job_id)
1641
+ @message = args[:message] if args.key?(:message)
1642
+ @retries = args[:retries] if args.key?(:retries)
1643
+ @service = args[:service] if args.key?(:service)
1644
+ @service_job = args[:service_job] if args.key?(:service_job)
1645
+ @start_time = args[:start_time] if args.key?(:start_time)
1646
+ @state = args[:state] if args.key?(:state)
1647
+ @type = args[:type] if args.key?(:type)
1648
+ end
1649
+ end
1650
+
1651
+ # A lake is a centralized repository for managing enterprise data across the
1652
+ # organization distributed across many cloud projects, and stored in a variety
1653
+ # of storage services such as Google Cloud Storage and BigQuery. The resources
1654
+ # attached to a lake are referred to as managed resources. Data within these
1655
+ # managed resources can be structured or unstructured. A lake provides data
1656
+ # admins with tools to organize, secure and manage their data at scale, and
1657
+ # provides data scientists and data engineers an integrated experience to easily
1658
+ # search, discover, analyze and transform data and associated metadata.
1659
+ class GoogleCloudDataplexV1Lake
1660
+ include Google::Apis::Core::Hashable
1661
+
1662
+ # Aggregated status of the underlying assets of a lake or zone.
1663
+ # Corresponds to the JSON property `assetStatus`
1664
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1AssetStatus]
1665
+ attr_accessor :asset_status
1666
+
1667
+ # Output only. The time when the lake was created.
1668
+ # Corresponds to the JSON property `createTime`
1669
+ # @return [String]
1670
+ attr_accessor :create_time
1671
+
1672
+ # Optional. Description of the lake.
1673
+ # Corresponds to the JSON property `description`
1674
+ # @return [String]
1675
+ attr_accessor :description
1676
+
1677
+ # Optional. User friendly display name.
1678
+ # Corresponds to the JSON property `displayName`
1679
+ # @return [String]
1680
+ attr_accessor :display_name
1681
+
1682
+ # Optional. User-defined labels for the lake.
1683
+ # Corresponds to the JSON property `labels`
1684
+ # @return [Hash<String,String>]
1685
+ attr_accessor :labels
1686
+
1687
+ # Settings to manage association of Dataproc Metastore with a lake.
1688
+ # Corresponds to the JSON property `metastore`
1689
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1LakeMetastore]
1690
+ attr_accessor :metastore
1691
+
1692
+ # Status of Lake and Dataproc Metastore service instance association.
1693
+ # Corresponds to the JSON property `metastoreStatus`
1694
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1LakeMetastoreStatus]
1695
+ attr_accessor :metastore_status
1696
+
1697
+ # Output only. The relative resource name of the lake, of the form: projects/`
1698
+ # project_number`/locations/`location_id`/lakes/`lake_id`.
1699
+ # Corresponds to the JSON property `name`
1700
+ # @return [String]
1701
+ attr_accessor :name
1702
+
1703
+ # Output only. Service account associated with this lake. This service account
1704
+ # must be authorized to access or operate on resources managed by the lake.
1705
+ # Corresponds to the JSON property `serviceAccount`
1706
+ # @return [String]
1707
+ attr_accessor :service_account
1708
+
1709
+ # Output only. Current state of the lake.
1710
+ # Corresponds to the JSON property `state`
1711
+ # @return [String]
1712
+ attr_accessor :state
1713
+
1714
+ # Output only. System generated globally unique ID for the lake. This ID will be
1715
+ # different if the lake is deleted and re-created with the same name.
1716
+ # Corresponds to the JSON property `uid`
1717
+ # @return [String]
1718
+ attr_accessor :uid
1719
+
1720
+ # Output only. The time when the lake was last updated.
1721
+ # Corresponds to the JSON property `updateTime`
1722
+ # @return [String]
1723
+ attr_accessor :update_time
1724
+
1725
+ def initialize(**args)
1726
+ update!(**args)
1727
+ end
1728
+
1729
+ # Update properties of this object
1730
+ def update!(**args)
1731
+ @asset_status = args[:asset_status] if args.key?(:asset_status)
1732
+ @create_time = args[:create_time] if args.key?(:create_time)
1733
+ @description = args[:description] if args.key?(:description)
1734
+ @display_name = args[:display_name] if args.key?(:display_name)
1735
+ @labels = args[:labels] if args.key?(:labels)
1736
+ @metastore = args[:metastore] if args.key?(:metastore)
1737
+ @metastore_status = args[:metastore_status] if args.key?(:metastore_status)
1738
+ @name = args[:name] if args.key?(:name)
1739
+ @service_account = args[:service_account] if args.key?(:service_account)
1740
+ @state = args[:state] if args.key?(:state)
1741
+ @uid = args[:uid] if args.key?(:uid)
1742
+ @update_time = args[:update_time] if args.key?(:update_time)
1743
+ end
1744
+ end
1745
+
1746
+ # Settings to manage association of Dataproc Metastore with a lake.
1747
+ class GoogleCloudDataplexV1LakeMetastore
1748
+ include Google::Apis::Core::Hashable
1749
+
1750
+ # Optional. A relative reference to the Dataproc Metastore (https://cloud.google.
1751
+ # com/dataproc-metastore/docs) service associated with the lake: projects/`
1752
+ # project_id`/locations/`location_id`/services/`service_id`
1753
+ # Corresponds to the JSON property `service`
1754
+ # @return [String]
1755
+ attr_accessor :service
1756
+
1757
+ def initialize(**args)
1758
+ update!(**args)
1759
+ end
1760
+
1761
+ # Update properties of this object
1762
+ def update!(**args)
1763
+ @service = args[:service] if args.key?(:service)
1764
+ end
1765
+ end
1766
+
1767
+ # Status of Lake and Dataproc Metastore service instance association.
1768
+ class GoogleCloudDataplexV1LakeMetastoreStatus
1769
+ include Google::Apis::Core::Hashable
1770
+
1771
+ # The URI of the endpoint used to access the Metastore service.
1772
+ # Corresponds to the JSON property `endpoint`
1773
+ # @return [String]
1774
+ attr_accessor :endpoint
1775
+
1776
+ # Additional information about the current status.
1777
+ # Corresponds to the JSON property `message`
1778
+ # @return [String]
1779
+ attr_accessor :message
1780
+
1781
+ # Current state of association.
1782
+ # Corresponds to the JSON property `state`
1783
+ # @return [String]
1784
+ attr_accessor :state
1785
+
1786
+ # Last update time of the metastore status of the lake.
1787
+ # Corresponds to the JSON property `updateTime`
1788
+ # @return [String]
1789
+ attr_accessor :update_time
1790
+
1791
+ def initialize(**args)
1792
+ update!(**args)
1793
+ end
1794
+
1795
+ # Update properties of this object
1796
+ def update!(**args)
1797
+ @endpoint = args[:endpoint] if args.key?(:endpoint)
1798
+ @message = args[:message] if args.key?(:message)
1799
+ @state = args[:state] if args.key?(:state)
1800
+ @update_time = args[:update_time] if args.key?(:update_time)
1801
+ end
1802
+ end
1803
+
1804
+ # List actions response.
1805
+ class GoogleCloudDataplexV1ListActionsResponse
1806
+ include Google::Apis::Core::Hashable
1807
+
1808
+ # Actions under the given parent lake/zone/asset.
1809
+ # Corresponds to the JSON property `actions`
1810
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1Action>]
1811
+ attr_accessor :actions
1812
+
1813
+ # Token to retrieve the next page of results, or empty if there are no more
1814
+ # results in the list.
1815
+ # Corresponds to the JSON property `nextPageToken`
1816
+ # @return [String]
1817
+ attr_accessor :next_page_token
1818
+
1819
+ def initialize(**args)
1820
+ update!(**args)
1821
+ end
1822
+
1823
+ # Update properties of this object
1824
+ def update!(**args)
1825
+ @actions = args[:actions] if args.key?(:actions)
1826
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1827
+ end
1828
+ end
1829
+
1830
+ # List assets response.
1831
+ class GoogleCloudDataplexV1ListAssetsResponse
1832
+ include Google::Apis::Core::Hashable
1833
+
1834
+ # Asset under the given parent zone.
1835
+ # Corresponds to the JSON property `assets`
1836
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1Asset>]
1837
+ attr_accessor :assets
1838
+
1839
+ # Token to retrieve the next page of results, or empty if there are no more
1840
+ # results in the list.
1841
+ # Corresponds to the JSON property `nextPageToken`
1842
+ # @return [String]
1843
+ attr_accessor :next_page_token
1844
+
1845
+ def initialize(**args)
1846
+ update!(**args)
1847
+ end
1848
+
1849
+ # Update properties of this object
1850
+ def update!(**args)
1851
+ @assets = args[:assets] if args.key?(:assets)
1852
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1853
+ end
1854
+ end
1855
+
1856
+ # List content response.
1857
+ class GoogleCloudDataplexV1ListContentResponse
1858
+ include Google::Apis::Core::Hashable
1859
+
1860
+ # Content under the given parent lake.
1861
+ # Corresponds to the JSON property `content`
1862
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1Content>]
1863
+ attr_accessor :content
1864
+
1865
+ # Token to retrieve the next page of results, or empty if there are no more
1866
+ # results in the list.
1867
+ # Corresponds to the JSON property `nextPageToken`
1868
+ # @return [String]
1869
+ attr_accessor :next_page_token
1870
+
1871
+ def initialize(**args)
1872
+ update!(**args)
1873
+ end
1874
+
1875
+ # Update properties of this object
1876
+ def update!(**args)
1877
+ @content = args[:content] if args.key?(:content)
1878
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1879
+ end
1880
+ end
1881
+
1882
+ # List metadata entities response.
1883
+ class GoogleCloudDataplexV1ListEntitiesResponse
1884
+ include Google::Apis::Core::Hashable
1885
+
1886
+ # Entities in the specified parent zone.
1887
+ # Corresponds to the JSON property `entities`
1888
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1Entity>]
1889
+ attr_accessor :entities
1890
+
1891
+ # Token to retrieve the next page of results, or empty if there are no remaining
1892
+ # results in the list.
1893
+ # Corresponds to the JSON property `nextPageToken`
1894
+ # @return [String]
1895
+ attr_accessor :next_page_token
1896
+
1897
+ def initialize(**args)
1898
+ update!(**args)
1899
+ end
1900
+
1901
+ # Update properties of this object
1902
+ def update!(**args)
1903
+ @entities = args[:entities] if args.key?(:entities)
1904
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1905
+ end
1906
+ end
1907
+
1908
+ # List environments response.
1909
+ class GoogleCloudDataplexV1ListEnvironmentsResponse
1910
+ include Google::Apis::Core::Hashable
1911
+
1912
+ # Environments under the given parent lake.
1913
+ # Corresponds to the JSON property `environments`
1914
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1Environment>]
1915
+ attr_accessor :environments
1916
+
1917
+ # Token to retrieve the next page of results, or empty if there are no more
1918
+ # results in the list.
1919
+ # Corresponds to the JSON property `nextPageToken`
1920
+ # @return [String]
1921
+ attr_accessor :next_page_token
1922
+
1923
+ def initialize(**args)
1924
+ update!(**args)
1925
+ end
1926
+
1927
+ # Update properties of this object
1928
+ def update!(**args)
1929
+ @environments = args[:environments] if args.key?(:environments)
1930
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1931
+ end
1932
+ end
1933
+
1934
+ # List jobs response.
1935
+ class GoogleCloudDataplexV1ListJobsResponse
1936
+ include Google::Apis::Core::Hashable
1937
+
1938
+ # Jobs under a given task.
1939
+ # Corresponds to the JSON property `jobs`
1940
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1Job>]
1941
+ attr_accessor :jobs
1942
+
1943
+ # Token to retrieve the next page of results, or empty if there are no more
1944
+ # results in the list.
1945
+ # Corresponds to the JSON property `nextPageToken`
1946
+ # @return [String]
1947
+ attr_accessor :next_page_token
1948
+
1949
+ def initialize(**args)
1950
+ update!(**args)
1951
+ end
1952
+
1953
+ # Update properties of this object
1954
+ def update!(**args)
1955
+ @jobs = args[:jobs] if args.key?(:jobs)
1956
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1957
+ end
1958
+ end
1959
+
1960
+ # List lakes response.
1961
+ class GoogleCloudDataplexV1ListLakesResponse
1962
+ include Google::Apis::Core::Hashable
1963
+
1964
+ # Lakes under the given parent location.
1965
+ # Corresponds to the JSON property `lakes`
1966
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1Lake>]
1967
+ attr_accessor :lakes
1968
+
1969
+ # Token to retrieve the next page of results, or empty if there are no more
1970
+ # results in the list.
1971
+ # Corresponds to the JSON property `nextPageToken`
1972
+ # @return [String]
1973
+ attr_accessor :next_page_token
1974
+
1975
+ # Locations that could not be reached.
1976
+ # Corresponds to the JSON property `unreachableLocations`
1977
+ # @return [Array<String>]
1978
+ attr_accessor :unreachable_locations
1979
+
1980
+ def initialize(**args)
1981
+ update!(**args)
1982
+ end
1983
+
1984
+ # Update properties of this object
1985
+ def update!(**args)
1986
+ @lakes = args[:lakes] if args.key?(:lakes)
1987
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1988
+ @unreachable_locations = args[:unreachable_locations] if args.key?(:unreachable_locations)
1989
+ end
1990
+ end
1991
+
1992
+ # List metadata partitions response.
1993
+ class GoogleCloudDataplexV1ListPartitionsResponse
1994
+ include Google::Apis::Core::Hashable
1995
+
1996
+ # Token to retrieve the next page of results, or empty if there are no remaining
1997
+ # results in the list.
1998
+ # Corresponds to the JSON property `nextPageToken`
1999
+ # @return [String]
2000
+ attr_accessor :next_page_token
2001
+
2002
+ # Partitions under the specified parent entity.
2003
+ # Corresponds to the JSON property `partitions`
2004
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1Partition>]
2005
+ attr_accessor :partitions
2006
+
2007
+ def initialize(**args)
2008
+ update!(**args)
2009
+ end
2010
+
2011
+ # Update properties of this object
2012
+ def update!(**args)
2013
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2014
+ @partitions = args[:partitions] if args.key?(:partitions)
2015
+ end
2016
+ end
2017
+
2018
+ # List sessions response.
2019
+ class GoogleCloudDataplexV1ListSessionsResponse
2020
+ include Google::Apis::Core::Hashable
2021
+
2022
+ # Token to retrieve the next page of results, or empty if there are no more
2023
+ # results in the list.
2024
+ # Corresponds to the JSON property `nextPageToken`
2025
+ # @return [String]
2026
+ attr_accessor :next_page_token
2027
+
2028
+ # Sessions under a given environment.
2029
+ # Corresponds to the JSON property `sessions`
2030
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1Session>]
2031
+ attr_accessor :sessions
2032
+
2033
+ def initialize(**args)
2034
+ update!(**args)
2035
+ end
2036
+
2037
+ # Update properties of this object
2038
+ def update!(**args)
2039
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2040
+ @sessions = args[:sessions] if args.key?(:sessions)
2041
+ end
2042
+ end
2043
+
2044
+ # List tasks response.
2045
+ class GoogleCloudDataplexV1ListTasksResponse
2046
+ include Google::Apis::Core::Hashable
2047
+
2048
+ # Token to retrieve the next page of results, or empty if there are no more
2049
+ # results in the list.
2050
+ # Corresponds to the JSON property `nextPageToken`
2051
+ # @return [String]
2052
+ attr_accessor :next_page_token
2053
+
2054
+ # Tasks under the given parent lake.
2055
+ # Corresponds to the JSON property `tasks`
2056
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1Task>]
2057
+ attr_accessor :tasks
2058
+
2059
+ # Locations that could not be reached.
2060
+ # Corresponds to the JSON property `unreachableLocations`
2061
+ # @return [Array<String>]
2062
+ attr_accessor :unreachable_locations
2063
+
2064
+ def initialize(**args)
2065
+ update!(**args)
2066
+ end
2067
+
2068
+ # Update properties of this object
2069
+ def update!(**args)
2070
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2071
+ @tasks = args[:tasks] if args.key?(:tasks)
2072
+ @unreachable_locations = args[:unreachable_locations] if args.key?(:unreachable_locations)
2073
+ end
2074
+ end
2075
+
2076
+ # List zones response.
2077
+ class GoogleCloudDataplexV1ListZonesResponse
2078
+ include Google::Apis::Core::Hashable
2079
+
2080
+ # Token to retrieve the next page of results, or empty if there are no more
2081
+ # results in the list.
2082
+ # Corresponds to the JSON property `nextPageToken`
2083
+ # @return [String]
2084
+ attr_accessor :next_page_token
2085
+
2086
+ # Zones under the given parent lake.
2087
+ # Corresponds to the JSON property `zones`
2088
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1Zone>]
2089
+ attr_accessor :zones
2090
+
2091
+ def initialize(**args)
2092
+ update!(**args)
2093
+ end
2094
+
2095
+ # Update properties of this object
2096
+ def update!(**args)
2097
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2098
+ @zones = args[:zones] if args.key?(:zones)
2099
+ end
2100
+ end
2101
+
2102
+ # Represents the metadata of a long-running operation.
2103
+ class GoogleCloudDataplexV1OperationMetadata
2104
+ include Google::Apis::Core::Hashable
2105
+
2106
+ # Output only. API version used to start the operation.
2107
+ # Corresponds to the JSON property `apiVersion`
2108
+ # @return [String]
2109
+ attr_accessor :api_version
2110
+
2111
+ # Output only. The time the operation was created.
2112
+ # Corresponds to the JSON property `createTime`
2113
+ # @return [String]
2114
+ attr_accessor :create_time
2115
+
2116
+ # Output only. The time the operation finished running.
2117
+ # Corresponds to the JSON property `endTime`
2118
+ # @return [String]
2119
+ attr_accessor :end_time
2120
+
2121
+ # Output only. Identifies whether the user has requested cancellation of the
2122
+ # operation. Operations that have successfully been cancelled have Operation.
2123
+ # error value with a google.rpc.Status.code of 1, corresponding to Code.
2124
+ # CANCELLED.
2125
+ # Corresponds to the JSON property `requestedCancellation`
2126
+ # @return [Boolean]
2127
+ attr_accessor :requested_cancellation
2128
+ alias_method :requested_cancellation?, :requested_cancellation
2129
+
2130
+ # Output only. Human-readable status of the operation, if any.
2131
+ # Corresponds to the JSON property `statusMessage`
2132
+ # @return [String]
2133
+ attr_accessor :status_message
2134
+
2135
+ # Output only. Server-defined resource path for the target of the operation.
2136
+ # Corresponds to the JSON property `target`
2137
+ # @return [String]
2138
+ attr_accessor :target
2139
+
2140
+ # Output only. Name of the verb executed by the operation.
2141
+ # Corresponds to the JSON property `verb`
2142
+ # @return [String]
2143
+ attr_accessor :verb
2144
+
2145
+ def initialize(**args)
2146
+ update!(**args)
2147
+ end
2148
+
2149
+ # Update properties of this object
2150
+ def update!(**args)
2151
+ @api_version = args[:api_version] if args.key?(:api_version)
2152
+ @create_time = args[:create_time] if args.key?(:create_time)
2153
+ @end_time = args[:end_time] if args.key?(:end_time)
2154
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
2155
+ @status_message = args[:status_message] if args.key?(:status_message)
2156
+ @target = args[:target] if args.key?(:target)
2157
+ @verb = args[:verb] if args.key?(:verb)
2158
+ end
2159
+ end
2160
+
2161
+ # Represents partition metadata contained within entity instances.
2162
+ class GoogleCloudDataplexV1Partition
2163
+ include Google::Apis::Core::Hashable
2164
+
2165
+ # Optional. The etag for this partition.
2166
+ # Corresponds to the JSON property `etag`
2167
+ # @return [String]
2168
+ attr_accessor :etag
2169
+
2170
+ # Required. Immutable. The location of the entity data within the partition, for
2171
+ # example, gs://bucket/path/to/entity/key1=value1/key2=value2. Or projects//
2172
+ # datasets//tables/
2173
+ # Corresponds to the JSON property `location`
2174
+ # @return [String]
2175
+ attr_accessor :location
2176
+
2177
+ # Output only. The values must be HTML URL encoded two times before constructing
2178
+ # the path. For example, if you have a value of "US:CA", encoded it two times
2179
+ # and you get "US%253ACA". Then if you have the 2nd value is "CA#Sunnyvale",
2180
+ # encoded two times and you get "CA%2523Sunnyvale". The partition values path is
2181
+ # "US%253ACA/CA%2523Sunnyvale". The final URL will be "https://.../partitions/US%
2182
+ # 253ACA/CA%2523Sunnyvale". The name field in the responses will always have the
2183
+ # encoded format.
2184
+ # Corresponds to the JSON property `name`
2185
+ # @return [String]
2186
+ attr_accessor :name
2187
+
2188
+ # Required. Immutable. The set of values representing the partition, which
2189
+ # correspond to the partition schema defined in the parent entity.
2190
+ # Corresponds to the JSON property `values`
2191
+ # @return [Array<String>]
2192
+ attr_accessor :values
2193
+
2194
+ def initialize(**args)
2195
+ update!(**args)
2196
+ end
2197
+
2198
+ # Update properties of this object
2199
+ def update!(**args)
2200
+ @etag = args[:etag] if args.key?(:etag)
2201
+ @location = args[:location] if args.key?(:location)
2202
+ @name = args[:name] if args.key?(:name)
2203
+ @values = args[:values] if args.key?(:values)
2204
+ end
2205
+ end
2206
+
2207
+ # Schema information describing the structure and layout of the data.
2208
+ class GoogleCloudDataplexV1Schema
2209
+ include Google::Apis::Core::Hashable
2210
+
2211
+ # Optional. The sequence of fields describing data in table entities.
2212
+ # Corresponds to the JSON property `fields`
2213
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1SchemaSchemaField>]
2214
+ attr_accessor :fields
2215
+
2216
+ # Optional. The sequence of fields describing the partition structure in
2217
+ # entities. If this field is empty, there are no partitions within the data.
2218
+ # Corresponds to the JSON property `partitionFields`
2219
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1SchemaPartitionField>]
2220
+ attr_accessor :partition_fields
2221
+
2222
+ # Optional. The structure of paths containing partition data within the entity.
2223
+ # Corresponds to the JSON property `partitionStyle`
2224
+ # @return [String]
2225
+ attr_accessor :partition_style
2226
+
2227
+ # Required. Whether the schema is user-managed or managed by the service. - Set
2228
+ # user_manage to false if you would like Dataplex to help you manage the schema.
2229
+ # You will get the full service provided by Dataplex discovery, including new
2230
+ # data discovery, schema inference and schema evolution. You can still provide
2231
+ # input the schema of the entities, for example renaming a schema field,
2232
+ # changing CSV or Json options if you think the discovered values are not as
2233
+ # accurate. Dataplex will consider your input as the initial schema (as if they
2234
+ # were produced by the previous discovery run), and will evolve schema or flag
2235
+ # actions based on that. - Set user_manage to true if you would like to fully
2236
+ # manage the entity schema by yourself. This is useful when you would like to
2237
+ # manually specify the schema for a table. In this case, the schema defined by
2238
+ # the user is guaranteed to be kept unchanged and would not be overwritten. But
2239
+ # this also means Dataplex will not provide schema evolution management for you.
2240
+ # Dataplex will still be able to manage partition registration (i.e., keeping
2241
+ # the list of partitions up to date) when Dataplex discovery is turned on and
2242
+ # user_managed is set to true.
2243
+ # Corresponds to the JSON property `userManaged`
2244
+ # @return [Boolean]
2245
+ attr_accessor :user_managed
2246
+ alias_method :user_managed?, :user_managed
2247
+
2248
+ def initialize(**args)
2249
+ update!(**args)
2250
+ end
2251
+
2252
+ # Update properties of this object
2253
+ def update!(**args)
2254
+ @fields = args[:fields] if args.key?(:fields)
2255
+ @partition_fields = args[:partition_fields] if args.key?(:partition_fields)
2256
+ @partition_style = args[:partition_style] if args.key?(:partition_style)
2257
+ @user_managed = args[:user_managed] if args.key?(:user_managed)
2258
+ end
2259
+ end
2260
+
2261
+ # Represents a key field within the entity's partition structure. You could have
2262
+ # up to 20 partition fields, but only the first 10 partitions have the filtering
2263
+ # ability due to performance consideration.
2264
+ class GoogleCloudDataplexV1SchemaPartitionField
2265
+ include Google::Apis::Core::Hashable
2266
+
2267
+ # Required. Partition name is editable if only the partition style is not HIVE
2268
+ # compatible. The maximum length allowed is 767 characters.
2269
+ # Corresponds to the JSON property `name`
2270
+ # @return [String]
2271
+ attr_accessor :name
2272
+
2273
+ # Required. Immutable. The type of field.
2274
+ # Corresponds to the JSON property `type`
2275
+ # @return [String]
2276
+ attr_accessor :type
2277
+
2278
+ def initialize(**args)
2279
+ update!(**args)
2280
+ end
2281
+
2282
+ # Update properties of this object
2283
+ def update!(**args)
2284
+ @name = args[:name] if args.key?(:name)
2285
+ @type = args[:type] if args.key?(:type)
2286
+ end
2287
+ end
2288
+
2289
+ # Represents a column field within a table schema.
2290
+ class GoogleCloudDataplexV1SchemaSchemaField
2291
+ include Google::Apis::Core::Hashable
2292
+
2293
+ # Optional. User friendly field description. Must be less than or equal to 1024
2294
+ # characters.
2295
+ # Corresponds to the JSON property `description`
2296
+ # @return [String]
2297
+ attr_accessor :description
2298
+
2299
+ # Optional. Any nested field for complex types.
2300
+ # Corresponds to the JSON property `fields`
2301
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudDataplexV1SchemaSchemaField>]
2302
+ attr_accessor :fields
2303
+
2304
+ # Required. Additional field semantics.
2305
+ # Corresponds to the JSON property `mode`
2306
+ # @return [String]
2307
+ attr_accessor :mode
2308
+
2309
+ # Required. The name of the field. The maximum length is 767 characters. The
2310
+ # name must begins with a letter and not contains : and ..
2311
+ # Corresponds to the JSON property `name`
2312
+ # @return [String]
2313
+ attr_accessor :name
2314
+
2315
+ # Required. The type of field.
2316
+ # Corresponds to the JSON property `type`
2317
+ # @return [String]
2318
+ attr_accessor :type
2319
+
2320
+ def initialize(**args)
2321
+ update!(**args)
2322
+ end
2323
+
2324
+ # Update properties of this object
2325
+ def update!(**args)
2326
+ @description = args[:description] if args.key?(:description)
2327
+ @fields = args[:fields] if args.key?(:fields)
2328
+ @mode = args[:mode] if args.key?(:mode)
2329
+ @name = args[:name] if args.key?(:name)
2330
+ @type = args[:type] if args.key?(:type)
2331
+ end
2332
+ end
2333
+
2334
+ # Represents an active analyze session running for a user.
2335
+ class GoogleCloudDataplexV1Session
2336
+ include Google::Apis::Core::Hashable
2337
+
2338
+ # Output only. Session start time.
2339
+ # Corresponds to the JSON property `createTime`
2340
+ # @return [String]
2341
+ attr_accessor :create_time
2342
+
2343
+ # Output only. The relative resource name of the content, of the form: projects/`
2344
+ # project_id`/locations/`location_id`/lakes/`lake_id`/environment/`
2345
+ # environment_id`/sessions/`session_id`
2346
+ # Corresponds to the JSON property `name`
2347
+ # @return [String]
2348
+ attr_accessor :name
2349
+
2350
+ #
2351
+ # Corresponds to the JSON property `state`
2352
+ # @return [String]
2353
+ attr_accessor :state
2354
+
2355
+ # Output only. Email of user running the session.
2356
+ # Corresponds to the JSON property `userId`
2357
+ # @return [String]
2358
+ attr_accessor :user_id
2359
+
2360
+ def initialize(**args)
2361
+ update!(**args)
2362
+ end
2363
+
2364
+ # Update properties of this object
2365
+ def update!(**args)
2366
+ @create_time = args[:create_time] if args.key?(:create_time)
2367
+ @name = args[:name] if args.key?(:name)
2368
+ @state = args[:state] if args.key?(:state)
2369
+ @user_id = args[:user_id] if args.key?(:user_id)
2370
+ end
2371
+ end
2372
+
2373
+ # These messages contain information about sessions within an environment. The
2374
+ # monitored resource is 'Environment'.
2375
+ class GoogleCloudDataplexV1SessionEvent
2376
+ include Google::Apis::Core::Hashable
2377
+
2378
+ # The log message.
2379
+ # Corresponds to the JSON property `message`
2380
+ # @return [String]
2381
+ attr_accessor :message
2382
+
2383
+ # Execution details of the query.
2384
+ # Corresponds to the JSON property `query`
2385
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1SessionEventQueryDetail]
2386
+ attr_accessor :query
2387
+
2388
+ # Unique identifier for the session.
2389
+ # Corresponds to the JSON property `sessionId`
2390
+ # @return [String]
2391
+ attr_accessor :session_id
2392
+
2393
+ # The type of the event.
2394
+ # Corresponds to the JSON property `type`
2395
+ # @return [String]
2396
+ attr_accessor :type
2397
+
2398
+ # The information about the user that created the session.
2399
+ # Corresponds to the JSON property `userId`
2400
+ # @return [String]
2401
+ attr_accessor :user_id
2402
+
2403
+ def initialize(**args)
2404
+ update!(**args)
2405
+ end
2406
+
2407
+ # Update properties of this object
2408
+ def update!(**args)
2409
+ @message = args[:message] if args.key?(:message)
2410
+ @query = args[:query] if args.key?(:query)
2411
+ @session_id = args[:session_id] if args.key?(:session_id)
2412
+ @type = args[:type] if args.key?(:type)
2413
+ @user_id = args[:user_id] if args.key?(:user_id)
2414
+ end
2415
+ end
2416
+
2417
+ # Execution details of the query.
2418
+ class GoogleCloudDataplexV1SessionEventQueryDetail
2419
+ include Google::Apis::Core::Hashable
2420
+
2421
+ # The data processed by the query.
2422
+ # Corresponds to the JSON property `dataProcessedBytes`
2423
+ # @return [Fixnum]
2424
+ attr_accessor :data_processed_bytes
2425
+
2426
+ # Time taken for execution of the query.
2427
+ # Corresponds to the JSON property `duration`
2428
+ # @return [String]
2429
+ attr_accessor :duration
2430
+
2431
+ # Query Execution engine.
2432
+ # Corresponds to the JSON property `engine`
2433
+ # @return [String]
2434
+ attr_accessor :engine
2435
+
2436
+ # The unique Query id identifying the query.
2437
+ # Corresponds to the JSON property `queryId`
2438
+ # @return [String]
2439
+ attr_accessor :query_id
2440
+
2441
+ # The query text executed.
2442
+ # Corresponds to the JSON property `queryText`
2443
+ # @return [String]
2444
+ attr_accessor :query_text
2445
+
2446
+ # The size of results the query produced.
2447
+ # Corresponds to the JSON property `resultSizeBytes`
2448
+ # @return [Fixnum]
2449
+ attr_accessor :result_size_bytes
2450
+
2451
+ def initialize(**args)
2452
+ update!(**args)
2453
+ end
2454
+
2455
+ # Update properties of this object
2456
+ def update!(**args)
2457
+ @data_processed_bytes = args[:data_processed_bytes] if args.key?(:data_processed_bytes)
2458
+ @duration = args[:duration] if args.key?(:duration)
2459
+ @engine = args[:engine] if args.key?(:engine)
2460
+ @query_id = args[:query_id] if args.key?(:query_id)
2461
+ @query_text = args[:query_text] if args.key?(:query_text)
2462
+ @result_size_bytes = args[:result_size_bytes] if args.key?(:result_size_bytes)
2463
+ end
2464
+ end
2465
+
2466
+ # Describes the format of the data within its storage location.
2467
+ class GoogleCloudDataplexV1StorageFormat
2468
+ include Google::Apis::Core::Hashable
2469
+
2470
+ # Optional. The compression type associated with the stored data. If unspecified,
2471
+ # the data is uncompressed.
2472
+ # Corresponds to the JSON property `compressionFormat`
2473
+ # @return [String]
2474
+ attr_accessor :compression_format
2475
+
2476
+ # Describes CSV and similar semi-structured data formats.
2477
+ # Corresponds to the JSON property `csv`
2478
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1StorageFormatCsvOptions]
2479
+ attr_accessor :csv
2480
+
2481
+ # Output only. The data format associated with the stored data, which represents
2482
+ # content type values. The value is inferred from mime type.
2483
+ # Corresponds to the JSON property `format`
2484
+ # @return [String]
2485
+ attr_accessor :format
2486
+
2487
+ # Describes JSON data format.
2488
+ # Corresponds to the JSON property `json`
2489
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1StorageFormatJsonOptions]
2490
+ attr_accessor :json
2491
+
2492
+ # Required. The mime type descriptor for the data. Must match the pattern `type`/
2493
+ # `subtype`. Supported values: - application/x-parquet - application/x-avro -
2494
+ # application/x-orc - application/x-tfrecord - application/json - application/`
2495
+ # subtypes` - text/csv - text/ - image/`image subtype` - video/`video subtype` -
2496
+ # audio/`audio subtype`
2497
+ # Corresponds to the JSON property `mimeType`
2498
+ # @return [String]
2499
+ attr_accessor :mime_type
2500
+
2501
+ def initialize(**args)
2502
+ update!(**args)
2503
+ end
2504
+
2505
+ # Update properties of this object
2506
+ def update!(**args)
2507
+ @compression_format = args[:compression_format] if args.key?(:compression_format)
2508
+ @csv = args[:csv] if args.key?(:csv)
2509
+ @format = args[:format] if args.key?(:format)
2510
+ @json = args[:json] if args.key?(:json)
2511
+ @mime_type = args[:mime_type] if args.key?(:mime_type)
2512
+ end
2513
+ end
2514
+
2515
+ # Describes CSV and similar semi-structured data formats.
2516
+ class GoogleCloudDataplexV1StorageFormatCsvOptions
2517
+ include Google::Apis::Core::Hashable
2518
+
2519
+ # Optional. The delimiter used to separate values. Defaults to ','.
2520
+ # Corresponds to the JSON property `delimiter`
2521
+ # @return [String]
2522
+ attr_accessor :delimiter
2523
+
2524
+ # Optional. The character encoding of the data. Accepts "US-ASCII", "UTF-8", and
2525
+ # "ISO-8859-1". Defaults to UTF-8 if unspecified.
2526
+ # Corresponds to the JSON property `encoding`
2527
+ # @return [String]
2528
+ attr_accessor :encoding
2529
+
2530
+ # Optional. The number of rows to interpret as header rows that should be
2531
+ # skipped when reading data rows. Defaults to 0.
2532
+ # Corresponds to the JSON property `headerRows`
2533
+ # @return [Fixnum]
2534
+ attr_accessor :header_rows
2535
+
2536
+ # Optional. The character used to quote column values. Accepts '"' and '''.
2537
+ # Defaults to '"' if unspecified.
2538
+ # Corresponds to the JSON property `quote`
2539
+ # @return [String]
2540
+ attr_accessor :quote
2541
+
2542
+ def initialize(**args)
2543
+ update!(**args)
2544
+ end
2545
+
2546
+ # Update properties of this object
2547
+ def update!(**args)
2548
+ @delimiter = args[:delimiter] if args.key?(:delimiter)
2549
+ @encoding = args[:encoding] if args.key?(:encoding)
2550
+ @header_rows = args[:header_rows] if args.key?(:header_rows)
2551
+ @quote = args[:quote] if args.key?(:quote)
2552
+ end
2553
+ end
2554
+
2555
+ # Describes JSON data format.
2556
+ class GoogleCloudDataplexV1StorageFormatJsonOptions
2557
+ include Google::Apis::Core::Hashable
2558
+
2559
+ # Optional. The character encoding of the data. Accepts "US-ASCII", "UTF-8" and "
2560
+ # ISO-8859-1". Defaults to UTF-8 if not specified.
2561
+ # Corresponds to the JSON property `encoding`
2562
+ # @return [String]
2563
+ attr_accessor :encoding
2564
+
2565
+ def initialize(**args)
2566
+ update!(**args)
2567
+ end
2568
+
2569
+ # Update properties of this object
2570
+ def update!(**args)
2571
+ @encoding = args[:encoding] if args.key?(:encoding)
2572
+ end
2573
+ end
2574
+
2575
+ # A task represents a user-visible job.
2576
+ class GoogleCloudDataplexV1Task
2577
+ include Google::Apis::Core::Hashable
2578
+
2579
+ # Output only. The time when the task was created.
2580
+ # Corresponds to the JSON property `createTime`
2581
+ # @return [String]
2582
+ attr_accessor :create_time
2583
+
2584
+ # Optional. Description of the task.
2585
+ # Corresponds to the JSON property `description`
2586
+ # @return [String]
2587
+ attr_accessor :description
2588
+
2589
+ # Optional. User friendly display name.
2590
+ # Corresponds to the JSON property `displayName`
2591
+ # @return [String]
2592
+ attr_accessor :display_name
2593
+
2594
+ # Execution related settings, like retry and service_account.
2595
+ # Corresponds to the JSON property `executionSpec`
2596
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1TaskExecutionSpec]
2597
+ attr_accessor :execution_spec
2598
+
2599
+ # Optional. User-defined labels for the task.
2600
+ # Corresponds to the JSON property `labels`
2601
+ # @return [Hash<String,String>]
2602
+ attr_accessor :labels
2603
+
2604
+ # Output only. The relative resource name of the task, of the form: projects/`
2605
+ # project_number`/locations/`location_id`/lakes/`lake_id`/ tasks/`task_id`.
2606
+ # Corresponds to the JSON property `name`
2607
+ # @return [String]
2608
+ attr_accessor :name
2609
+
2610
+ # User-specified config for running a Spark task.
2611
+ # Corresponds to the JSON property `spark`
2612
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1TaskSparkTaskConfig]
2613
+ attr_accessor :spark
2614
+
2615
+ # Output only. Current state of the task.
2616
+ # Corresponds to the JSON property `state`
2617
+ # @return [String]
2618
+ attr_accessor :state
2619
+
2620
+ # Task scheduling and trigger settings.
2621
+ # Corresponds to the JSON property `triggerSpec`
2622
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1TaskTriggerSpec]
2623
+ attr_accessor :trigger_spec
2624
+
2625
+ # Output only. System generated globally unique ID for the task. This ID will be
2626
+ # different if the task is deleted and re-created with the same name.
2627
+ # Corresponds to the JSON property `uid`
2628
+ # @return [String]
2629
+ attr_accessor :uid
2630
+
2631
+ # Output only. The time when the task was last updated.
2632
+ # Corresponds to the JSON property `updateTime`
2633
+ # @return [String]
2634
+ attr_accessor :update_time
2635
+
2636
+ def initialize(**args)
2637
+ update!(**args)
2638
+ end
2639
+
2640
+ # Update properties of this object
2641
+ def update!(**args)
2642
+ @create_time = args[:create_time] if args.key?(:create_time)
2643
+ @description = args[:description] if args.key?(:description)
2644
+ @display_name = args[:display_name] if args.key?(:display_name)
2645
+ @execution_spec = args[:execution_spec] if args.key?(:execution_spec)
2646
+ @labels = args[:labels] if args.key?(:labels)
2647
+ @name = args[:name] if args.key?(:name)
2648
+ @spark = args[:spark] if args.key?(:spark)
2649
+ @state = args[:state] if args.key?(:state)
2650
+ @trigger_spec = args[:trigger_spec] if args.key?(:trigger_spec)
2651
+ @uid = args[:uid] if args.key?(:uid)
2652
+ @update_time = args[:update_time] if args.key?(:update_time)
2653
+ end
2654
+ end
2655
+
2656
+ # Execution related settings, like retry and service_account.
2657
+ class GoogleCloudDataplexV1TaskExecutionSpec
2658
+ include Google::Apis::Core::Hashable
2659
+
2660
+ # Optional. The arguments to pass to the task. The args can use placeholders of
2661
+ # the format $`placeholder` as part of key/value string. These will be
2662
+ # interpolated before passing the args to the driver. Currently supported
2663
+ # placeholders: - $`task_id` - $`job_time` To pass positional args, set the key
2664
+ # as TASK_ARGS. The value should be a comma-separated string of all the
2665
+ # positional arguments. To use a delimiter other than comma, refer to https://
2666
+ # cloud.google.com/sdk/gcloud/reference/topic/escaping. In case of other keys
2667
+ # being present in the args, then TASK_ARGS will be passed as the last argument.
2668
+ # Corresponds to the JSON property `args`
2669
+ # @return [Hash<String,String>]
2670
+ attr_accessor :args
2671
+
2672
+ # Optional. The maximum duration after which the job execution is expired.
2673
+ # Corresponds to the JSON property `maxJobExecutionLifetime`
2674
+ # @return [String]
2675
+ attr_accessor :max_job_execution_lifetime
2676
+
2677
+ # Required. Service account to use to execute a task. If not provided, the
2678
+ # default Compute service account for the project is used.
2679
+ # Corresponds to the JSON property `serviceAccount`
2680
+ # @return [String]
2681
+ attr_accessor :service_account
2682
+
2683
+ def initialize(**args)
2684
+ update!(**args)
2685
+ end
2686
+
2687
+ # Update properties of this object
2688
+ def update!(**args)
2689
+ @args = args[:args] if args.key?(:args)
2690
+ @max_job_execution_lifetime = args[:max_job_execution_lifetime] if args.key?(:max_job_execution_lifetime)
2691
+ @service_account = args[:service_account] if args.key?(:service_account)
2692
+ end
2693
+ end
2694
+
2695
+ # Configuration for the underlying infrastructure used to run workloads.
2696
+ class GoogleCloudDataplexV1TaskInfrastructureSpec
2697
+ include Google::Apis::Core::Hashable
2698
+
2699
+ # Batch compute resources associated with the task.
2700
+ # Corresponds to the JSON property `batch`
2701
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1TaskInfrastructureSpecBatchComputeResources]
2702
+ attr_accessor :batch
2703
+
2704
+ # Container Image Runtime Configuration used with Batch execution.
2705
+ # Corresponds to the JSON property `containerImage`
2706
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1TaskInfrastructureSpecContainerImageRuntime]
2707
+ attr_accessor :container_image
2708
+
2709
+ # Cloud VPC Network used to run the infrastructure.
2710
+ # Corresponds to the JSON property `vpcNetwork`
2711
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1TaskInfrastructureSpecVpcNetwork]
2712
+ attr_accessor :vpc_network
2713
+
2714
+ def initialize(**args)
2715
+ update!(**args)
2716
+ end
2717
+
2718
+ # Update properties of this object
2719
+ def update!(**args)
2720
+ @batch = args[:batch] if args.key?(:batch)
2721
+ @container_image = args[:container_image] if args.key?(:container_image)
2722
+ @vpc_network = args[:vpc_network] if args.key?(:vpc_network)
2723
+ end
2724
+ end
2725
+
2726
+ # Batch compute resources associated with the task.
2727
+ class GoogleCloudDataplexV1TaskInfrastructureSpecBatchComputeResources
2728
+ include Google::Apis::Core::Hashable
2729
+
2730
+ # Optional. Total number of job executors.
2731
+ # Corresponds to the JSON property `executorsCount`
2732
+ # @return [Fixnum]
2733
+ attr_accessor :executors_count
2734
+
2735
+ # Optional. Max configurable executors. If max_executors_count > executors_count,
2736
+ # then auto-scaling is enabled.
2737
+ # Corresponds to the JSON property `maxExecutorsCount`
2738
+ # @return [Fixnum]
2739
+ attr_accessor :max_executors_count
2740
+
2741
+ def initialize(**args)
2742
+ update!(**args)
2743
+ end
2744
+
2745
+ # Update properties of this object
2746
+ def update!(**args)
2747
+ @executors_count = args[:executors_count] if args.key?(:executors_count)
2748
+ @max_executors_count = args[:max_executors_count] if args.key?(:max_executors_count)
2749
+ end
2750
+ end
2751
+
2752
+ # Container Image Runtime Configuration used with Batch execution.
2753
+ class GoogleCloudDataplexV1TaskInfrastructureSpecContainerImageRuntime
2754
+ include Google::Apis::Core::Hashable
2755
+
2756
+ # Optional. A list of Java JARS to add to the classpath. Valid input includes
2757
+ # Cloud Storage URIs to Jar binaries. For example, gs://bucket-name/my/path/to/
2758
+ # file.jar
2759
+ # Corresponds to the JSON property `javaJars`
2760
+ # @return [Array<String>]
2761
+ attr_accessor :java_jars
2762
+
2763
+ # Optional. Override to common configuration of open source components installed
2764
+ # on the Dataproc cluster. The properties to set on daemon config files.
2765
+ # Property keys are specified in prefix:property format, for example core:hadoop.
2766
+ # tmp.dir. For more information, see Cluster properties (https://cloud.google.
2767
+ # com/dataproc/docs/concepts/cluster-properties).
2768
+ # Corresponds to the JSON property `properties`
2769
+ # @return [Hash<String,String>]
2770
+ attr_accessor :properties
2771
+
2772
+ # Optional. A list of python packages to be installed. Valid formats include
2773
+ # Cloud Storage URI to a PIP installable library. For example, gs://bucket-name/
2774
+ # my/path/to/lib.tar.gz
2775
+ # Corresponds to the JSON property `pythonPackages`
2776
+ # @return [Array<String>]
2777
+ attr_accessor :python_packages
2778
+
2779
+ def initialize(**args)
2780
+ update!(**args)
2781
+ end
2782
+
2783
+ # Update properties of this object
2784
+ def update!(**args)
2785
+ @java_jars = args[:java_jars] if args.key?(:java_jars)
2786
+ @properties = args[:properties] if args.key?(:properties)
2787
+ @python_packages = args[:python_packages] if args.key?(:python_packages)
2788
+ end
2789
+ end
2790
+
2791
+ # Cloud VPC Network used to run the infrastructure.
2792
+ class GoogleCloudDataplexV1TaskInfrastructureSpecVpcNetwork
2793
+ include Google::Apis::Core::Hashable
2794
+
2795
+ # Optional. The Cloud VPC network in which the job is run. By default, the Cloud
2796
+ # VPC network named Default within the project is used.
2797
+ # Corresponds to the JSON property `network`
2798
+ # @return [String]
2799
+ attr_accessor :network
2800
+
2801
+ # Optional. List of network tags to apply to the job.
2802
+ # Corresponds to the JSON property `networkTags`
2803
+ # @return [Array<String>]
2804
+ attr_accessor :network_tags
2805
+
2806
+ # Optional. The Cloud VPC sub-network in which the job is run.
2807
+ # Corresponds to the JSON property `subNetwork`
2808
+ # @return [String]
2809
+ attr_accessor :sub_network
2810
+
2811
+ def initialize(**args)
2812
+ update!(**args)
2813
+ end
2814
+
2815
+ # Update properties of this object
2816
+ def update!(**args)
2817
+ @network = args[:network] if args.key?(:network)
2818
+ @network_tags = args[:network_tags] if args.key?(:network_tags)
2819
+ @sub_network = args[:sub_network] if args.key?(:sub_network)
2820
+ end
2821
+ end
2822
+
2823
+ # User-specified config for running a Spark task.
2824
+ class GoogleCloudDataplexV1TaskSparkTaskConfig
2825
+ include Google::Apis::Core::Hashable
2826
+
2827
+ # Optional. Cloud Storage URIs of archives to be extracted into the working
2828
+ # directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz,
2829
+ # and .zip.
2830
+ # Corresponds to the JSON property `archiveUris`
2831
+ # @return [Array<String>]
2832
+ attr_accessor :archive_uris
2833
+
2834
+ # Optional. Cloud Storage URIs of files to be placed in the working directory of
2835
+ # each executor.
2836
+ # Corresponds to the JSON property `fileUris`
2837
+ # @return [Array<String>]
2838
+ attr_accessor :file_uris
2839
+
2840
+ # Configuration for the underlying infrastructure used to run workloads.
2841
+ # Corresponds to the JSON property `infrastructureSpec`
2842
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1TaskInfrastructureSpec]
2843
+ attr_accessor :infrastructure_spec
2844
+
2845
+ # The name of the driver's main class. The jar file that contains the class must
2846
+ # be in the default CLASSPATH or specified in jar_file_uris. The execution args
2847
+ # are passed in as a sequence of named process arguments (--key=value).
2848
+ # Corresponds to the JSON property `mainClass`
2849
+ # @return [String]
2850
+ attr_accessor :main_class
2851
+
2852
+ # The Cloud Storage URI of the jar file that contains the main class. The
2853
+ # execution args are passed in as a sequence of named process arguments (--key=
2854
+ # value).
2855
+ # Corresponds to the JSON property `mainJarFileUri`
2856
+ # @return [String]
2857
+ attr_accessor :main_jar_file_uri
2858
+
2859
+ # The Gcloud Storage URI of the main Python file to use as the driver. Must be a
2860
+ # .py file. The execution args are passed in as a sequence of named process
2861
+ # arguments (--key=value).
2862
+ # Corresponds to the JSON property `pythonScriptFile`
2863
+ # @return [String]
2864
+ attr_accessor :python_script_file
2865
+
2866
+ # The query text. The execution args are used to declare a set of script
2867
+ # variables (set key="value";).
2868
+ # Corresponds to the JSON property `sqlScript`
2869
+ # @return [String]
2870
+ attr_accessor :sql_script
2871
+
2872
+ # A reference to a query file. This can be the Cloud Storage URI of the query
2873
+ # file or it can the path to a SqlScript Content. The execution args are used to
2874
+ # declare a set of script variables (set key="value";).
2875
+ # Corresponds to the JSON property `sqlScriptFile`
2876
+ # @return [String]
2877
+ attr_accessor :sql_script_file
2878
+
2879
+ def initialize(**args)
2880
+ update!(**args)
2881
+ end
2882
+
2883
+ # Update properties of this object
2884
+ def update!(**args)
2885
+ @archive_uris = args[:archive_uris] if args.key?(:archive_uris)
2886
+ @file_uris = args[:file_uris] if args.key?(:file_uris)
2887
+ @infrastructure_spec = args[:infrastructure_spec] if args.key?(:infrastructure_spec)
2888
+ @main_class = args[:main_class] if args.key?(:main_class)
2889
+ @main_jar_file_uri = args[:main_jar_file_uri] if args.key?(:main_jar_file_uri)
2890
+ @python_script_file = args[:python_script_file] if args.key?(:python_script_file)
2891
+ @sql_script = args[:sql_script] if args.key?(:sql_script)
2892
+ @sql_script_file = args[:sql_script_file] if args.key?(:sql_script_file)
2893
+ end
2894
+ end
2895
+
2896
+ # Task scheduling and trigger settings.
2897
+ class GoogleCloudDataplexV1TaskTriggerSpec
2898
+ include Google::Apis::Core::Hashable
2899
+
2900
+ # Optional. Prevent the task from executing. This does not cancel already
2901
+ # running tasks. It is intended to temporarily disable RECURRING tasks.
2902
+ # Corresponds to the JSON property `disabled`
2903
+ # @return [Boolean]
2904
+ attr_accessor :disabled
2905
+ alias_method :disabled?, :disabled
2906
+
2907
+ # Optional. Number of retry attempts before aborting. Set to zero to never
2908
+ # attempt to retry a failed task.
2909
+ # Corresponds to the JSON property `maxRetries`
2910
+ # @return [Fixnum]
2911
+ attr_accessor :max_retries
2912
+
2913
+ # Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running tasks
2914
+ # periodically. To explicitly set a timezone to the cron tab, apply a prefix in
2915
+ # the cron tab: "CRON_TZ=$`IANA_TIME_ZONE`" or "TZ=$`IANA_TIME_ZONE`". The $`
2916
+ # IANA_TIME_ZONE` may only be a valid string from IANA time zone database. For
2917
+ # example, "CRON_TZ=America/New_York 1 * * * *", or "TZ=America/New_York 1 * * *
2918
+ # *". This field is required for RECURRING tasks.
2919
+ # Corresponds to the JSON property `schedule`
2920
+ # @return [String]
2921
+ attr_accessor :schedule
2922
+
2923
+ # Optional. The first run of the task will be after this time. If not specified,
2924
+ # the task will run shortly after being submitted if ON_DEMAND and based on the
2925
+ # schedule if RECURRING.
2926
+ # Corresponds to the JSON property `startTime`
2927
+ # @return [String]
2928
+ attr_accessor :start_time
2929
+
2930
+ # Required. Immutable. Trigger type of the user-specified Task.
2931
+ # Corresponds to the JSON property `type`
2932
+ # @return [String]
2933
+ attr_accessor :type
2934
+
2935
+ def initialize(**args)
2936
+ update!(**args)
2937
+ end
2938
+
2939
+ # Update properties of this object
2940
+ def update!(**args)
2941
+ @disabled = args[:disabled] if args.key?(:disabled)
2942
+ @max_retries = args[:max_retries] if args.key?(:max_retries)
2943
+ @schedule = args[:schedule] if args.key?(:schedule)
2944
+ @start_time = args[:start_time] if args.key?(:start_time)
2945
+ @type = args[:type] if args.key?(:type)
2946
+ end
2947
+ end
2948
+
2949
+ # A zone represents a logical group of related assets within a lake. A zone can
2950
+ # be used to map to organizational structure or represent stages of data
2951
+ # readiness from raw to curated. It provides managing behavior that is shared or
2952
+ # inherited by all contained assets.
2953
+ class GoogleCloudDataplexV1Zone
2954
+ include Google::Apis::Core::Hashable
2955
+
2956
+ # Aggregated status of the underlying assets of a lake or zone.
2957
+ # Corresponds to the JSON property `assetStatus`
2958
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1AssetStatus]
2959
+ attr_accessor :asset_status
2960
+
2961
+ # Output only. The time when the zone was created.
2962
+ # Corresponds to the JSON property `createTime`
2963
+ # @return [String]
2964
+ attr_accessor :create_time
2965
+
2966
+ # Optional. Description of the zone.
2967
+ # Corresponds to the JSON property `description`
2968
+ # @return [String]
2969
+ attr_accessor :description
2970
+
2971
+ # Settings to manage the metadata discovery and publishing in a zone.
2972
+ # Corresponds to the JSON property `discoverySpec`
2973
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ZoneDiscoverySpec]
2974
+ attr_accessor :discovery_spec
2975
+
2976
+ # Optional. User friendly display name.
2977
+ # Corresponds to the JSON property `displayName`
2978
+ # @return [String]
2979
+ attr_accessor :display_name
2980
+
2981
+ # Optional. User defined labels for the zone.
2982
+ # Corresponds to the JSON property `labels`
2983
+ # @return [Hash<String,String>]
2984
+ attr_accessor :labels
2985
+
2986
+ # Output only. The relative resource name of the zone, of the form: projects/`
2987
+ # project_number`/locations/`location_id`/lakes/`lake_id`/zones/`zone_id`.
2988
+ # Corresponds to the JSON property `name`
2989
+ # @return [String]
2990
+ attr_accessor :name
2991
+
2992
+ # Settings for resources attached as assets within a zone.
2993
+ # Corresponds to the JSON property `resourceSpec`
2994
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ZoneResourceSpec]
2995
+ attr_accessor :resource_spec
2996
+
2997
+ # Output only. Current state of the zone.
2998
+ # Corresponds to the JSON property `state`
2999
+ # @return [String]
3000
+ attr_accessor :state
3001
+
3002
+ # Required. Immutable. The type of the zone.
3003
+ # Corresponds to the JSON property `type`
3004
+ # @return [String]
3005
+ attr_accessor :type
3006
+
3007
+ # Output only. System generated globally unique ID for the zone. This ID will be
3008
+ # different if the zone is deleted and re-created with the same name.
3009
+ # Corresponds to the JSON property `uid`
3010
+ # @return [String]
3011
+ attr_accessor :uid
3012
+
3013
+ # Output only. The time when the zone was last updated.
3014
+ # Corresponds to the JSON property `updateTime`
3015
+ # @return [String]
3016
+ attr_accessor :update_time
3017
+
3018
+ def initialize(**args)
3019
+ update!(**args)
3020
+ end
3021
+
3022
+ # Update properties of this object
3023
+ def update!(**args)
3024
+ @asset_status = args[:asset_status] if args.key?(:asset_status)
3025
+ @create_time = args[:create_time] if args.key?(:create_time)
3026
+ @description = args[:description] if args.key?(:description)
3027
+ @discovery_spec = args[:discovery_spec] if args.key?(:discovery_spec)
3028
+ @display_name = args[:display_name] if args.key?(:display_name)
3029
+ @labels = args[:labels] if args.key?(:labels)
3030
+ @name = args[:name] if args.key?(:name)
3031
+ @resource_spec = args[:resource_spec] if args.key?(:resource_spec)
3032
+ @state = args[:state] if args.key?(:state)
3033
+ @type = args[:type] if args.key?(:type)
3034
+ @uid = args[:uid] if args.key?(:uid)
3035
+ @update_time = args[:update_time] if args.key?(:update_time)
3036
+ end
3037
+ end
3038
+
3039
+ # Settings to manage the metadata discovery and publishing in a zone.
3040
+ class GoogleCloudDataplexV1ZoneDiscoverySpec
3041
+ include Google::Apis::Core::Hashable
3042
+
3043
+ # Describe CSV and similar semi-structured data formats.
3044
+ # Corresponds to the JSON property `csvOptions`
3045
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ZoneDiscoverySpecCsvOptions]
3046
+ attr_accessor :csv_options
3047
+
3048
+ # Required. Whether discovery is enabled.
3049
+ # Corresponds to the JSON property `enabled`
3050
+ # @return [Boolean]
3051
+ attr_accessor :enabled
3052
+ alias_method :enabled?, :enabled
3053
+
3054
+ # Optional. The list of patterns to apply for selecting data to exclude during
3055
+ # discovery. For Cloud Storage bucket assets, these are interpreted as glob
3056
+ # patterns used to match object names. For BigQuery dataset assets, these are
3057
+ # interpreted as patterns to match table names.
3058
+ # Corresponds to the JSON property `excludePatterns`
3059
+ # @return [Array<String>]
3060
+ attr_accessor :exclude_patterns
3061
+
3062
+ # Optional. The list of patterns to apply for selecting data to include during
3063
+ # discovery if only a subset of the data should considered. For Cloud Storage
3064
+ # bucket assets, these are interpreted as glob patterns used to match object
3065
+ # names. For BigQuery dataset assets, these are interpreted as patterns to match
3066
+ # table names.
3067
+ # Corresponds to the JSON property `includePatterns`
3068
+ # @return [Array<String>]
3069
+ attr_accessor :include_patterns
3070
+
3071
+ # Describe JSON data format.
3072
+ # Corresponds to the JSON property `jsonOptions`
3073
+ # @return [Google::Apis::DataplexV1::GoogleCloudDataplexV1ZoneDiscoverySpecJsonOptions]
3074
+ attr_accessor :json_options
3075
+
3076
+ # Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running
3077
+ # discovery periodically. Successive discovery runs must be scheduled at least
3078
+ # 60 minutes apart. The default value is to run discovery every 60 minutes. To
3079
+ # explicitly set a timezone to the cron tab, apply a prefix in the cron tab: "
3080
+ # CRON_TZ=$`IANA_TIME_ZONE`" or TZ=$`IANA_TIME_ZONE`". The $`IANA_TIME_ZONE` may
3081
+ # only be a valid string from IANA time zone database. For example, "CRON_TZ=
3082
+ # America/New_York 1 * * * *", or "TZ=America/New_York 1 * * * *".
3083
+ # Corresponds to the JSON property `schedule`
3084
+ # @return [String]
3085
+ attr_accessor :schedule
3086
+
3087
+ def initialize(**args)
3088
+ update!(**args)
3089
+ end
3090
+
3091
+ # Update properties of this object
3092
+ def update!(**args)
3093
+ @csv_options = args[:csv_options] if args.key?(:csv_options)
3094
+ @enabled = args[:enabled] if args.key?(:enabled)
3095
+ @exclude_patterns = args[:exclude_patterns] if args.key?(:exclude_patterns)
3096
+ @include_patterns = args[:include_patterns] if args.key?(:include_patterns)
3097
+ @json_options = args[:json_options] if args.key?(:json_options)
3098
+ @schedule = args[:schedule] if args.key?(:schedule)
3099
+ end
3100
+ end
3101
+
3102
+ # Describe CSV and similar semi-structured data formats.
3103
+ class GoogleCloudDataplexV1ZoneDiscoverySpecCsvOptions
3104
+ include Google::Apis::Core::Hashable
3105
+
3106
+ # Optional. The delimiter being used to separate values. This defaults to ','.
3107
+ # Corresponds to the JSON property `delimiter`
3108
+ # @return [String]
3109
+ attr_accessor :delimiter
3110
+
3111
+ # Optional. Whether to disable the inference of data type for CSV data. If true,
3112
+ # all columns will be registered as strings.
3113
+ # Corresponds to the JSON property `disableTypeInference`
3114
+ # @return [Boolean]
3115
+ attr_accessor :disable_type_inference
3116
+ alias_method :disable_type_inference?, :disable_type_inference
3117
+
3118
+ # Optional. The character encoding of the data. The default is UTF-8.
3119
+ # Corresponds to the JSON property `encoding`
3120
+ # @return [String]
3121
+ attr_accessor :encoding
3122
+
3123
+ # Optional. The number of rows to interpret as header rows that should be
3124
+ # skipped when reading data rows.
3125
+ # Corresponds to the JSON property `headerRows`
3126
+ # @return [Fixnum]
3127
+ attr_accessor :header_rows
3128
+
3129
+ def initialize(**args)
3130
+ update!(**args)
3131
+ end
3132
+
3133
+ # Update properties of this object
3134
+ def update!(**args)
3135
+ @delimiter = args[:delimiter] if args.key?(:delimiter)
3136
+ @disable_type_inference = args[:disable_type_inference] if args.key?(:disable_type_inference)
3137
+ @encoding = args[:encoding] if args.key?(:encoding)
3138
+ @header_rows = args[:header_rows] if args.key?(:header_rows)
3139
+ end
3140
+ end
3141
+
3142
+ # Describe JSON data format.
3143
+ class GoogleCloudDataplexV1ZoneDiscoverySpecJsonOptions
3144
+ include Google::Apis::Core::Hashable
3145
+
3146
+ # Optional. Whether to disable the inference of data type for Json data. If true,
3147
+ # all columns will be registered as their primitive types (strings, number or
3148
+ # boolean).
3149
+ # Corresponds to the JSON property `disableTypeInference`
3150
+ # @return [Boolean]
3151
+ attr_accessor :disable_type_inference
3152
+ alias_method :disable_type_inference?, :disable_type_inference
3153
+
3154
+ # Optional. The character encoding of the data. The default is UTF-8.
3155
+ # Corresponds to the JSON property `encoding`
3156
+ # @return [String]
3157
+ attr_accessor :encoding
3158
+
3159
+ def initialize(**args)
3160
+ update!(**args)
3161
+ end
3162
+
3163
+ # Update properties of this object
3164
+ def update!(**args)
3165
+ @disable_type_inference = args[:disable_type_inference] if args.key?(:disable_type_inference)
3166
+ @encoding = args[:encoding] if args.key?(:encoding)
3167
+ end
3168
+ end
3169
+
3170
+ # Settings for resources attached as assets within a zone.
3171
+ class GoogleCloudDataplexV1ZoneResourceSpec
3172
+ include Google::Apis::Core::Hashable
3173
+
3174
+ # Required. Immutable. The location type of the resources that are allowed to be
3175
+ # attached to the assets within this zone.
3176
+ # Corresponds to the JSON property `locationType`
3177
+ # @return [String]
3178
+ attr_accessor :location_type
3179
+
3180
+ def initialize(**args)
3181
+ update!(**args)
3182
+ end
3183
+
3184
+ # Update properties of this object
3185
+ def update!(**args)
3186
+ @location_type = args[:location_type] if args.key?(:location_type)
3187
+ end
3188
+ end
3189
+
3190
+ # The response message for Locations.ListLocations.
3191
+ class GoogleCloudLocationListLocationsResponse
3192
+ include Google::Apis::Core::Hashable
3193
+
3194
+ # A list of locations that matches the specified filter in the request.
3195
+ # Corresponds to the JSON property `locations`
3196
+ # @return [Array<Google::Apis::DataplexV1::GoogleCloudLocationLocation>]
3197
+ attr_accessor :locations
3198
+
3199
+ # The standard List next-page token.
3200
+ # Corresponds to the JSON property `nextPageToken`
3201
+ # @return [String]
3202
+ attr_accessor :next_page_token
3203
+
3204
+ def initialize(**args)
3205
+ update!(**args)
3206
+ end
3207
+
3208
+ # Update properties of this object
3209
+ def update!(**args)
3210
+ @locations = args[:locations] if args.key?(:locations)
3211
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3212
+ end
3213
+ end
3214
+
3215
+ # A resource that represents Google Cloud Platform location.
3216
+ class GoogleCloudLocationLocation
3217
+ include Google::Apis::Core::Hashable
3218
+
3219
+ # The friendly name for this location, typically a nearby city name. For example,
3220
+ # "Tokyo".
3221
+ # Corresponds to the JSON property `displayName`
3222
+ # @return [String]
3223
+ attr_accessor :display_name
3224
+
3225
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
3226
+ # region": "us-east1"`
3227
+ # Corresponds to the JSON property `labels`
3228
+ # @return [Hash<String,String>]
3229
+ attr_accessor :labels
3230
+
3231
+ # The canonical id for this location. For example: "us-east1".
3232
+ # Corresponds to the JSON property `locationId`
3233
+ # @return [String]
3234
+ attr_accessor :location_id
3235
+
3236
+ # Service-specific metadata. For example the available capacity at the given
3237
+ # location.
3238
+ # Corresponds to the JSON property `metadata`
3239
+ # @return [Hash<String,Object>]
3240
+ attr_accessor :metadata
3241
+
3242
+ # Resource name for the location, which may vary between implementations. For
3243
+ # example: "projects/example-project/locations/us-east1"
3244
+ # Corresponds to the JSON property `name`
3245
+ # @return [String]
3246
+ attr_accessor :name
3247
+
3248
+ def initialize(**args)
3249
+ update!(**args)
3250
+ end
3251
+
3252
+ # Update properties of this object
3253
+ def update!(**args)
3254
+ @display_name = args[:display_name] if args.key?(:display_name)
3255
+ @labels = args[:labels] if args.key?(:labels)
3256
+ @location_id = args[:location_id] if args.key?(:location_id)
3257
+ @metadata = args[:metadata] if args.key?(:metadata)
3258
+ @name = args[:name] if args.key?(:name)
3259
+ end
3260
+ end
3261
+
3262
+ # Specifies the audit configuration for a service. The configuration determines
3263
+ # which permission types are logged, and what identities, if any, are exempted
3264
+ # from logging. An AuditConfig must have one or more AuditLogConfigs.If there
3265
+ # are AuditConfigs for both allServices and a specific service, the union of the
3266
+ # two AuditConfigs is used for that service: the log_types specified in each
3267
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
3268
+ # exempted.Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
3269
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
3270
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
3271
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
3272
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
3273
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
3274
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
3275
+ # exempts jose@example.com from DATA_READ logging, and aliya@example.com from
3276
+ # DATA_WRITE logging.
3277
+ class GoogleIamV1AuditConfig
3278
+ include Google::Apis::Core::Hashable
3279
+
3280
+ # The configuration for logging of each type of permission.
3281
+ # Corresponds to the JSON property `auditLogConfigs`
3282
+ # @return [Array<Google::Apis::DataplexV1::GoogleIamV1AuditLogConfig>]
3283
+ attr_accessor :audit_log_configs
3284
+
3285
+ # Specifies a service that will be enabled for audit logging. For example,
3286
+ # storage.googleapis.com, cloudsql.googleapis.com. allServices is a special
3287
+ # value that covers all services.
3288
+ # Corresponds to the JSON property `service`
3289
+ # @return [String]
3290
+ attr_accessor :service
3291
+
3292
+ def initialize(**args)
3293
+ update!(**args)
3294
+ end
3295
+
3296
+ # Update properties of this object
3297
+ def update!(**args)
3298
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
3299
+ @service = args[:service] if args.key?(:service)
3300
+ end
3301
+ end
3302
+
3303
+ # Provides the configuration for logging a type of permissions. Example: ` "
3304
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
3305
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
3306
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
3307
+ # DATA_READ logging.
3308
+ class GoogleIamV1AuditLogConfig
3309
+ include Google::Apis::Core::Hashable
3310
+
3311
+ # Specifies the identities that do not cause logging for this type of permission.
3312
+ # Follows the same format of Binding.members.
3313
+ # Corresponds to the JSON property `exemptedMembers`
3314
+ # @return [Array<String>]
3315
+ attr_accessor :exempted_members
3316
+
3317
+ # The log type that this config enables.
3318
+ # Corresponds to the JSON property `logType`
3319
+ # @return [String]
3320
+ attr_accessor :log_type
3321
+
3322
+ def initialize(**args)
3323
+ update!(**args)
3324
+ end
3325
+
3326
+ # Update properties of this object
3327
+ def update!(**args)
3328
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
3329
+ @log_type = args[:log_type] if args.key?(:log_type)
3330
+ end
3331
+ end
3332
+
3333
+ # Associates members, or principals, with a role.
3334
+ class GoogleIamV1Binding
3335
+ include Google::Apis::Core::Hashable
3336
+
3337
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
3338
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
3339
+ # documented at https://github.com/google/cel-spec.Example (Comparison): title: "
3340
+ # Summary size limit" description: "Determines if a summary is less than 100
3341
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
3342
+ # Requestor is owner" description: "Determines if requestor is the document
3343
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
3344
+ # Logic): title: "Public documents" description: "Determine whether the document
3345
+ # should be publicly visible" expression: "document.type != 'private' &&
3346
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
3347
+ # string" description: "Create a notification string with a timestamp."
3348
+ # expression: "'New message received at ' + string(document.create_time)" The
3349
+ # exact variables and functions that may be referenced within an expression are
3350
+ # determined by the service that evaluates it. See the service documentation for
3351
+ # additional information.
3352
+ # Corresponds to the JSON property `condition`
3353
+ # @return [Google::Apis::DataplexV1::GoogleTypeExpr]
3354
+ attr_accessor :condition
3355
+
3356
+ # Specifies the principals requesting access for a Cloud Platform resource.
3357
+ # members can have the following values: allUsers: A special identifier that
3358
+ # represents anyone who is on the internet; with or without a Google account.
3359
+ # allAuthenticatedUsers: A special identifier that represents anyone who is
3360
+ # authenticated with a Google account or a service account. user:`emailid`: An
3361
+ # email address that represents a specific Google account. For example, alice@
3362
+ # example.com . serviceAccount:`emailid`: An email address that represents a
3363
+ # service account. For example, my-other-app@appspot.gserviceaccount.com. group:`
3364
+ # emailid`: An email address that represents a Google group. For example, admins@
3365
+ # example.com. deleted:user:`emailid`?uid=`uniqueid`: An email address (plus
3366
+ # unique identifier) representing a user that has been recently deleted. For
3367
+ # example, alice@example.com?uid=123456789012345678901. If the user is recovered,
3368
+ # this value reverts to user:`emailid` and the recovered user retains the role
3369
+ # in the binding. deleted:serviceAccount:`emailid`?uid=`uniqueid`: An email
3370
+ # address (plus unique identifier) representing a service account that has been
3371
+ # recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=
3372
+ # 123456789012345678901. If the service account is undeleted, this value reverts
3373
+ # to serviceAccount:`emailid` and the undeleted service account retains the role
3374
+ # in the binding. deleted:group:`emailid`?uid=`uniqueid`: An email address (plus
3375
+ # unique identifier) representing a Google group that has been recently deleted.
3376
+ # For example, admins@example.com?uid=123456789012345678901. If the group is
3377
+ # recovered, this value reverts to group:`emailid` and the recovered group
3378
+ # retains the role in the binding. domain:`domain`: The G Suite domain (primary)
3379
+ # that represents all the users of that domain. For example, google.com or
3380
+ # example.com.
3381
+ # Corresponds to the JSON property `members`
3382
+ # @return [Array<String>]
3383
+ attr_accessor :members
3384
+
3385
+ # Role that is assigned to the list of members, or principals. For example,
3386
+ # roles/viewer, roles/editor, or roles/owner.
3387
+ # Corresponds to the JSON property `role`
3388
+ # @return [String]
3389
+ attr_accessor :role
3390
+
3391
+ def initialize(**args)
3392
+ update!(**args)
3393
+ end
3394
+
3395
+ # Update properties of this object
3396
+ def update!(**args)
3397
+ @condition = args[:condition] if args.key?(:condition)
3398
+ @members = args[:members] if args.key?(:members)
3399
+ @role = args[:role] if args.key?(:role)
3400
+ end
3401
+ end
3402
+
3403
+ # An Identity and Access Management (IAM) policy, which specifies access
3404
+ # controls for Google Cloud resources.A Policy is a collection of bindings. A
3405
+ # binding binds one or more members, or principals, to a single role. Principals
3406
+ # can be user accounts, service accounts, Google groups, and domains (such as G
3407
+ # Suite). A role is a named list of permissions; each role can be an IAM
3408
+ # predefined role or a user-created custom role.For some types of Google Cloud
3409
+ # resources, a binding can also specify a condition, which is a logical
3410
+ # expression that allows access to a resource only if the expression evaluates
3411
+ # to true. A condition can add constraints based on attributes of the request,
3412
+ # the resource, or both. To learn which resources support conditions in their
3413
+ # IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/
3414
+ # conditions/resource-policies).JSON example: ` "bindings": [ ` "role": "roles/
3415
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
3416
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
3417
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
3418
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
3419
+ # title": "expirable access", "description": "Does not grant access after Sep
3420
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
3421
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` YAML example: bindings: - members:
3422
+ # - user:mike@example.com - group:admins@example.com - domain:google.com -
3423
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
3424
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
3425
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
3426
+ # description: Does not grant access after Sep 2020 expression: request.time <
3427
+ # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
3428
+ # description of IAM and its features, see the IAM documentation (https://cloud.
3429
+ # google.com/iam/docs/).
3430
+ class GoogleIamV1Policy
3431
+ include Google::Apis::Core::Hashable
3432
+
3433
+ # Specifies cloud audit logging configuration for this policy.
3434
+ # Corresponds to the JSON property `auditConfigs`
3435
+ # @return [Array<Google::Apis::DataplexV1::GoogleIamV1AuditConfig>]
3436
+ attr_accessor :audit_configs
3437
+
3438
+ # Associates a list of members, or principals, with a role. Optionally, may
3439
+ # specify a condition that determines how and when the bindings are applied.
3440
+ # Each of the bindings must contain at least one principal.The bindings in a
3441
+ # Policy can refer to up to 1,500 principals; up to 250 of these principals can
3442
+ # be Google groups. Each occurrence of a principal counts towards these limits.
3443
+ # For example, if the bindings grant 50 different roles to user:alice@example.
3444
+ # com, and not to any other principal, then you can add another 1,450 principals
3445
+ # to the bindings in the Policy.
3446
+ # Corresponds to the JSON property `bindings`
3447
+ # @return [Array<Google::Apis::DataplexV1::GoogleIamV1Binding>]
3448
+ attr_accessor :bindings
3449
+
3450
+ # etag is used for optimistic concurrency control as a way to help prevent
3451
+ # simultaneous updates of a policy from overwriting each other. It is strongly
3452
+ # suggested that systems make use of the etag in the read-modify-write cycle to
3453
+ # perform policy updates in order to avoid race conditions: An etag is returned
3454
+ # in the response to getIamPolicy, and systems are expected to put that etag in
3455
+ # the request to setIamPolicy to ensure that their change will be applied to the
3456
+ # same version of the policy.Important: If you use IAM Conditions, you must
3457
+ # include the etag field whenever you call setIamPolicy. If you omit this field,
3458
+ # then IAM allows you to overwrite a version 3 policy with a version 1 policy,
3459
+ # and all of the conditions in the version 3 policy are lost.
3460
+ # Corresponds to the JSON property `etag`
3461
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
3462
+ # @return [String]
3463
+ attr_accessor :etag
3464
+
3465
+ # Specifies the format of the policy.Valid values are 0, 1, and 3. Requests that
3466
+ # specify an invalid value are rejected.Any operation that affects conditional
3467
+ # role bindings must specify version 3. This requirement applies to the
3468
+ # following operations: Getting a policy that includes a conditional role
3469
+ # binding Adding a conditional role binding to a policy Changing a conditional
3470
+ # role binding in a policy Removing any role binding, with or without a
3471
+ # condition, from a policy that includes conditionsImportant: If you use IAM
3472
+ # Conditions, you must include the etag field whenever you call setIamPolicy. If
3473
+ # you omit this field, then IAM allows you to overwrite a version 3 policy with
3474
+ # a version 1 policy, and all of the conditions in the version 3 policy are lost.
3475
+ # If a policy does not include any conditions, operations on that policy may
3476
+ # specify any valid version or leave the field unset.To learn which resources
3477
+ # support conditions in their IAM policies, see the IAM documentation (https://
3478
+ # cloud.google.com/iam/help/conditions/resource-policies).
3479
+ # Corresponds to the JSON property `version`
3480
+ # @return [Fixnum]
3481
+ attr_accessor :version
3482
+
3483
+ def initialize(**args)
3484
+ update!(**args)
3485
+ end
3486
+
3487
+ # Update properties of this object
3488
+ def update!(**args)
3489
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
3490
+ @bindings = args[:bindings] if args.key?(:bindings)
3491
+ @etag = args[:etag] if args.key?(:etag)
3492
+ @version = args[:version] if args.key?(:version)
3493
+ end
3494
+ end
3495
+
3496
+ # Request message for SetIamPolicy method.
3497
+ class GoogleIamV1SetIamPolicyRequest
3498
+ include Google::Apis::Core::Hashable
3499
+
3500
+ # An Identity and Access Management (IAM) policy, which specifies access
3501
+ # controls for Google Cloud resources.A Policy is a collection of bindings. A
3502
+ # binding binds one or more members, or principals, to a single role. Principals
3503
+ # can be user accounts, service accounts, Google groups, and domains (such as G
3504
+ # Suite). A role is a named list of permissions; each role can be an IAM
3505
+ # predefined role or a user-created custom role.For some types of Google Cloud
3506
+ # resources, a binding can also specify a condition, which is a logical
3507
+ # expression that allows access to a resource only if the expression evaluates
3508
+ # to true. A condition can add constraints based on attributes of the request,
3509
+ # the resource, or both. To learn which resources support conditions in their
3510
+ # IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/
3511
+ # conditions/resource-policies).JSON example: ` "bindings": [ ` "role": "roles/
3512
+ # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
3513
+ # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
3514
+ # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
3515
+ # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
3516
+ # title": "expirable access", "description": "Does not grant access after Sep
3517
+ # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
3518
+ # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` YAML example: bindings: - members:
3519
+ # - user:mike@example.com - group:admins@example.com - domain:google.com -
3520
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
3521
+ # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
3522
+ # roles/resourcemanager.organizationViewer condition: title: expirable access
3523
+ # description: Does not grant access after Sep 2020 expression: request.time <
3524
+ # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
3525
+ # description of IAM and its features, see the IAM documentation (https://cloud.
3526
+ # google.com/iam/docs/).
3527
+ # Corresponds to the JSON property `policy`
3528
+ # @return [Google::Apis::DataplexV1::GoogleIamV1Policy]
3529
+ attr_accessor :policy
3530
+
3531
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
3532
+ # the fields in the mask will be modified. If no mask is provided, the following
3533
+ # default mask is used:paths: "bindings, etag"
3534
+ # Corresponds to the JSON property `updateMask`
3535
+ # @return [String]
3536
+ attr_accessor :update_mask
3537
+
3538
+ def initialize(**args)
3539
+ update!(**args)
3540
+ end
3541
+
3542
+ # Update properties of this object
3543
+ def update!(**args)
3544
+ @policy = args[:policy] if args.key?(:policy)
3545
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
3546
+ end
3547
+ end
3548
+
3549
+ # Request message for TestIamPermissions method.
3550
+ class GoogleIamV1TestIamPermissionsRequest
3551
+ include Google::Apis::Core::Hashable
3552
+
3553
+ # The set of permissions to check for the resource. Permissions with wildcards (
3554
+ # such as '*' or 'storage.*') are not allowed. For more information see IAM
3555
+ # Overview (https://cloud.google.com/iam/docs/overview#permissions).
3556
+ # Corresponds to the JSON property `permissions`
3557
+ # @return [Array<String>]
3558
+ attr_accessor :permissions
3559
+
3560
+ def initialize(**args)
3561
+ update!(**args)
3562
+ end
3563
+
3564
+ # Update properties of this object
3565
+ def update!(**args)
3566
+ @permissions = args[:permissions] if args.key?(:permissions)
3567
+ end
3568
+ end
3569
+
3570
+ # Response message for TestIamPermissions method.
3571
+ class GoogleIamV1TestIamPermissionsResponse
3572
+ include Google::Apis::Core::Hashable
3573
+
3574
+ # A subset of TestPermissionsRequest.permissions that the caller is allowed.
3575
+ # Corresponds to the JSON property `permissions`
3576
+ # @return [Array<String>]
3577
+ attr_accessor :permissions
3578
+
3579
+ def initialize(**args)
3580
+ update!(**args)
3581
+ end
3582
+
3583
+ # Update properties of this object
3584
+ def update!(**args)
3585
+ @permissions = args[:permissions] if args.key?(:permissions)
3586
+ end
3587
+ end
3588
+
3589
+ # The request message for Operations.CancelOperation.
3590
+ class GoogleLongrunningCancelOperationRequest
3591
+ include Google::Apis::Core::Hashable
3592
+
3593
+ def initialize(**args)
3594
+ update!(**args)
3595
+ end
3596
+
3597
+ # Update properties of this object
3598
+ def update!(**args)
3599
+ end
3600
+ end
3601
+
3602
+ # The response message for Operations.ListOperations.
3603
+ class GoogleLongrunningListOperationsResponse
3604
+ include Google::Apis::Core::Hashable
3605
+
3606
+ # The standard List next-page token.
3607
+ # Corresponds to the JSON property `nextPageToken`
3608
+ # @return [String]
3609
+ attr_accessor :next_page_token
3610
+
3611
+ # A list of operations that matches the specified filter in the request.
3612
+ # Corresponds to the JSON property `operations`
3613
+ # @return [Array<Google::Apis::DataplexV1::GoogleLongrunningOperation>]
3614
+ attr_accessor :operations
3615
+
3616
+ def initialize(**args)
3617
+ update!(**args)
3618
+ end
3619
+
3620
+ # Update properties of this object
3621
+ def update!(**args)
3622
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3623
+ @operations = args[:operations] if args.key?(:operations)
3624
+ end
3625
+ end
3626
+
3627
+ # This resource represents a long-running operation that is the result of a
3628
+ # network API call.
3629
+ class GoogleLongrunningOperation
3630
+ include Google::Apis::Core::Hashable
3631
+
3632
+ # If the value is false, it means the operation is still in progress. If true,
3633
+ # the operation is completed, and either error or response is available.
3634
+ # Corresponds to the JSON property `done`
3635
+ # @return [Boolean]
3636
+ attr_accessor :done
3637
+ alias_method :done?, :done
3638
+
3639
+ # The Status type defines a logical error model that is suitable for different
3640
+ # programming environments, including REST APIs and RPC APIs. It is used by gRPC
3641
+ # (https://github.com/grpc). Each Status message contains three pieces of data:
3642
+ # error code, error message, and error details.You can find out more about this
3643
+ # error model and how to work with it in the API Design Guide (https://cloud.
3644
+ # google.com/apis/design/errors).
3645
+ # Corresponds to the JSON property `error`
3646
+ # @return [Google::Apis::DataplexV1::GoogleRpcStatus]
3647
+ attr_accessor :error
3648
+
3649
+ # Service-specific metadata associated with the operation. It typically contains
3650
+ # progress information and common metadata such as create time. Some services
3651
+ # might not provide such metadata. Any method that returns a long-running
3652
+ # operation should document the metadata type, if any.
3653
+ # Corresponds to the JSON property `metadata`
3654
+ # @return [Hash<String,Object>]
3655
+ attr_accessor :metadata
3656
+
3657
+ # The server-assigned name, which is only unique within the same service that
3658
+ # originally returns it. If you use the default HTTP mapping, the name should be
3659
+ # a resource name ending with operations/`unique_id`.
3660
+ # Corresponds to the JSON property `name`
3661
+ # @return [String]
3662
+ attr_accessor :name
3663
+
3664
+ # The normal response of the operation in case of success. If the original
3665
+ # method returns no data on success, such as Delete, the response is google.
3666
+ # protobuf.Empty. If the original method is standard Get/Create/Update, the
3667
+ # response should be the resource. For other methods, the response should have
3668
+ # the type XxxResponse, where Xxx is the original method name. For example, if
3669
+ # the original method name is TakeSnapshot(), the inferred response type is
3670
+ # TakeSnapshotResponse.
3671
+ # Corresponds to the JSON property `response`
3672
+ # @return [Hash<String,Object>]
3673
+ attr_accessor :response
3674
+
3675
+ def initialize(**args)
3676
+ update!(**args)
3677
+ end
3678
+
3679
+ # Update properties of this object
3680
+ def update!(**args)
3681
+ @done = args[:done] if args.key?(:done)
3682
+ @error = args[:error] if args.key?(:error)
3683
+ @metadata = args[:metadata] if args.key?(:metadata)
3684
+ @name = args[:name] if args.key?(:name)
3685
+ @response = args[:response] if args.key?(:response)
3686
+ end
3687
+ end
3688
+
3689
+ # The Status type defines a logical error model that is suitable for different
3690
+ # programming environments, including REST APIs and RPC APIs. It is used by gRPC
3691
+ # (https://github.com/grpc). Each Status message contains three pieces of data:
3692
+ # error code, error message, and error details.You can find out more about this
3693
+ # error model and how to work with it in the API Design Guide (https://cloud.
3694
+ # google.com/apis/design/errors).
3695
+ class GoogleRpcStatus
3696
+ include Google::Apis::Core::Hashable
3697
+
3698
+ # The status code, which should be an enum value of google.rpc.Code.
3699
+ # Corresponds to the JSON property `code`
3700
+ # @return [Fixnum]
3701
+ attr_accessor :code
3702
+
3703
+ # A list of messages that carry the error details. There is a common set of
3704
+ # message types for APIs to use.
3705
+ # Corresponds to the JSON property `details`
3706
+ # @return [Array<Hash<String,Object>>]
3707
+ attr_accessor :details
3708
+
3709
+ # A developer-facing error message, which should be in English. Any user-facing
3710
+ # error message should be localized and sent in the google.rpc.Status.details
3711
+ # field, or localized by the client.
3712
+ # Corresponds to the JSON property `message`
3713
+ # @return [String]
3714
+ attr_accessor :message
3715
+
3716
+ def initialize(**args)
3717
+ update!(**args)
3718
+ end
3719
+
3720
+ # Update properties of this object
3721
+ def update!(**args)
3722
+ @code = args[:code] if args.key?(:code)
3723
+ @details = args[:details] if args.key?(:details)
3724
+ @message = args[:message] if args.key?(:message)
3725
+ end
3726
+ end
3727
+
3728
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
3729
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
3730
+ # documented at https://github.com/google/cel-spec.Example (Comparison): title: "
3731
+ # Summary size limit" description: "Determines if a summary is less than 100
3732
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
3733
+ # Requestor is owner" description: "Determines if requestor is the document
3734
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
3735
+ # Logic): title: "Public documents" description: "Determine whether the document
3736
+ # should be publicly visible" expression: "document.type != 'private' &&
3737
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
3738
+ # string" description: "Create a notification string with a timestamp."
3739
+ # expression: "'New message received at ' + string(document.create_time)" The
3740
+ # exact variables and functions that may be referenced within an expression are
3741
+ # determined by the service that evaluates it. See the service documentation for
3742
+ # additional information.
3743
+ class GoogleTypeExpr
3744
+ include Google::Apis::Core::Hashable
3745
+
3746
+ # Optional. Description of the expression. This is a longer text which describes
3747
+ # the expression, e.g. when hovered over it in a UI.
3748
+ # Corresponds to the JSON property `description`
3749
+ # @return [String]
3750
+ attr_accessor :description
3751
+
3752
+ # Textual representation of an expression in Common Expression Language syntax.
3753
+ # Corresponds to the JSON property `expression`
3754
+ # @return [String]
3755
+ attr_accessor :expression
3756
+
3757
+ # Optional. String indicating the location of the expression for error reporting,
3758
+ # e.g. a file name and a position in the file.
3759
+ # Corresponds to the JSON property `location`
3760
+ # @return [String]
3761
+ attr_accessor :location
3762
+
3763
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
3764
+ # This can be used e.g. in UIs which allow to enter the expression.
3765
+ # Corresponds to the JSON property `title`
3766
+ # @return [String]
3767
+ attr_accessor :title
3768
+
3769
+ def initialize(**args)
3770
+ update!(**args)
3771
+ end
3772
+
3773
+ # Update properties of this object
3774
+ def update!(**args)
3775
+ @description = args[:description] if args.key?(:description)
3776
+ @expression = args[:expression] if args.key?(:expression)
3777
+ @location = args[:location] if args.key?(:location)
3778
+ @title = args[:title] if args.key?(:title)
3779
+ end
3780
+ end
3781
+ end
3782
+ end
3783
+ end