google-apis-dataform_v1 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3846 @@
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 DataformV1
24
+
25
+ # Error table information, used to write error data into a BigQuery table.
26
+ class ActionErrorTable
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Error table partition expiration in days. Only positive values are allowed.
30
+ # Corresponds to the JSON property `retentionDays`
31
+ # @return [Fixnum]
32
+ attr_accessor :retention_days
33
+
34
+ # Represents an action identifier. If the action writes output, the output will
35
+ # be written to the referenced database object.
36
+ # Corresponds to the JSON property `target`
37
+ # @return [Google::Apis::DataformV1::Target]
38
+ attr_accessor :target
39
+
40
+ def initialize(**args)
41
+ update!(**args)
42
+ end
43
+
44
+ # Update properties of this object
45
+ def update!(**args)
46
+ @retention_days = args[:retention_days] if args.key?(:retention_days)
47
+ @target = args[:target] if args.key?(:target)
48
+ end
49
+ end
50
+
51
+ # Load definition for incremental load modes
52
+ class ActionIncrementalLoadMode
53
+ include Google::Apis::Core::Hashable
54
+
55
+ # Column name for incremental load modes
56
+ # Corresponds to the JSON property `column`
57
+ # @return [String]
58
+ attr_accessor :column
59
+
60
+ def initialize(**args)
61
+ update!(**args)
62
+ end
63
+
64
+ # Update properties of this object
65
+ def update!(**args)
66
+ @column = args[:column] if args.key?(:column)
67
+ end
68
+ end
69
+
70
+ # Simplified load configuration for actions
71
+ class ActionLoadConfig
72
+ include Google::Apis::Core::Hashable
73
+
74
+ # Simple load definition
75
+ # Corresponds to the JSON property `append`
76
+ # @return [Google::Apis::DataformV1::ActionSimpleLoadMode]
77
+ attr_accessor :append
78
+
79
+ # Load definition for incremental load modes
80
+ # Corresponds to the JSON property `maximum`
81
+ # @return [Google::Apis::DataformV1::ActionIncrementalLoadMode]
82
+ attr_accessor :maximum
83
+
84
+ # Simple load definition
85
+ # Corresponds to the JSON property `replace`
86
+ # @return [Google::Apis::DataformV1::ActionSimpleLoadMode]
87
+ attr_accessor :replace
88
+
89
+ # Load definition for incremental load modes
90
+ # Corresponds to the JSON property `unique`
91
+ # @return [Google::Apis::DataformV1::ActionIncrementalLoadMode]
92
+ attr_accessor :unique
93
+
94
+ def initialize(**args)
95
+ update!(**args)
96
+ end
97
+
98
+ # Update properties of this object
99
+ def update!(**args)
100
+ @append = args[:append] if args.key?(:append)
101
+ @maximum = args[:maximum] if args.key?(:maximum)
102
+ @replace = args[:replace] if args.key?(:replace)
103
+ @unique = args[:unique] if args.key?(:unique)
104
+ end
105
+ end
106
+
107
+ # Simple load definition
108
+ class ActionSimpleLoadMode
109
+ include Google::Apis::Core::Hashable
110
+
111
+ def initialize(**args)
112
+ update!(**args)
113
+ end
114
+
115
+ # Update properties of this object
116
+ def update!(**args)
117
+ end
118
+ end
119
+
120
+ # Definition of a SQL Data Preparation
121
+ class ActionSqlDefinition
122
+ include Google::Apis::Core::Hashable
123
+
124
+ # Error table information, used to write error data into a BigQuery table.
125
+ # Corresponds to the JSON property `errorTable`
126
+ # @return [Google::Apis::DataformV1::ActionErrorTable]
127
+ attr_accessor :error_table
128
+
129
+ # Simplified load configuration for actions
130
+ # Corresponds to the JSON property `loadConfig`
131
+ # @return [Google::Apis::DataformV1::ActionLoadConfig]
132
+ attr_accessor :load_config
133
+
134
+ # The SQL query representing the data preparation steps. Formatted as a Pipe SQL
135
+ # query statement.
136
+ # Corresponds to the JSON property `query`
137
+ # @return [String]
138
+ attr_accessor :query
139
+
140
+ def initialize(**args)
141
+ update!(**args)
142
+ end
143
+
144
+ # Update properties of this object
145
+ def update!(**args)
146
+ @error_table = args[:error_table] if args.key?(:error_table)
147
+ @load_config = args[:load_config] if args.key?(:load_config)
148
+ @query = args[:query] if args.key?(:query)
149
+ end
150
+ end
151
+
152
+ # Represents an assertion upon a SQL query which is required return zero rows.
153
+ class Assertion
154
+ include Google::Apis::Core::Hashable
155
+
156
+ # A list of actions that this action depends on.
157
+ # Corresponds to the JSON property `dependencyTargets`
158
+ # @return [Array<Google::Apis::DataformV1::Target>]
159
+ attr_accessor :dependency_targets
160
+
161
+ # Whether this action is disabled (i.e. should not be run).
162
+ # Corresponds to the JSON property `disabled`
163
+ # @return [Boolean]
164
+ attr_accessor :disabled
165
+ alias_method :disabled?, :disabled
166
+
167
+ # Represents an action identifier. If the action writes output, the output will
168
+ # be written to the referenced database object.
169
+ # Corresponds to the JSON property `parentAction`
170
+ # @return [Google::Apis::DataformV1::Target]
171
+ attr_accessor :parent_action
172
+
173
+ # Describes a relation and its columns.
174
+ # Corresponds to the JSON property `relationDescriptor`
175
+ # @return [Google::Apis::DataformV1::RelationDescriptor]
176
+ attr_accessor :relation_descriptor
177
+
178
+ # The SELECT query which must return zero rows in order for this assertion to
179
+ # succeed.
180
+ # Corresponds to the JSON property `selectQuery`
181
+ # @return [String]
182
+ attr_accessor :select_query
183
+
184
+ # Arbitrary, user-defined tags on this action.
185
+ # Corresponds to the JSON property `tags`
186
+ # @return [Array<String>]
187
+ attr_accessor :tags
188
+
189
+ def initialize(**args)
190
+ update!(**args)
191
+ end
192
+
193
+ # Update properties of this object
194
+ def update!(**args)
195
+ @dependency_targets = args[:dependency_targets] if args.key?(:dependency_targets)
196
+ @disabled = args[:disabled] if args.key?(:disabled)
197
+ @parent_action = args[:parent_action] if args.key?(:parent_action)
198
+ @relation_descriptor = args[:relation_descriptor] if args.key?(:relation_descriptor)
199
+ @select_query = args[:select_query] if args.key?(:select_query)
200
+ @tags = args[:tags] if args.key?(:tags)
201
+ end
202
+ end
203
+
204
+ # Represents a workflow action that will run against BigQuery.
205
+ class BigQueryAction
206
+ include Google::Apis::Core::Hashable
207
+
208
+ # Output only. The ID of the BigQuery job that executed the SQL in sql_script.
209
+ # Only set once the job has started to run.
210
+ # Corresponds to the JSON property `jobId`
211
+ # @return [String]
212
+ attr_accessor :job_id
213
+
214
+ # Output only. The generated BigQuery SQL script that will be executed.
215
+ # Corresponds to the JSON property `sqlScript`
216
+ # @return [String]
217
+ attr_accessor :sql_script
218
+
219
+ def initialize(**args)
220
+ update!(**args)
221
+ end
222
+
223
+ # Update properties of this object
224
+ def update!(**args)
225
+ @job_id = args[:job_id] if args.key?(:job_id)
226
+ @sql_script = args[:sql_script] if args.key?(:sql_script)
227
+ end
228
+ end
229
+
230
+ # Associates `members`, or principals, with a `role`.
231
+ class Binding
232
+ include Google::Apis::Core::Hashable
233
+
234
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
235
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
236
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
237
+ # "Summary size limit" description: "Determines if a summary is less than 100
238
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
239
+ # Requestor is owner" description: "Determines if requestor is the document
240
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
241
+ # Logic): title: "Public documents" description: "Determine whether the document
242
+ # should be publicly visible" expression: "document.type != 'private' &&
243
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
244
+ # string" description: "Create a notification string with a timestamp."
245
+ # expression: "'New message received at ' + string(document.create_time)" The
246
+ # exact variables and functions that may be referenced within an expression are
247
+ # determined by the service that evaluates it. See the service documentation for
248
+ # additional information.
249
+ # Corresponds to the JSON property `condition`
250
+ # @return [Google::Apis::DataformV1::Expr]
251
+ attr_accessor :condition
252
+
253
+ # Specifies the principals requesting access for a Google Cloud resource. `
254
+ # members` can have the following values: * `allUsers`: A special identifier
255
+ # that represents anyone who is on the internet; with or without a Google
256
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
257
+ # anyone who is authenticated with a Google account or a service account. Does
258
+ # not include identities that come from external identity providers (IdPs)
259
+ # through identity federation. * `user:`emailid``: An email address that
260
+ # represents a specific Google account. For example, `alice@example.com` . * `
261
+ # serviceAccount:`emailid``: An email address that represents a Google service
262
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`. * `
263
+ # serviceAccount:`projectid`.svc.id.goog[`namespace`/`kubernetes-sa`]`: An
264
+ # identifier for a [Kubernetes service account](https://cloud.google.com/
265
+ # kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-
266
+ # project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:`emailid``: An
267
+ # email address that represents a Google group. For example, `admins@example.com`
268
+ # . * `domain:`domain``: The G Suite domain (primary) that represents all the
269
+ # users of that domain. For example, `google.com` or `example.com`. * `principal:
270
+ # //iam.googleapis.com/locations/global/workforcePools/`pool_id`/subject/`
271
+ # subject_attribute_value``: A single identity in a workforce identity pool. * `
272
+ # principalSet://iam.googleapis.com/locations/global/workforcePools/`pool_id`/
273
+ # group/`group_id``: All workforce identities in a group. * `principalSet://iam.
274
+ # googleapis.com/locations/global/workforcePools/`pool_id`/attribute.`
275
+ # attribute_name`/`attribute_value``: All workforce identities with a specific
276
+ # attribute value. * `principalSet://iam.googleapis.com/locations/global/
277
+ # workforcePools/`pool_id`/*`: All identities in a workforce identity pool. * `
278
+ # principal://iam.googleapis.com/projects/`project_number`/locations/global/
279
+ # workloadIdentityPools/`pool_id`/subject/`subject_attribute_value``: A single
280
+ # identity in a workload identity pool. * `principalSet://iam.googleapis.com/
281
+ # projects/`project_number`/locations/global/workloadIdentityPools/`pool_id`/
282
+ # group/`group_id``: A workload identity pool group. * `principalSet://iam.
283
+ # googleapis.com/projects/`project_number`/locations/global/
284
+ # workloadIdentityPools/`pool_id`/attribute.`attribute_name`/`attribute_value``:
285
+ # All identities in a workload identity pool with a certain attribute. * `
286
+ # principalSet://iam.googleapis.com/projects/`project_number`/locations/global/
287
+ # workloadIdentityPools/`pool_id`/*`: All identities in a workload identity pool.
288
+ # * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
289
+ # identifier) representing a user that has been recently deleted. For example, `
290
+ # alice@example.com?uid=123456789012345678901`. If the user is recovered, this
291
+ # value reverts to `user:`emailid`` and the recovered user retains the role in
292
+ # the binding. * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email
293
+ # address (plus unique identifier) representing a service account that has been
294
+ # recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=
295
+ # 123456789012345678901`. If the service account is undeleted, this value
296
+ # reverts to `serviceAccount:`emailid`` and the undeleted service account
297
+ # retains the role in the binding. * `deleted:group:`emailid`?uid=`uniqueid``:
298
+ # An email address (plus unique identifier) representing a Google group that has
299
+ # been recently deleted. For example, `admins@example.com?uid=
300
+ # 123456789012345678901`. If the group is recovered, this value reverts to `
301
+ # group:`emailid`` and the recovered group retains the role in the binding. * `
302
+ # deleted:principal://iam.googleapis.com/locations/global/workforcePools/`
303
+ # pool_id`/subject/`subject_attribute_value``: Deleted single identity in a
304
+ # workforce identity pool. For example, `deleted:principal://iam.googleapis.com/
305
+ # locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.
306
+ # Corresponds to the JSON property `members`
307
+ # @return [Array<String>]
308
+ attr_accessor :members
309
+
310
+ # Role that is assigned to the list of `members`, or principals. For example, `
311
+ # roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM
312
+ # roles and permissions, see the [IAM documentation](https://cloud.google.com/
313
+ # iam/docs/roles-overview). For a list of the available pre-defined roles, see [
314
+ # here](https://cloud.google.com/iam/docs/understanding-roles).
315
+ # Corresponds to the JSON property `role`
316
+ # @return [String]
317
+ attr_accessor :role
318
+
319
+ def initialize(**args)
320
+ update!(**args)
321
+ end
322
+
323
+ # Update properties of this object
324
+ def update!(**args)
325
+ @condition = args[:condition] if args.key?(:condition)
326
+ @members = args[:members] if args.key?(:members)
327
+ @role = args[:role] if args.key?(:role)
328
+ end
329
+ end
330
+
331
+ # The request message for Operations.CancelOperation.
332
+ class CancelOperationRequest
333
+ include Google::Apis::Core::Hashable
334
+
335
+ def initialize(**args)
336
+ update!(**args)
337
+ end
338
+
339
+ # Update properties of this object
340
+ def update!(**args)
341
+ end
342
+ end
343
+
344
+ # `CancelWorkflowInvocation` request message.
345
+ class CancelWorkflowInvocationRequest
346
+ include Google::Apis::Core::Hashable
347
+
348
+ def initialize(**args)
349
+ update!(**args)
350
+ end
351
+
352
+ # Update properties of this object
353
+ def update!(**args)
354
+ end
355
+ end
356
+
357
+ # `CancelWorkflowInvocation` response message.
358
+ class CancelWorkflowInvocationResponse
359
+ include Google::Apis::Core::Hashable
360
+
361
+ def initialize(**args)
362
+ update!(**args)
363
+ end
364
+
365
+ # Update properties of this object
366
+ def update!(**args)
367
+ end
368
+ end
369
+
370
+ # Configures various aspects of Dataform code compilation.
371
+ class CodeCompilationConfig
372
+ include Google::Apis::Core::Hashable
373
+
374
+ # Optional. The default schema (BigQuery dataset ID) for assertions.
375
+ # Corresponds to the JSON property `assertionSchema`
376
+ # @return [String]
377
+ attr_accessor :assertion_schema
378
+
379
+ # Optional. The prefix to prepend to built-in assertion names.
380
+ # Corresponds to the JSON property `builtinAssertionNamePrefix`
381
+ # @return [String]
382
+ attr_accessor :builtin_assertion_name_prefix
383
+
384
+ # Optional. The suffix that should be appended to all database (Google Cloud
385
+ # project ID) names.
386
+ # Corresponds to the JSON property `databaseSuffix`
387
+ # @return [String]
388
+ attr_accessor :database_suffix
389
+
390
+ # Optional. The default database (Google Cloud project ID).
391
+ # Corresponds to the JSON property `defaultDatabase`
392
+ # @return [String]
393
+ attr_accessor :default_database
394
+
395
+ # Optional. The default BigQuery location to use. Defaults to "US". See the
396
+ # BigQuery docs for a full list of locations: https://cloud.google.com/bigquery/
397
+ # docs/locations.
398
+ # Corresponds to the JSON property `defaultLocation`
399
+ # @return [String]
400
+ attr_accessor :default_location
401
+
402
+ # Configures various aspects of Dataform notebook runtime.
403
+ # Corresponds to the JSON property `defaultNotebookRuntimeOptions`
404
+ # @return [Google::Apis::DataformV1::NotebookRuntimeOptions]
405
+ attr_accessor :default_notebook_runtime_options
406
+
407
+ # Optional. The default schema (BigQuery dataset ID).
408
+ # Corresponds to the JSON property `defaultSchema`
409
+ # @return [String]
410
+ attr_accessor :default_schema
411
+
412
+ # Optional. The suffix that should be appended to all schema (BigQuery dataset
413
+ # ID) names.
414
+ # Corresponds to the JSON property `schemaSuffix`
415
+ # @return [String]
416
+ attr_accessor :schema_suffix
417
+
418
+ # Optional. The prefix that should be prepended to all table names.
419
+ # Corresponds to the JSON property `tablePrefix`
420
+ # @return [String]
421
+ attr_accessor :table_prefix
422
+
423
+ # Optional. User-defined variables that are made available to project code
424
+ # during compilation.
425
+ # Corresponds to the JSON property `vars`
426
+ # @return [Hash<String,String>]
427
+ attr_accessor :vars
428
+
429
+ def initialize(**args)
430
+ update!(**args)
431
+ end
432
+
433
+ # Update properties of this object
434
+ def update!(**args)
435
+ @assertion_schema = args[:assertion_schema] if args.key?(:assertion_schema)
436
+ @builtin_assertion_name_prefix = args[:builtin_assertion_name_prefix] if args.key?(:builtin_assertion_name_prefix)
437
+ @database_suffix = args[:database_suffix] if args.key?(:database_suffix)
438
+ @default_database = args[:default_database] if args.key?(:default_database)
439
+ @default_location = args[:default_location] if args.key?(:default_location)
440
+ @default_notebook_runtime_options = args[:default_notebook_runtime_options] if args.key?(:default_notebook_runtime_options)
441
+ @default_schema = args[:default_schema] if args.key?(:default_schema)
442
+ @schema_suffix = args[:schema_suffix] if args.key?(:schema_suffix)
443
+ @table_prefix = args[:table_prefix] if args.key?(:table_prefix)
444
+ @vars = args[:vars] if args.key?(:vars)
445
+ end
446
+ end
447
+
448
+ # Describes a column.
449
+ class ColumnDescriptor
450
+ include Google::Apis::Core::Hashable
451
+
452
+ # A list of BigQuery policy tags that will be applied to the column.
453
+ # Corresponds to the JSON property `bigqueryPolicyTags`
454
+ # @return [Array<String>]
455
+ attr_accessor :bigquery_policy_tags
456
+
457
+ # A textual description of the column.
458
+ # Corresponds to the JSON property `description`
459
+ # @return [String]
460
+ attr_accessor :description
461
+
462
+ # The identifier for the column. Each entry in `path` represents one level of
463
+ # nesting.
464
+ # Corresponds to the JSON property `path`
465
+ # @return [Array<String>]
466
+ attr_accessor :path
467
+
468
+ def initialize(**args)
469
+ update!(**args)
470
+ end
471
+
472
+ # Update properties of this object
473
+ def update!(**args)
474
+ @bigquery_policy_tags = args[:bigquery_policy_tags] if args.key?(:bigquery_policy_tags)
475
+ @description = args[:description] if args.key?(:description)
476
+ @path = args[:path] if args.key?(:path)
477
+ end
478
+ end
479
+
480
+ # Represents the author of a Git commit.
481
+ class CommitAuthor
482
+ include Google::Apis::Core::Hashable
483
+
484
+ # Required. The commit author's email address.
485
+ # Corresponds to the JSON property `emailAddress`
486
+ # @return [String]
487
+ attr_accessor :email_address
488
+
489
+ # Required. The commit author's name.
490
+ # Corresponds to the JSON property `name`
491
+ # @return [String]
492
+ attr_accessor :name
493
+
494
+ def initialize(**args)
495
+ update!(**args)
496
+ end
497
+
498
+ # Update properties of this object
499
+ def update!(**args)
500
+ @email_address = args[:email_address] if args.key?(:email_address)
501
+ @name = args[:name] if args.key?(:name)
502
+ end
503
+ end
504
+
505
+ # Represents a single commit log.
506
+ class CommitLogEntry
507
+ include Google::Apis::Core::Hashable
508
+
509
+ # Represents the author of a Git commit.
510
+ # Corresponds to the JSON property `author`
511
+ # @return [Google::Apis::DataformV1::CommitAuthor]
512
+ attr_accessor :author
513
+
514
+ # The commit message for this commit log entry.
515
+ # Corresponds to the JSON property `commitMessage`
516
+ # @return [String]
517
+ attr_accessor :commit_message
518
+
519
+ # The commit SHA for this commit log entry.
520
+ # Corresponds to the JSON property `commitSha`
521
+ # @return [String]
522
+ attr_accessor :commit_sha
523
+
524
+ # Commit timestamp.
525
+ # Corresponds to the JSON property `commitTime`
526
+ # @return [String]
527
+ attr_accessor :commit_time
528
+
529
+ def initialize(**args)
530
+ update!(**args)
531
+ end
532
+
533
+ # Update properties of this object
534
+ def update!(**args)
535
+ @author = args[:author] if args.key?(:author)
536
+ @commit_message = args[:commit_message] if args.key?(:commit_message)
537
+ @commit_sha = args[:commit_sha] if args.key?(:commit_sha)
538
+ @commit_time = args[:commit_time] if args.key?(:commit_time)
539
+ end
540
+ end
541
+
542
+ # Represents a Dataform Git commit.
543
+ class CommitMetadata
544
+ include Google::Apis::Core::Hashable
545
+
546
+ # Represents the author of a Git commit.
547
+ # Corresponds to the JSON property `author`
548
+ # @return [Google::Apis::DataformV1::CommitAuthor]
549
+ attr_accessor :author
550
+
551
+ # Optional. The commit's message.
552
+ # Corresponds to the JSON property `commitMessage`
553
+ # @return [String]
554
+ attr_accessor :commit_message
555
+
556
+ def initialize(**args)
557
+ update!(**args)
558
+ end
559
+
560
+ # Update properties of this object
561
+ def update!(**args)
562
+ @author = args[:author] if args.key?(:author)
563
+ @commit_message = args[:commit_message] if args.key?(:commit_message)
564
+ end
565
+ end
566
+
567
+ # `CommitRepositoryChanges` request message.
568
+ class CommitRepositoryChangesRequest
569
+ include Google::Apis::Core::Hashable
570
+
571
+ # Represents a Dataform Git commit.
572
+ # Corresponds to the JSON property `commitMetadata`
573
+ # @return [Google::Apis::DataformV1::CommitMetadata]
574
+ attr_accessor :commit_metadata
575
+
576
+ # Optional. A map to the path of the file to the operation. The path is the full
577
+ # file path including filename, from repository root.
578
+ # Corresponds to the JSON property `fileOperations`
579
+ # @return [Hash<String,Google::Apis::DataformV1::FileOperation>]
580
+ attr_accessor :file_operations
581
+
582
+ # Optional. The commit SHA which must be the repository's current HEAD before
583
+ # applying this commit; otherwise this request will fail. If unset, no
584
+ # validation on the current HEAD commit SHA is performed.
585
+ # Corresponds to the JSON property `requiredHeadCommitSha`
586
+ # @return [String]
587
+ attr_accessor :required_head_commit_sha
588
+
589
+ def initialize(**args)
590
+ update!(**args)
591
+ end
592
+
593
+ # Update properties of this object
594
+ def update!(**args)
595
+ @commit_metadata = args[:commit_metadata] if args.key?(:commit_metadata)
596
+ @file_operations = args[:file_operations] if args.key?(:file_operations)
597
+ @required_head_commit_sha = args[:required_head_commit_sha] if args.key?(:required_head_commit_sha)
598
+ end
599
+ end
600
+
601
+ # `CommitRepositoryChanges` response message.
602
+ class CommitRepositoryChangesResponse
603
+ include Google::Apis::Core::Hashable
604
+
605
+ # The commit SHA of the current commit.
606
+ # Corresponds to the JSON property `commitSha`
607
+ # @return [String]
608
+ attr_accessor :commit_sha
609
+
610
+ def initialize(**args)
611
+ update!(**args)
612
+ end
613
+
614
+ # Update properties of this object
615
+ def update!(**args)
616
+ @commit_sha = args[:commit_sha] if args.key?(:commit_sha)
617
+ end
618
+ end
619
+
620
+ # `CommitWorkspaceChanges` request message.
621
+ class CommitWorkspaceChangesRequest
622
+ include Google::Apis::Core::Hashable
623
+
624
+ # Represents the author of a Git commit.
625
+ # Corresponds to the JSON property `author`
626
+ # @return [Google::Apis::DataformV1::CommitAuthor]
627
+ attr_accessor :author
628
+
629
+ # Optional. The commit's message.
630
+ # Corresponds to the JSON property `commitMessage`
631
+ # @return [String]
632
+ attr_accessor :commit_message
633
+
634
+ # Optional. Full file paths to commit including filename, rooted at workspace
635
+ # root. If left empty, all files will be committed.
636
+ # Corresponds to the JSON property `paths`
637
+ # @return [Array<String>]
638
+ attr_accessor :paths
639
+
640
+ def initialize(**args)
641
+ update!(**args)
642
+ end
643
+
644
+ # Update properties of this object
645
+ def update!(**args)
646
+ @author = args[:author] if args.key?(:author)
647
+ @commit_message = args[:commit_message] if args.key?(:commit_message)
648
+ @paths = args[:paths] if args.key?(:paths)
649
+ end
650
+ end
651
+
652
+ # `CommitWorkspaceChanges` response message.
653
+ class CommitWorkspaceChangesResponse
654
+ include Google::Apis::Core::Hashable
655
+
656
+ def initialize(**args)
657
+ update!(**args)
658
+ end
659
+
660
+ # Update properties of this object
661
+ def update!(**args)
662
+ end
663
+ end
664
+
665
+ # An error encountered when attempting to compile a Dataform project.
666
+ class CompilationError
667
+ include Google::Apis::Core::Hashable
668
+
669
+ # Represents an action identifier. If the action writes output, the output will
670
+ # be written to the referenced database object.
671
+ # Corresponds to the JSON property `actionTarget`
672
+ # @return [Google::Apis::DataformV1::Target]
673
+ attr_accessor :action_target
674
+
675
+ # Output only. The error's top level message.
676
+ # Corresponds to the JSON property `message`
677
+ # @return [String]
678
+ attr_accessor :message
679
+
680
+ # Output only. The path of the file where this error occurred, if available,
681
+ # relative to the project root.
682
+ # Corresponds to the JSON property `path`
683
+ # @return [String]
684
+ attr_accessor :path
685
+
686
+ # Output only. The error's full stack trace.
687
+ # Corresponds to the JSON property `stack`
688
+ # @return [String]
689
+ attr_accessor :stack
690
+
691
+ def initialize(**args)
692
+ update!(**args)
693
+ end
694
+
695
+ # Update properties of this object
696
+ def update!(**args)
697
+ @action_target = args[:action_target] if args.key?(:action_target)
698
+ @message = args[:message] if args.key?(:message)
699
+ @path = args[:path] if args.key?(:path)
700
+ @stack = args[:stack] if args.key?(:stack)
701
+ end
702
+ end
703
+
704
+ # Represents the result of compiling a Dataform project.
705
+ class CompilationResult
706
+ include Google::Apis::Core::Hashable
707
+
708
+ # Configures various aspects of Dataform code compilation.
709
+ # Corresponds to the JSON property `codeCompilationConfig`
710
+ # @return [Google::Apis::DataformV1::CodeCompilationConfig]
711
+ attr_accessor :code_compilation_config
712
+
713
+ # Output only. Errors encountered during project compilation.
714
+ # Corresponds to the JSON property `compilationErrors`
715
+ # @return [Array<Google::Apis::DataformV1::CompilationError>]
716
+ attr_accessor :compilation_errors
717
+
718
+ # Output only. The timestamp of when the compilation result was created.
719
+ # Corresponds to the JSON property `createTime`
720
+ # @return [String]
721
+ attr_accessor :create_time
722
+
723
+ # Describes encryption state of a resource.
724
+ # Corresponds to the JSON property `dataEncryptionState`
725
+ # @return [Google::Apis::DataformV1::DataEncryptionState]
726
+ attr_accessor :data_encryption_state
727
+
728
+ # Output only. The version of `@dataform/core` that was used for compilation.
729
+ # Corresponds to the JSON property `dataformCoreVersion`
730
+ # @return [String]
731
+ attr_accessor :dataform_core_version
732
+
733
+ # Immutable. Git commit/tag/branch name at which the repository should be
734
+ # compiled. Must exist in the remote repository. Examples: - a commit SHA: `
735
+ # 12ade345` - a tag: `tag1` - a branch name: `branch1`
736
+ # Corresponds to the JSON property `gitCommitish`
737
+ # @return [String]
738
+ attr_accessor :git_commitish
739
+
740
+ # Output only. All the metadata information that is used internally to serve the
741
+ # resource. For example: timestamps, flags, status fields, etc. The format of
742
+ # this field is a JSON string.
743
+ # Corresponds to the JSON property `internalMetadata`
744
+ # @return [String]
745
+ attr_accessor :internal_metadata
746
+
747
+ # Output only. The compilation result's name.
748
+ # Corresponds to the JSON property `name`
749
+ # @return [String]
750
+ attr_accessor :name
751
+
752
+ # Immutable. The name of the release config to compile. Must be in the format `
753
+ # projects/*/locations/*/repositories/*/releaseConfigs/*`.
754
+ # Corresponds to the JSON property `releaseConfig`
755
+ # @return [String]
756
+ attr_accessor :release_config
757
+
758
+ # Output only. The fully resolved Git commit SHA of the code that was compiled.
759
+ # Not set for compilation results whose source is a workspace.
760
+ # Corresponds to the JSON property `resolvedGitCommitSha`
761
+ # @return [String]
762
+ attr_accessor :resolved_git_commit_sha
763
+
764
+ # Immutable. The name of the workspace to compile. Must be in the format `
765
+ # projects/*/locations/*/repositories/*/workspaces/*`.
766
+ # Corresponds to the JSON property `workspace`
767
+ # @return [String]
768
+ attr_accessor :workspace
769
+
770
+ def initialize(**args)
771
+ update!(**args)
772
+ end
773
+
774
+ # Update properties of this object
775
+ def update!(**args)
776
+ @code_compilation_config = args[:code_compilation_config] if args.key?(:code_compilation_config)
777
+ @compilation_errors = args[:compilation_errors] if args.key?(:compilation_errors)
778
+ @create_time = args[:create_time] if args.key?(:create_time)
779
+ @data_encryption_state = args[:data_encryption_state] if args.key?(:data_encryption_state)
780
+ @dataform_core_version = args[:dataform_core_version] if args.key?(:dataform_core_version)
781
+ @git_commitish = args[:git_commitish] if args.key?(:git_commitish)
782
+ @internal_metadata = args[:internal_metadata] if args.key?(:internal_metadata)
783
+ @name = args[:name] if args.key?(:name)
784
+ @release_config = args[:release_config] if args.key?(:release_config)
785
+ @resolved_git_commit_sha = args[:resolved_git_commit_sha] if args.key?(:resolved_git_commit_sha)
786
+ @workspace = args[:workspace] if args.key?(:workspace)
787
+ end
788
+ end
789
+
790
+ # Represents a single Dataform action in a compilation result.
791
+ class CompilationResultAction
792
+ include Google::Apis::Core::Hashable
793
+
794
+ # Represents an assertion upon a SQL query which is required return zero rows.
795
+ # Corresponds to the JSON property `assertion`
796
+ # @return [Google::Apis::DataformV1::Assertion]
797
+ attr_accessor :assertion
798
+
799
+ # Represents an action identifier. If the action writes output, the output will
800
+ # be written to the referenced database object.
801
+ # Corresponds to the JSON property `canonicalTarget`
802
+ # @return [Google::Apis::DataformV1::Target]
803
+ attr_accessor :canonical_target
804
+
805
+ # Defines a compiled Data Preparation entity
806
+ # Corresponds to the JSON property `dataPreparation`
807
+ # @return [Google::Apis::DataformV1::DataPreparation]
808
+ attr_accessor :data_preparation
809
+
810
+ # Represents a relation which is not managed by Dataform but which may be
811
+ # referenced by Dataform actions.
812
+ # Corresponds to the JSON property `declaration`
813
+ # @return [Google::Apis::DataformV1::Declaration]
814
+ attr_accessor :declaration
815
+
816
+ # The full path including filename in which this action is located, relative to
817
+ # the workspace root.
818
+ # Corresponds to the JSON property `filePath`
819
+ # @return [String]
820
+ attr_accessor :file_path
821
+
822
+ # Output only. All the metadata information that is used internally to serve the
823
+ # resource. For example: timestamps, flags, status fields, etc. The format of
824
+ # this field is a JSON string.
825
+ # Corresponds to the JSON property `internalMetadata`
826
+ # @return [String]
827
+ attr_accessor :internal_metadata
828
+
829
+ # Represents a notebook.
830
+ # Corresponds to the JSON property `notebook`
831
+ # @return [Google::Apis::DataformV1::Notebook]
832
+ attr_accessor :notebook
833
+
834
+ # Represents a list of arbitrary database operations.
835
+ # Corresponds to the JSON property `operations`
836
+ # @return [Google::Apis::DataformV1::Operations]
837
+ attr_accessor :operations
838
+
839
+ # Represents a database relation.
840
+ # Corresponds to the JSON property `relation`
841
+ # @return [Google::Apis::DataformV1::Relation]
842
+ attr_accessor :relation
843
+
844
+ # Represents an action identifier. If the action writes output, the output will
845
+ # be written to the referenced database object.
846
+ # Corresponds to the JSON property `target`
847
+ # @return [Google::Apis::DataformV1::Target]
848
+ attr_accessor :target
849
+
850
+ def initialize(**args)
851
+ update!(**args)
852
+ end
853
+
854
+ # Update properties of this object
855
+ def update!(**args)
856
+ @assertion = args[:assertion] if args.key?(:assertion)
857
+ @canonical_target = args[:canonical_target] if args.key?(:canonical_target)
858
+ @data_preparation = args[:data_preparation] if args.key?(:data_preparation)
859
+ @declaration = args[:declaration] if args.key?(:declaration)
860
+ @file_path = args[:file_path] if args.key?(:file_path)
861
+ @internal_metadata = args[:internal_metadata] if args.key?(:internal_metadata)
862
+ @notebook = args[:notebook] if args.key?(:notebook)
863
+ @operations = args[:operations] if args.key?(:operations)
864
+ @relation = args[:relation] if args.key?(:relation)
865
+ @target = args[:target] if args.key?(:target)
866
+ end
867
+ end
868
+
869
+ # `ComputeRepositoryAccessTokenStatus` response message.
870
+ class ComputeRepositoryAccessTokenStatusResponse
871
+ include Google::Apis::Core::Hashable
872
+
873
+ # Indicates the status of the Git access token.
874
+ # Corresponds to the JSON property `tokenStatus`
875
+ # @return [String]
876
+ attr_accessor :token_status
877
+
878
+ def initialize(**args)
879
+ update!(**args)
880
+ end
881
+
882
+ # Update properties of this object
883
+ def update!(**args)
884
+ @token_status = args[:token_status] if args.key?(:token_status)
885
+ end
886
+ end
887
+
888
+ # Config for all repositories in a given project and location.
889
+ class Config
890
+ include Google::Apis::Core::Hashable
891
+
892
+ # Optional. The default KMS key that is used if no encryption key is provided
893
+ # when a repository is created.
894
+ # Corresponds to the JSON property `defaultKmsKeyName`
895
+ # @return [String]
896
+ attr_accessor :default_kms_key_name
897
+
898
+ # Output only. All the metadata information that is used internally to serve the
899
+ # resource. For example: timestamps, flags, status fields, etc. The format of
900
+ # this field is a JSON string.
901
+ # Corresponds to the JSON property `internalMetadata`
902
+ # @return [String]
903
+ attr_accessor :internal_metadata
904
+
905
+ # Identifier. The config name.
906
+ # Corresponds to the JSON property `name`
907
+ # @return [String]
908
+ attr_accessor :name
909
+
910
+ def initialize(**args)
911
+ update!(**args)
912
+ end
913
+
914
+ # Update properties of this object
915
+ def update!(**args)
916
+ @default_kms_key_name = args[:default_kms_key_name] if args.key?(:default_kms_key_name)
917
+ @internal_metadata = args[:internal_metadata] if args.key?(:internal_metadata)
918
+ @name = args[:name] if args.key?(:name)
919
+ end
920
+ end
921
+
922
+ # Describes encryption state of a resource.
923
+ class DataEncryptionState
924
+ include Google::Apis::Core::Hashable
925
+
926
+ # Required. The KMS key version name with which data of a resource is encrypted.
927
+ # Corresponds to the JSON property `kmsKeyVersionName`
928
+ # @return [String]
929
+ attr_accessor :kms_key_version_name
930
+
931
+ def initialize(**args)
932
+ update!(**args)
933
+ end
934
+
935
+ # Update properties of this object
936
+ def update!(**args)
937
+ @kms_key_version_name = args[:kms_key_version_name] if args.key?(:kms_key_version_name)
938
+ end
939
+ end
940
+
941
+ # Defines a compiled Data Preparation entity
942
+ class DataPreparation
943
+ include Google::Apis::Core::Hashable
944
+
945
+ # Definition of a SQL Data Preparation
946
+ # Corresponds to the JSON property `contentsSql`
947
+ # @return [Google::Apis::DataformV1::SqlDefinition]
948
+ attr_accessor :contents_sql
949
+
950
+ # The data preparation definition, stored as a YAML string.
951
+ # Corresponds to the JSON property `contentsYaml`
952
+ # @return [String]
953
+ attr_accessor :contents_yaml
954
+
955
+ # A list of actions that this action depends on.
956
+ # Corresponds to the JSON property `dependencyTargets`
957
+ # @return [Array<Google::Apis::DataformV1::Target>]
958
+ attr_accessor :dependency_targets
959
+
960
+ # Whether this action is disabled (i.e. should not be run).
961
+ # Corresponds to the JSON property `disabled`
962
+ # @return [Boolean]
963
+ attr_accessor :disabled
964
+ alias_method :disabled?, :disabled
965
+
966
+ # Arbitrary, user-defined tags on this action.
967
+ # Corresponds to the JSON property `tags`
968
+ # @return [Array<String>]
969
+ attr_accessor :tags
970
+
971
+ def initialize(**args)
972
+ update!(**args)
973
+ end
974
+
975
+ # Update properties of this object
976
+ def update!(**args)
977
+ @contents_sql = args[:contents_sql] if args.key?(:contents_sql)
978
+ @contents_yaml = args[:contents_yaml] if args.key?(:contents_yaml)
979
+ @dependency_targets = args[:dependency_targets] if args.key?(:dependency_targets)
980
+ @disabled = args[:disabled] if args.key?(:disabled)
981
+ @tags = args[:tags] if args.key?(:tags)
982
+ end
983
+ end
984
+
985
+ # Represents a workflow action that will run a Data Preparation.
986
+ class DataPreparationAction
987
+ include Google::Apis::Core::Hashable
988
+
989
+ # Definition of a SQL Data Preparation
990
+ # Corresponds to the JSON property `contentsSql`
991
+ # @return [Google::Apis::DataformV1::ActionSqlDefinition]
992
+ attr_accessor :contents_sql
993
+
994
+ # Output only. YAML representing the contents of the data preparation. Can be
995
+ # used to show the customer what the input was to their workflow.
996
+ # Corresponds to the JSON property `contentsYaml`
997
+ # @return [String]
998
+ attr_accessor :contents_yaml
999
+
1000
+ # Output only. The generated BigQuery SQL script that will be executed. For
1001
+ # reference only.
1002
+ # Corresponds to the JSON property `generatedSql`
1003
+ # @return [String]
1004
+ attr_accessor :generated_sql
1005
+
1006
+ # Output only. The ID of the BigQuery job that executed the SQL in sql_script.
1007
+ # Only set once the job has started to run.
1008
+ # Corresponds to the JSON property `jobId`
1009
+ # @return [String]
1010
+ attr_accessor :job_id
1011
+
1012
+ def initialize(**args)
1013
+ update!(**args)
1014
+ end
1015
+
1016
+ # Update properties of this object
1017
+ def update!(**args)
1018
+ @contents_sql = args[:contents_sql] if args.key?(:contents_sql)
1019
+ @contents_yaml = args[:contents_yaml] if args.key?(:contents_yaml)
1020
+ @generated_sql = args[:generated_sql] if args.key?(:generated_sql)
1021
+ @job_id = args[:job_id] if args.key?(:job_id)
1022
+ end
1023
+ end
1024
+
1025
+ # Represents a relation which is not managed by Dataform but which may be
1026
+ # referenced by Dataform actions.
1027
+ class Declaration
1028
+ include Google::Apis::Core::Hashable
1029
+
1030
+ # Describes a relation and its columns.
1031
+ # Corresponds to the JSON property `relationDescriptor`
1032
+ # @return [Google::Apis::DataformV1::RelationDescriptor]
1033
+ attr_accessor :relation_descriptor
1034
+
1035
+ def initialize(**args)
1036
+ update!(**args)
1037
+ end
1038
+
1039
+ # Update properties of this object
1040
+ def update!(**args)
1041
+ @relation_descriptor = args[:relation_descriptor] if args.key?(:relation_descriptor)
1042
+ end
1043
+ end
1044
+
1045
+ # Represents the delete file operation.
1046
+ class DeleteFile
1047
+ include Google::Apis::Core::Hashable
1048
+
1049
+ def initialize(**args)
1050
+ update!(**args)
1051
+ end
1052
+
1053
+ # Update properties of this object
1054
+ def update!(**args)
1055
+ end
1056
+ end
1057
+
1058
+ # Represents a single entry in a directory.
1059
+ class DirectoryEntry
1060
+ include Google::Apis::Core::Hashable
1061
+
1062
+ # A child directory in the directory.
1063
+ # Corresponds to the JSON property `directory`
1064
+ # @return [String]
1065
+ attr_accessor :directory
1066
+
1067
+ # A file in the directory.
1068
+ # Corresponds to the JSON property `file`
1069
+ # @return [String]
1070
+ attr_accessor :file
1071
+
1072
+ def initialize(**args)
1073
+ update!(**args)
1074
+ end
1075
+
1076
+ # Update properties of this object
1077
+ def update!(**args)
1078
+ @directory = args[:directory] if args.key?(:directory)
1079
+ @file = args[:file] if args.key?(:file)
1080
+ end
1081
+ end
1082
+
1083
+ # Client-facing representation of a directory entry in search results.
1084
+ class DirectorySearchResult
1085
+ include Google::Apis::Core::Hashable
1086
+
1087
+ # File system path relative to the workspace root.
1088
+ # Corresponds to the JSON property `path`
1089
+ # @return [String]
1090
+ attr_accessor :path
1091
+
1092
+ def initialize(**args)
1093
+ update!(**args)
1094
+ end
1095
+
1096
+ # Update properties of this object
1097
+ def update!(**args)
1098
+ @path = args[:path] if args.key?(:path)
1099
+ end
1100
+ end
1101
+
1102
+ # A generic empty message that you can re-use to avoid defining duplicated empty
1103
+ # messages in your APIs. A typical example is to use it as the request or the
1104
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
1105
+ # protobuf.Empty) returns (google.protobuf.Empty); `
1106
+ class Empty
1107
+ include Google::Apis::Core::Hashable
1108
+
1109
+ def initialize(**args)
1110
+ update!(**args)
1111
+ end
1112
+
1113
+ # Update properties of this object
1114
+ def update!(**args)
1115
+ end
1116
+ end
1117
+
1118
+ # Error table information, used to write error data into a BigQuery table.
1119
+ class ErrorTable
1120
+ include Google::Apis::Core::Hashable
1121
+
1122
+ # Error table partition expiration in days. Only positive values are allowed.
1123
+ # Corresponds to the JSON property `retentionDays`
1124
+ # @return [Fixnum]
1125
+ attr_accessor :retention_days
1126
+
1127
+ # Represents an action identifier. If the action writes output, the output will
1128
+ # be written to the referenced database object.
1129
+ # Corresponds to the JSON property `target`
1130
+ # @return [Google::Apis::DataformV1::Target]
1131
+ attr_accessor :target
1132
+
1133
+ def initialize(**args)
1134
+ update!(**args)
1135
+ end
1136
+
1137
+ # Update properties of this object
1138
+ def update!(**args)
1139
+ @retention_days = args[:retention_days] if args.key?(:retention_days)
1140
+ @target = args[:target] if args.key?(:target)
1141
+ end
1142
+ end
1143
+
1144
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
1145
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
1146
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
1147
+ # "Summary size limit" description: "Determines if a summary is less than 100
1148
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
1149
+ # Requestor is owner" description: "Determines if requestor is the document
1150
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
1151
+ # Logic): title: "Public documents" description: "Determine whether the document
1152
+ # should be publicly visible" expression: "document.type != 'private' &&
1153
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
1154
+ # string" description: "Create a notification string with a timestamp."
1155
+ # expression: "'New message received at ' + string(document.create_time)" The
1156
+ # exact variables and functions that may be referenced within an expression are
1157
+ # determined by the service that evaluates it. See the service documentation for
1158
+ # additional information.
1159
+ class Expr
1160
+ include Google::Apis::Core::Hashable
1161
+
1162
+ # Optional. Description of the expression. This is a longer text which describes
1163
+ # the expression, e.g. when hovered over it in a UI.
1164
+ # Corresponds to the JSON property `description`
1165
+ # @return [String]
1166
+ attr_accessor :description
1167
+
1168
+ # Textual representation of an expression in Common Expression Language syntax.
1169
+ # Corresponds to the JSON property `expression`
1170
+ # @return [String]
1171
+ attr_accessor :expression
1172
+
1173
+ # Optional. String indicating the location of the expression for error reporting,
1174
+ # e.g. a file name and a position in the file.
1175
+ # Corresponds to the JSON property `location`
1176
+ # @return [String]
1177
+ attr_accessor :location
1178
+
1179
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
1180
+ # This can be used e.g. in UIs which allow to enter the expression.
1181
+ # Corresponds to the JSON property `title`
1182
+ # @return [String]
1183
+ attr_accessor :title
1184
+
1185
+ def initialize(**args)
1186
+ update!(**args)
1187
+ end
1188
+
1189
+ # Update properties of this object
1190
+ def update!(**args)
1191
+ @description = args[:description] if args.key?(:description)
1192
+ @expression = args[:expression] if args.key?(:expression)
1193
+ @location = args[:location] if args.key?(:location)
1194
+ @title = args[:title] if args.key?(:title)
1195
+ end
1196
+ end
1197
+
1198
+ # `FetchFileDiff` response message.
1199
+ class FetchFileDiffResponse
1200
+ include Google::Apis::Core::Hashable
1201
+
1202
+ # The raw formatted Git diff for the file.
1203
+ # Corresponds to the JSON property `formattedDiff`
1204
+ # @return [String]
1205
+ attr_accessor :formatted_diff
1206
+
1207
+ def initialize(**args)
1208
+ update!(**args)
1209
+ end
1210
+
1211
+ # Update properties of this object
1212
+ def update!(**args)
1213
+ @formatted_diff = args[:formatted_diff] if args.key?(:formatted_diff)
1214
+ end
1215
+ end
1216
+
1217
+ # `FetchFileGitStatuses` response message.
1218
+ class FetchFileGitStatusesResponse
1219
+ include Google::Apis::Core::Hashable
1220
+
1221
+ # A list of all files which have uncommitted Git changes. There will only be a
1222
+ # single entry for any given file.
1223
+ # Corresponds to the JSON property `uncommittedFileChanges`
1224
+ # @return [Array<Google::Apis::DataformV1::UncommittedFileChange>]
1225
+ attr_accessor :uncommitted_file_changes
1226
+
1227
+ def initialize(**args)
1228
+ update!(**args)
1229
+ end
1230
+
1231
+ # Update properties of this object
1232
+ def update!(**args)
1233
+ @uncommitted_file_changes = args[:uncommitted_file_changes] if args.key?(:uncommitted_file_changes)
1234
+ end
1235
+ end
1236
+
1237
+ # `FetchGitAheadBehind` response message.
1238
+ class FetchGitAheadBehindResponse
1239
+ include Google::Apis::Core::Hashable
1240
+
1241
+ # The number of commits in the remote branch that are not in the workspace.
1242
+ # Corresponds to the JSON property `commitsAhead`
1243
+ # @return [Fixnum]
1244
+ attr_accessor :commits_ahead
1245
+
1246
+ # The number of commits in the workspace that are not in the remote branch.
1247
+ # Corresponds to the JSON property `commitsBehind`
1248
+ # @return [Fixnum]
1249
+ attr_accessor :commits_behind
1250
+
1251
+ def initialize(**args)
1252
+ update!(**args)
1253
+ end
1254
+
1255
+ # Update properties of this object
1256
+ def update!(**args)
1257
+ @commits_ahead = args[:commits_ahead] if args.key?(:commits_ahead)
1258
+ @commits_behind = args[:commits_behind] if args.key?(:commits_behind)
1259
+ end
1260
+ end
1261
+
1262
+ # `FetchRemoteBranches` response message.
1263
+ class FetchRemoteBranchesResponse
1264
+ include Google::Apis::Core::Hashable
1265
+
1266
+ # The remote repository's branch names.
1267
+ # Corresponds to the JSON property `branches`
1268
+ # @return [Array<String>]
1269
+ attr_accessor :branches
1270
+
1271
+ def initialize(**args)
1272
+ update!(**args)
1273
+ end
1274
+
1275
+ # Update properties of this object
1276
+ def update!(**args)
1277
+ @branches = args[:branches] if args.key?(:branches)
1278
+ end
1279
+ end
1280
+
1281
+ # `FetchRepositoryHistory` response message.
1282
+ class FetchRepositoryHistoryResponse
1283
+ include Google::Apis::Core::Hashable
1284
+
1285
+ # A list of commit logs, ordered by 'git log' default order.
1286
+ # Corresponds to the JSON property `commits`
1287
+ # @return [Array<Google::Apis::DataformV1::CommitLogEntry>]
1288
+ attr_accessor :commits
1289
+
1290
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1291
+ # field is omitted, there are no subsequent pages.
1292
+ # Corresponds to the JSON property `nextPageToken`
1293
+ # @return [String]
1294
+ attr_accessor :next_page_token
1295
+
1296
+ def initialize(**args)
1297
+ update!(**args)
1298
+ end
1299
+
1300
+ # Update properties of this object
1301
+ def update!(**args)
1302
+ @commits = args[:commits] if args.key?(:commits)
1303
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1304
+ end
1305
+ end
1306
+
1307
+ # Represents a single file operation to the repository.
1308
+ class FileOperation
1309
+ include Google::Apis::Core::Hashable
1310
+
1311
+ # Represents the delete file operation.
1312
+ # Corresponds to the JSON property `deleteFile`
1313
+ # @return [Google::Apis::DataformV1::DeleteFile]
1314
+ attr_accessor :delete_file
1315
+
1316
+ # Represents the write file operation (for files added or modified).
1317
+ # Corresponds to the JSON property `writeFile`
1318
+ # @return [Google::Apis::DataformV1::WriteFile]
1319
+ attr_accessor :write_file
1320
+
1321
+ def initialize(**args)
1322
+ update!(**args)
1323
+ end
1324
+
1325
+ # Update properties of this object
1326
+ def update!(**args)
1327
+ @delete_file = args[:delete_file] if args.key?(:delete_file)
1328
+ @write_file = args[:write_file] if args.key?(:write_file)
1329
+ end
1330
+ end
1331
+
1332
+ # Client-facing representation of a file entry in search results.
1333
+ class FileSearchResult
1334
+ include Google::Apis::Core::Hashable
1335
+
1336
+ # File system path relative to the workspace root.
1337
+ # Corresponds to the JSON property `path`
1338
+ # @return [String]
1339
+ attr_accessor :path
1340
+
1341
+ def initialize(**args)
1342
+ update!(**args)
1343
+ end
1344
+
1345
+ # Update properties of this object
1346
+ def update!(**args)
1347
+ @path = args[:path] if args.key?(:path)
1348
+ end
1349
+ end
1350
+
1351
+ # Controls Git remote configuration for a repository.
1352
+ class GitRemoteSettings
1353
+ include Google::Apis::Core::Hashable
1354
+
1355
+ # Optional. The name of the Secret Manager secret version to use as an
1356
+ # authentication token for Git operations. Must be in the format `projects/*/
1357
+ # secrets/*/versions/*`.
1358
+ # Corresponds to the JSON property `authenticationTokenSecretVersion`
1359
+ # @return [String]
1360
+ attr_accessor :authentication_token_secret_version
1361
+
1362
+ # Required. The Git remote's default branch name.
1363
+ # Corresponds to the JSON property `defaultBranch`
1364
+ # @return [String]
1365
+ attr_accessor :default_branch
1366
+
1367
+ # Configures fields for performing SSH authentication.
1368
+ # Corresponds to the JSON property `sshAuthenticationConfig`
1369
+ # @return [Google::Apis::DataformV1::SshAuthenticationConfig]
1370
+ attr_accessor :ssh_authentication_config
1371
+
1372
+ # Output only. Deprecated: The field does not contain any token status
1373
+ # information.
1374
+ # Corresponds to the JSON property `tokenStatus`
1375
+ # @return [String]
1376
+ attr_accessor :token_status
1377
+
1378
+ # Required. The Git remote's URL.
1379
+ # Corresponds to the JSON property `url`
1380
+ # @return [String]
1381
+ attr_accessor :url
1382
+
1383
+ def initialize(**args)
1384
+ update!(**args)
1385
+ end
1386
+
1387
+ # Update properties of this object
1388
+ def update!(**args)
1389
+ @authentication_token_secret_version = args[:authentication_token_secret_version] if args.key?(:authentication_token_secret_version)
1390
+ @default_branch = args[:default_branch] if args.key?(:default_branch)
1391
+ @ssh_authentication_config = args[:ssh_authentication_config] if args.key?(:ssh_authentication_config)
1392
+ @token_status = args[:token_status] if args.key?(:token_status)
1393
+ @url = args[:url] if args.key?(:url)
1394
+ end
1395
+ end
1396
+
1397
+ # Contains metadata about the IAM policy override for a given Dataform resource.
1398
+ # If is_active is true, this the policy encoded in iam_policy_name is the source
1399
+ # of truth for this resource. Will be provided in internal ESV2 views for:
1400
+ # Workspaces, Repositories, Folders, TeamFolders.
1401
+ class IamPolicyOverrideView
1402
+ include Google::Apis::Core::Hashable
1403
+
1404
+ # An internal name for an IAM policy, based on the resource to which the policy
1405
+ # applies. Not to be confused with a resource's external full resource name. For
1406
+ # more information on this distinction, see go/iam-full-resource-names.
1407
+ # Corresponds to the JSON property `iamPolicyName`
1408
+ # @return [Google::Apis::DataformV1::PolicyName]
1409
+ attr_accessor :iam_policy_name
1410
+
1411
+ # Whether the IAM policy encoded in this view is active.
1412
+ # Corresponds to the JSON property `isActive`
1413
+ # @return [Boolean]
1414
+ attr_accessor :is_active
1415
+ alias_method :is_active?, :is_active
1416
+
1417
+ def initialize(**args)
1418
+ update!(**args)
1419
+ end
1420
+
1421
+ # Update properties of this object
1422
+ def update!(**args)
1423
+ @iam_policy_name = args[:iam_policy_name] if args.key?(:iam_policy_name)
1424
+ @is_active = args[:is_active] if args.key?(:is_active)
1425
+ end
1426
+ end
1427
+
1428
+ # Load definition for incremental load modes
1429
+ class IncrementalLoadMode
1430
+ include Google::Apis::Core::Hashable
1431
+
1432
+ # Column name for incremental load modes
1433
+ # Corresponds to the JSON property `column`
1434
+ # @return [String]
1435
+ attr_accessor :column
1436
+
1437
+ def initialize(**args)
1438
+ update!(**args)
1439
+ end
1440
+
1441
+ # Update properties of this object
1442
+ def update!(**args)
1443
+ @column = args[:column] if args.key?(:column)
1444
+ end
1445
+ end
1446
+
1447
+ # Contains settings for relations of type `INCREMENTAL_TABLE`.
1448
+ class IncrementalTableConfig
1449
+ include Google::Apis::Core::Hashable
1450
+
1451
+ # SQL statements to be executed after inserting new rows into the relation.
1452
+ # Corresponds to the JSON property `incrementalPostOperations`
1453
+ # @return [Array<String>]
1454
+ attr_accessor :incremental_post_operations
1455
+
1456
+ # SQL statements to be executed before inserting new rows into the relation.
1457
+ # Corresponds to the JSON property `incrementalPreOperations`
1458
+ # @return [Array<String>]
1459
+ attr_accessor :incremental_pre_operations
1460
+
1461
+ # The SELECT query which returns rows which should be inserted into the relation
1462
+ # if it already exists and is not being refreshed.
1463
+ # Corresponds to the JSON property `incrementalSelectQuery`
1464
+ # @return [String]
1465
+ attr_accessor :incremental_select_query
1466
+
1467
+ # Whether this table should be protected from being refreshed.
1468
+ # Corresponds to the JSON property `refreshDisabled`
1469
+ # @return [Boolean]
1470
+ attr_accessor :refresh_disabled
1471
+ alias_method :refresh_disabled?, :refresh_disabled
1472
+
1473
+ # A set of columns or SQL expressions used to define row uniqueness. If any
1474
+ # duplicates are discovered (as defined by `unique_key_parts`), only the newly
1475
+ # selected rows (as defined by `incremental_select_query`) will be included in
1476
+ # the relation.
1477
+ # Corresponds to the JSON property `uniqueKeyParts`
1478
+ # @return [Array<String>]
1479
+ attr_accessor :unique_key_parts
1480
+
1481
+ # A SQL expression conditional used to limit the set of existing rows considered
1482
+ # for a merge operation (see `unique_key_parts` for more information).
1483
+ # Corresponds to the JSON property `updatePartitionFilter`
1484
+ # @return [String]
1485
+ attr_accessor :update_partition_filter
1486
+
1487
+ def initialize(**args)
1488
+ update!(**args)
1489
+ end
1490
+
1491
+ # Update properties of this object
1492
+ def update!(**args)
1493
+ @incremental_post_operations = args[:incremental_post_operations] if args.key?(:incremental_post_operations)
1494
+ @incremental_pre_operations = args[:incremental_pre_operations] if args.key?(:incremental_pre_operations)
1495
+ @incremental_select_query = args[:incremental_select_query] if args.key?(:incremental_select_query)
1496
+ @refresh_disabled = args[:refresh_disabled] if args.key?(:refresh_disabled)
1497
+ @unique_key_parts = args[:unique_key_parts] if args.key?(:unique_key_parts)
1498
+ @update_partition_filter = args[:update_partition_filter] if args.key?(:update_partition_filter)
1499
+ end
1500
+ end
1501
+
1502
+ # `InstallNpmPackages` request message.
1503
+ class InstallNpmPackagesRequest
1504
+ include Google::Apis::Core::Hashable
1505
+
1506
+ def initialize(**args)
1507
+ update!(**args)
1508
+ end
1509
+
1510
+ # Update properties of this object
1511
+ def update!(**args)
1512
+ end
1513
+ end
1514
+
1515
+ # `InstallNpmPackages` response message.
1516
+ class InstallNpmPackagesResponse
1517
+ include Google::Apis::Core::Hashable
1518
+
1519
+ def initialize(**args)
1520
+ update!(**args)
1521
+ end
1522
+
1523
+ # Update properties of this object
1524
+ def update!(**args)
1525
+ end
1526
+ end
1527
+
1528
+ # Represents a time interval, encoded as a Timestamp start (inclusive) and a
1529
+ # Timestamp end (exclusive). The start must be less than or equal to the end.
1530
+ # When the start equals the end, the interval is empty (matches no time). When
1531
+ # both start and end are unspecified, the interval matches any time.
1532
+ class Interval
1533
+ include Google::Apis::Core::Hashable
1534
+
1535
+ # Optional. Exclusive end of the interval. If specified, a Timestamp matching
1536
+ # this interval will have to be before the end.
1537
+ # Corresponds to the JSON property `endTime`
1538
+ # @return [String]
1539
+ attr_accessor :end_time
1540
+
1541
+ # Optional. Inclusive start of the interval. If specified, a Timestamp matching
1542
+ # this interval will have to be the same or after the start.
1543
+ # Corresponds to the JSON property `startTime`
1544
+ # @return [String]
1545
+ attr_accessor :start_time
1546
+
1547
+ def initialize(**args)
1548
+ update!(**args)
1549
+ end
1550
+
1551
+ # Update properties of this object
1552
+ def update!(**args)
1553
+ @end_time = args[:end_time] if args.key?(:end_time)
1554
+ @start_time = args[:start_time] if args.key?(:start_time)
1555
+ end
1556
+ end
1557
+
1558
+ # Includes various configuration options for a workflow invocation. If both `
1559
+ # included_targets` and `included_tags` are unset, all actions will be included.
1560
+ class InvocationConfig
1561
+ include Google::Apis::Core::Hashable
1562
+
1563
+ # Optional. When set to true, any incremental tables will be fully refreshed.
1564
+ # Corresponds to the JSON property `fullyRefreshIncrementalTablesEnabled`
1565
+ # @return [Boolean]
1566
+ attr_accessor :fully_refresh_incremental_tables_enabled
1567
+ alias_method :fully_refresh_incremental_tables_enabled?, :fully_refresh_incremental_tables_enabled
1568
+
1569
+ # Optional. The set of tags to include.
1570
+ # Corresponds to the JSON property `includedTags`
1571
+ # @return [Array<String>]
1572
+ attr_accessor :included_tags
1573
+
1574
+ # Optional. The set of action identifiers to include.
1575
+ # Corresponds to the JSON property `includedTargets`
1576
+ # @return [Array<Google::Apis::DataformV1::Target>]
1577
+ attr_accessor :included_targets
1578
+
1579
+ # Optional. Specifies the priority for query execution in BigQuery. More
1580
+ # information can be found at https://cloud.google.com/bigquery/docs/running-
1581
+ # queries#queries.
1582
+ # Corresponds to the JSON property `queryPriority`
1583
+ # @return [String]
1584
+ attr_accessor :query_priority
1585
+
1586
+ # Optional. The service account to run workflow invocations under.
1587
+ # Corresponds to the JSON property `serviceAccount`
1588
+ # @return [String]
1589
+ attr_accessor :service_account
1590
+
1591
+ # Optional. When set to true, transitive dependencies of included actions will
1592
+ # be executed.
1593
+ # Corresponds to the JSON property `transitiveDependenciesIncluded`
1594
+ # @return [Boolean]
1595
+ attr_accessor :transitive_dependencies_included
1596
+ alias_method :transitive_dependencies_included?, :transitive_dependencies_included
1597
+
1598
+ # Optional. When set to true, transitive dependents of included actions will be
1599
+ # executed.
1600
+ # Corresponds to the JSON property `transitiveDependentsIncluded`
1601
+ # @return [Boolean]
1602
+ attr_accessor :transitive_dependents_included
1603
+ alias_method :transitive_dependents_included?, :transitive_dependents_included
1604
+
1605
+ def initialize(**args)
1606
+ update!(**args)
1607
+ end
1608
+
1609
+ # Update properties of this object
1610
+ def update!(**args)
1611
+ @fully_refresh_incremental_tables_enabled = args[:fully_refresh_incremental_tables_enabled] if args.key?(:fully_refresh_incremental_tables_enabled)
1612
+ @included_tags = args[:included_tags] if args.key?(:included_tags)
1613
+ @included_targets = args[:included_targets] if args.key?(:included_targets)
1614
+ @query_priority = args[:query_priority] if args.key?(:query_priority)
1615
+ @service_account = args[:service_account] if args.key?(:service_account)
1616
+ @transitive_dependencies_included = args[:transitive_dependencies_included] if args.key?(:transitive_dependencies_included)
1617
+ @transitive_dependents_included = args[:transitive_dependents_included] if args.key?(:transitive_dependents_included)
1618
+ end
1619
+ end
1620
+
1621
+ # `ListCompilationResults` response message.
1622
+ class ListCompilationResultsResponse
1623
+ include Google::Apis::Core::Hashable
1624
+
1625
+ # List of compilation results.
1626
+ # Corresponds to the JSON property `compilationResults`
1627
+ # @return [Array<Google::Apis::DataformV1::CompilationResult>]
1628
+ attr_accessor :compilation_results
1629
+
1630
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1631
+ # field is omitted, there are no subsequent pages.
1632
+ # Corresponds to the JSON property `nextPageToken`
1633
+ # @return [String]
1634
+ attr_accessor :next_page_token
1635
+
1636
+ # Locations which could not be reached.
1637
+ # Corresponds to the JSON property `unreachable`
1638
+ # @return [Array<String>]
1639
+ attr_accessor :unreachable
1640
+
1641
+ def initialize(**args)
1642
+ update!(**args)
1643
+ end
1644
+
1645
+ # Update properties of this object
1646
+ def update!(**args)
1647
+ @compilation_results = args[:compilation_results] if args.key?(:compilation_results)
1648
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1649
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1650
+ end
1651
+ end
1652
+
1653
+ # The response message for Locations.ListLocations.
1654
+ class ListLocationsResponse
1655
+ include Google::Apis::Core::Hashable
1656
+
1657
+ # A list of locations that matches the specified filter in the request.
1658
+ # Corresponds to the JSON property `locations`
1659
+ # @return [Array<Google::Apis::DataformV1::Location>]
1660
+ attr_accessor :locations
1661
+
1662
+ # The standard List next-page token.
1663
+ # Corresponds to the JSON property `nextPageToken`
1664
+ # @return [String]
1665
+ attr_accessor :next_page_token
1666
+
1667
+ def initialize(**args)
1668
+ update!(**args)
1669
+ end
1670
+
1671
+ # Update properties of this object
1672
+ def update!(**args)
1673
+ @locations = args[:locations] if args.key?(:locations)
1674
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1675
+ end
1676
+ end
1677
+
1678
+ # The response message for Operations.ListOperations.
1679
+ class ListOperationsResponse
1680
+ include Google::Apis::Core::Hashable
1681
+
1682
+ # The standard List next-page token.
1683
+ # Corresponds to the JSON property `nextPageToken`
1684
+ # @return [String]
1685
+ attr_accessor :next_page_token
1686
+
1687
+ # A list of operations that matches the specified filter in the request.
1688
+ # Corresponds to the JSON property `operations`
1689
+ # @return [Array<Google::Apis::DataformV1::Operation>]
1690
+ attr_accessor :operations
1691
+
1692
+ # Unordered list. Unreachable resources. Populated when the request sets `
1693
+ # ListOperationsRequest.return_partial_success` and reads across collections e.g.
1694
+ # when attempting to list all resources across all supported locations.
1695
+ # Corresponds to the JSON property `unreachable`
1696
+ # @return [Array<String>]
1697
+ attr_accessor :unreachable
1698
+
1699
+ def initialize(**args)
1700
+ update!(**args)
1701
+ end
1702
+
1703
+ # Update properties of this object
1704
+ def update!(**args)
1705
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1706
+ @operations = args[:operations] if args.key?(:operations)
1707
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1708
+ end
1709
+ end
1710
+
1711
+ # `ListReleaseConfigs` response message.
1712
+ class ListReleaseConfigsResponse
1713
+ include Google::Apis::Core::Hashable
1714
+
1715
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1716
+ # field is omitted, there are no subsequent pages.
1717
+ # Corresponds to the JSON property `nextPageToken`
1718
+ # @return [String]
1719
+ attr_accessor :next_page_token
1720
+
1721
+ # List of release configs.
1722
+ # Corresponds to the JSON property `releaseConfigs`
1723
+ # @return [Array<Google::Apis::DataformV1::ReleaseConfig>]
1724
+ attr_accessor :release_configs
1725
+
1726
+ # Locations which could not be reached.
1727
+ # Corresponds to the JSON property `unreachable`
1728
+ # @return [Array<String>]
1729
+ attr_accessor :unreachable
1730
+
1731
+ def initialize(**args)
1732
+ update!(**args)
1733
+ end
1734
+
1735
+ # Update properties of this object
1736
+ def update!(**args)
1737
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1738
+ @release_configs = args[:release_configs] if args.key?(:release_configs)
1739
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1740
+ end
1741
+ end
1742
+
1743
+ # `ListRepositories` response message.
1744
+ class ListRepositoriesResponse
1745
+ include Google::Apis::Core::Hashable
1746
+
1747
+ # A token which can be sent as `page_token` to retrieve the next page. If this
1748
+ # field is omitted, there are no subsequent pages.
1749
+ # Corresponds to the JSON property `nextPageToken`
1750
+ # @return [String]
1751
+ attr_accessor :next_page_token
1752
+
1753
+ # List of repositories.
1754
+ # Corresponds to the JSON property `repositories`
1755
+ # @return [Array<Google::Apis::DataformV1::Repository>]
1756
+ attr_accessor :repositories
1757
+
1758
+ # Locations which could not be reached.
1759
+ # Corresponds to the JSON property `unreachable`
1760
+ # @return [Array<String>]
1761
+ attr_accessor :unreachable
1762
+
1763
+ def initialize(**args)
1764
+ update!(**args)
1765
+ end
1766
+
1767
+ # Update properties of this object
1768
+ def update!(**args)
1769
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1770
+ @repositories = args[:repositories] if args.key?(:repositories)
1771
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1772
+ end
1773
+ end
1774
+
1775
+ # `ListWorkflowConfigs` response message.
1776
+ class ListWorkflowConfigsResponse
1777
+ include Google::Apis::Core::Hashable
1778
+
1779
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1780
+ # field is omitted, there are no subsequent pages.
1781
+ # Corresponds to the JSON property `nextPageToken`
1782
+ # @return [String]
1783
+ attr_accessor :next_page_token
1784
+
1785
+ # Locations which could not be reached.
1786
+ # Corresponds to the JSON property `unreachable`
1787
+ # @return [Array<String>]
1788
+ attr_accessor :unreachable
1789
+
1790
+ # List of workflow configs.
1791
+ # Corresponds to the JSON property `workflowConfigs`
1792
+ # @return [Array<Google::Apis::DataformV1::WorkflowConfig>]
1793
+ attr_accessor :workflow_configs
1794
+
1795
+ def initialize(**args)
1796
+ update!(**args)
1797
+ end
1798
+
1799
+ # Update properties of this object
1800
+ def update!(**args)
1801
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1802
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1803
+ @workflow_configs = args[:workflow_configs] if args.key?(:workflow_configs)
1804
+ end
1805
+ end
1806
+
1807
+ # `ListWorkflowInvocations` response message.
1808
+ class ListWorkflowInvocationsResponse
1809
+ include Google::Apis::Core::Hashable
1810
+
1811
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1812
+ # field is omitted, there are no subsequent pages.
1813
+ # Corresponds to the JSON property `nextPageToken`
1814
+ # @return [String]
1815
+ attr_accessor :next_page_token
1816
+
1817
+ # Locations which could not be reached.
1818
+ # Corresponds to the JSON property `unreachable`
1819
+ # @return [Array<String>]
1820
+ attr_accessor :unreachable
1821
+
1822
+ # List of workflow invocations.
1823
+ # Corresponds to the JSON property `workflowInvocations`
1824
+ # @return [Array<Google::Apis::DataformV1::WorkflowInvocation>]
1825
+ attr_accessor :workflow_invocations
1826
+
1827
+ def initialize(**args)
1828
+ update!(**args)
1829
+ end
1830
+
1831
+ # Update properties of this object
1832
+ def update!(**args)
1833
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1834
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1835
+ @workflow_invocations = args[:workflow_invocations] if args.key?(:workflow_invocations)
1836
+ end
1837
+ end
1838
+
1839
+ # `ListWorkspaces` response message.
1840
+ class ListWorkspacesResponse
1841
+ include Google::Apis::Core::Hashable
1842
+
1843
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1844
+ # field is omitted, there are no subsequent pages.
1845
+ # Corresponds to the JSON property `nextPageToken`
1846
+ # @return [String]
1847
+ attr_accessor :next_page_token
1848
+
1849
+ # Locations which could not be reached.
1850
+ # Corresponds to the JSON property `unreachable`
1851
+ # @return [Array<String>]
1852
+ attr_accessor :unreachable
1853
+
1854
+ # List of workspaces.
1855
+ # Corresponds to the JSON property `workspaces`
1856
+ # @return [Array<Google::Apis::DataformV1::Workspace>]
1857
+ attr_accessor :workspaces
1858
+
1859
+ def initialize(**args)
1860
+ update!(**args)
1861
+ end
1862
+
1863
+ # Update properties of this object
1864
+ def update!(**args)
1865
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1866
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1867
+ @workspaces = args[:workspaces] if args.key?(:workspaces)
1868
+ end
1869
+ end
1870
+
1871
+ # Simplified load configuration for actions
1872
+ class LoadConfig
1873
+ include Google::Apis::Core::Hashable
1874
+
1875
+ # Simple load definition
1876
+ # Corresponds to the JSON property `append`
1877
+ # @return [Google::Apis::DataformV1::SimpleLoadMode]
1878
+ attr_accessor :append
1879
+
1880
+ # Load definition for incremental load modes
1881
+ # Corresponds to the JSON property `maximum`
1882
+ # @return [Google::Apis::DataformV1::IncrementalLoadMode]
1883
+ attr_accessor :maximum
1884
+
1885
+ # Simple load definition
1886
+ # Corresponds to the JSON property `replace`
1887
+ # @return [Google::Apis::DataformV1::SimpleLoadMode]
1888
+ attr_accessor :replace
1889
+
1890
+ # Load definition for incremental load modes
1891
+ # Corresponds to the JSON property `unique`
1892
+ # @return [Google::Apis::DataformV1::IncrementalLoadMode]
1893
+ attr_accessor :unique
1894
+
1895
+ def initialize(**args)
1896
+ update!(**args)
1897
+ end
1898
+
1899
+ # Update properties of this object
1900
+ def update!(**args)
1901
+ @append = args[:append] if args.key?(:append)
1902
+ @maximum = args[:maximum] if args.key?(:maximum)
1903
+ @replace = args[:replace] if args.key?(:replace)
1904
+ @unique = args[:unique] if args.key?(:unique)
1905
+ end
1906
+ end
1907
+
1908
+ # A resource that represents a Google Cloud location.
1909
+ class Location
1910
+ include Google::Apis::Core::Hashable
1911
+
1912
+ # The friendly name for this location, typically a nearby city name. For example,
1913
+ # "Tokyo".
1914
+ # Corresponds to the JSON property `displayName`
1915
+ # @return [String]
1916
+ attr_accessor :display_name
1917
+
1918
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
1919
+ # region": "us-east1"`
1920
+ # Corresponds to the JSON property `labels`
1921
+ # @return [Hash<String,String>]
1922
+ attr_accessor :labels
1923
+
1924
+ # The canonical id for this location. For example: `"us-east1"`.
1925
+ # Corresponds to the JSON property `locationId`
1926
+ # @return [String]
1927
+ attr_accessor :location_id
1928
+
1929
+ # Service-specific metadata. For example the available capacity at the given
1930
+ # location.
1931
+ # Corresponds to the JSON property `metadata`
1932
+ # @return [Hash<String,Object>]
1933
+ attr_accessor :metadata
1934
+
1935
+ # Resource name for the location, which may vary between implementations. For
1936
+ # example: `"projects/example-project/locations/us-east1"`
1937
+ # Corresponds to the JSON property `name`
1938
+ # @return [String]
1939
+ attr_accessor :name
1940
+
1941
+ def initialize(**args)
1942
+ update!(**args)
1943
+ end
1944
+
1945
+ # Update properties of this object
1946
+ def update!(**args)
1947
+ @display_name = args[:display_name] if args.key?(:display_name)
1948
+ @labels = args[:labels] if args.key?(:labels)
1949
+ @location_id = args[:location_id] if args.key?(:location_id)
1950
+ @metadata = args[:metadata] if args.key?(:metadata)
1951
+ @name = args[:name] if args.key?(:name)
1952
+ end
1953
+ end
1954
+
1955
+ # `MakeDirectory` request message.
1956
+ class MakeDirectoryRequest
1957
+ include Google::Apis::Core::Hashable
1958
+
1959
+ # Required. The directory's full path including directory name, relative to the
1960
+ # workspace root.
1961
+ # Corresponds to the JSON property `path`
1962
+ # @return [String]
1963
+ attr_accessor :path
1964
+
1965
+ def initialize(**args)
1966
+ update!(**args)
1967
+ end
1968
+
1969
+ # Update properties of this object
1970
+ def update!(**args)
1971
+ @path = args[:path] if args.key?(:path)
1972
+ end
1973
+ end
1974
+
1975
+ # `MakeDirectory` response message.
1976
+ class MakeDirectoryResponse
1977
+ include Google::Apis::Core::Hashable
1978
+
1979
+ def initialize(**args)
1980
+ update!(**args)
1981
+ end
1982
+
1983
+ # Update properties of this object
1984
+ def update!(**args)
1985
+ end
1986
+ end
1987
+
1988
+ # `MoveDirectory` request message.
1989
+ class MoveDirectoryRequest
1990
+ include Google::Apis::Core::Hashable
1991
+
1992
+ # Required. The new path for the directory including directory name, rooted at
1993
+ # workspace root.
1994
+ # Corresponds to the JSON property `newPath`
1995
+ # @return [String]
1996
+ attr_accessor :new_path
1997
+
1998
+ # Required. The directory's full path including directory name, relative to the
1999
+ # workspace root.
2000
+ # Corresponds to the JSON property `path`
2001
+ # @return [String]
2002
+ attr_accessor :path
2003
+
2004
+ def initialize(**args)
2005
+ update!(**args)
2006
+ end
2007
+
2008
+ # Update properties of this object
2009
+ def update!(**args)
2010
+ @new_path = args[:new_path] if args.key?(:new_path)
2011
+ @path = args[:path] if args.key?(:path)
2012
+ end
2013
+ end
2014
+
2015
+ # `MoveDirectory` response message.
2016
+ class MoveDirectoryResponse
2017
+ include Google::Apis::Core::Hashable
2018
+
2019
+ def initialize(**args)
2020
+ update!(**args)
2021
+ end
2022
+
2023
+ # Update properties of this object
2024
+ def update!(**args)
2025
+ end
2026
+ end
2027
+
2028
+ # `MoveFile` request message.
2029
+ class MoveFileRequest
2030
+ include Google::Apis::Core::Hashable
2031
+
2032
+ # Required. The file's new path including filename, relative to the workspace
2033
+ # root.
2034
+ # Corresponds to the JSON property `newPath`
2035
+ # @return [String]
2036
+ attr_accessor :new_path
2037
+
2038
+ # Required. The file's full path including filename, relative to the workspace
2039
+ # root.
2040
+ # Corresponds to the JSON property `path`
2041
+ # @return [String]
2042
+ attr_accessor :path
2043
+
2044
+ def initialize(**args)
2045
+ update!(**args)
2046
+ end
2047
+
2048
+ # Update properties of this object
2049
+ def update!(**args)
2050
+ @new_path = args[:new_path] if args.key?(:new_path)
2051
+ @path = args[:path] if args.key?(:path)
2052
+ end
2053
+ end
2054
+
2055
+ # `MoveFile` response message.
2056
+ class MoveFileResponse
2057
+ include Google::Apis::Core::Hashable
2058
+
2059
+ def initialize(**args)
2060
+ update!(**args)
2061
+ end
2062
+
2063
+ # Update properties of this object
2064
+ def update!(**args)
2065
+ end
2066
+ end
2067
+
2068
+ # Represents a notebook.
2069
+ class Notebook
2070
+ include Google::Apis::Core::Hashable
2071
+
2072
+ # The contents of the notebook.
2073
+ # Corresponds to the JSON property `contents`
2074
+ # @return [String]
2075
+ attr_accessor :contents
2076
+
2077
+ # A list of actions that this action depends on.
2078
+ # Corresponds to the JSON property `dependencyTargets`
2079
+ # @return [Array<Google::Apis::DataformV1::Target>]
2080
+ attr_accessor :dependency_targets
2081
+
2082
+ # Whether this action is disabled (i.e. should not be run).
2083
+ # Corresponds to the JSON property `disabled`
2084
+ # @return [Boolean]
2085
+ attr_accessor :disabled
2086
+ alias_method :disabled?, :disabled
2087
+
2088
+ # Arbitrary, user-defined tags on this action.
2089
+ # Corresponds to the JSON property `tags`
2090
+ # @return [Array<String>]
2091
+ attr_accessor :tags
2092
+
2093
+ def initialize(**args)
2094
+ update!(**args)
2095
+ end
2096
+
2097
+ # Update properties of this object
2098
+ def update!(**args)
2099
+ @contents = args[:contents] if args.key?(:contents)
2100
+ @dependency_targets = args[:dependency_targets] if args.key?(:dependency_targets)
2101
+ @disabled = args[:disabled] if args.key?(:disabled)
2102
+ @tags = args[:tags] if args.key?(:tags)
2103
+ end
2104
+ end
2105
+
2106
+ # Represents a workflow action that will run against a Notebook runtime.
2107
+ class NotebookAction
2108
+ include Google::Apis::Core::Hashable
2109
+
2110
+ # Output only. The code contents of a Notebook to be run.
2111
+ # Corresponds to the JSON property `contents`
2112
+ # @return [String]
2113
+ attr_accessor :contents
2114
+
2115
+ # Output only. The ID of the Vertex job that executed the notebook in contents
2116
+ # and also the ID used for the outputs created in Google Cloud Storage buckets.
2117
+ # Only set once the job has started to run.
2118
+ # Corresponds to the JSON property `jobId`
2119
+ # @return [String]
2120
+ attr_accessor :job_id
2121
+
2122
+ def initialize(**args)
2123
+ update!(**args)
2124
+ end
2125
+
2126
+ # Update properties of this object
2127
+ def update!(**args)
2128
+ @contents = args[:contents] if args.key?(:contents)
2129
+ @job_id = args[:job_id] if args.key?(:job_id)
2130
+ end
2131
+ end
2132
+
2133
+ # Configures various aspects of Dataform notebook runtime.
2134
+ class NotebookRuntimeOptions
2135
+ include Google::Apis::Core::Hashable
2136
+
2137
+ # Optional. The resource name of the [Colab runtime template] (https://cloud.
2138
+ # google.com/colab/docs/runtimes), from which a runtime is created for notebook
2139
+ # executions. If not specified, a runtime is created with Colab's default
2140
+ # specifications.
2141
+ # Corresponds to the JSON property `aiPlatformNotebookRuntimeTemplate`
2142
+ # @return [String]
2143
+ attr_accessor :ai_platform_notebook_runtime_template
2144
+
2145
+ # Optional. The Google Cloud Storage location to upload the result to. Format: `
2146
+ # gs://bucket-name`.
2147
+ # Corresponds to the JSON property `gcsOutputBucket`
2148
+ # @return [String]
2149
+ attr_accessor :gcs_output_bucket
2150
+
2151
+ def initialize(**args)
2152
+ update!(**args)
2153
+ end
2154
+
2155
+ # Update properties of this object
2156
+ def update!(**args)
2157
+ @ai_platform_notebook_runtime_template = args[:ai_platform_notebook_runtime_template] if args.key?(:ai_platform_notebook_runtime_template)
2158
+ @gcs_output_bucket = args[:gcs_output_bucket] if args.key?(:gcs_output_bucket)
2159
+ end
2160
+ end
2161
+
2162
+ # This resource represents a long-running operation that is the result of a
2163
+ # network API call.
2164
+ class Operation
2165
+ include Google::Apis::Core::Hashable
2166
+
2167
+ # If the value is `false`, it means the operation is still in progress. If `true`
2168
+ # , the operation is completed, and either `error` or `response` is available.
2169
+ # Corresponds to the JSON property `done`
2170
+ # @return [Boolean]
2171
+ attr_accessor :done
2172
+ alias_method :done?, :done
2173
+
2174
+ # The `Status` type defines a logical error model that is suitable for different
2175
+ # programming environments, including REST APIs and RPC APIs. It is used by [
2176
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
2177
+ # data: error code, error message, and error details. You can find out more
2178
+ # about this error model and how to work with it in the [API Design Guide](https:
2179
+ # //cloud.google.com/apis/design/errors).
2180
+ # Corresponds to the JSON property `error`
2181
+ # @return [Google::Apis::DataformV1::Status]
2182
+ attr_accessor :error
2183
+
2184
+ # Service-specific metadata associated with the operation. It typically contains
2185
+ # progress information and common metadata such as create time. Some services
2186
+ # might not provide such metadata. Any method that returns a long-running
2187
+ # operation should document the metadata type, if any.
2188
+ # Corresponds to the JSON property `metadata`
2189
+ # @return [Hash<String,Object>]
2190
+ attr_accessor :metadata
2191
+
2192
+ # The server-assigned name, which is only unique within the same service that
2193
+ # originally returns it. If you use the default HTTP mapping, the `name` should
2194
+ # be a resource name ending with `operations/`unique_id``.
2195
+ # Corresponds to the JSON property `name`
2196
+ # @return [String]
2197
+ attr_accessor :name
2198
+
2199
+ # The normal, successful response of the operation. If the original method
2200
+ # returns no data on success, such as `Delete`, the response is `google.protobuf.
2201
+ # Empty`. If the original method is standard `Get`/`Create`/`Update`, the
2202
+ # response should be the resource. For other methods, the response should have
2203
+ # the type `XxxResponse`, where `Xxx` is the original method name. For example,
2204
+ # if the original method name is `TakeSnapshot()`, the inferred response type is
2205
+ # `TakeSnapshotResponse`.
2206
+ # Corresponds to the JSON property `response`
2207
+ # @return [Hash<String,Object>]
2208
+ attr_accessor :response
2209
+
2210
+ def initialize(**args)
2211
+ update!(**args)
2212
+ end
2213
+
2214
+ # Update properties of this object
2215
+ def update!(**args)
2216
+ @done = args[:done] if args.key?(:done)
2217
+ @error = args[:error] if args.key?(:error)
2218
+ @metadata = args[:metadata] if args.key?(:metadata)
2219
+ @name = args[:name] if args.key?(:name)
2220
+ @response = args[:response] if args.key?(:response)
2221
+ end
2222
+ end
2223
+
2224
+ # Represents the metadata of the long-running operation.
2225
+ class OperationMetadata
2226
+ include Google::Apis::Core::Hashable
2227
+
2228
+ # Output only. API version used to start the operation.
2229
+ # Corresponds to the JSON property `apiVersion`
2230
+ # @return [String]
2231
+ attr_accessor :api_version
2232
+
2233
+ # Output only. Identifies whether the user has requested cancellation of the
2234
+ # operation. Operations that have been cancelled successfully have google.
2235
+ # longrunning.Operation.error value with a google.rpc.Status.code of `1`,
2236
+ # corresponding to `Code.CANCELLED`.
2237
+ # Corresponds to the JSON property `cancelRequested`
2238
+ # @return [Boolean]
2239
+ attr_accessor :cancel_requested
2240
+ alias_method :cancel_requested?, :cancel_requested
2241
+
2242
+ # Output only. The time the operation was created.
2243
+ # Corresponds to the JSON property `createTime`
2244
+ # @return [String]
2245
+ attr_accessor :create_time
2246
+
2247
+ # Output only. The time the operation finished running.
2248
+ # Corresponds to the JSON property `endTime`
2249
+ # @return [String]
2250
+ attr_accessor :end_time
2251
+
2252
+ # Output only. Human-readable status of the operation, if any.
2253
+ # Corresponds to the JSON property `statusDetail`
2254
+ # @return [String]
2255
+ attr_accessor :status_detail
2256
+
2257
+ # Output only. Server-defined resource path for the target of the operation.
2258
+ # Corresponds to the JSON property `target`
2259
+ # @return [String]
2260
+ attr_accessor :target
2261
+
2262
+ # Output only. Name of the verb executed by the operation.
2263
+ # Corresponds to the JSON property `verb`
2264
+ # @return [String]
2265
+ attr_accessor :verb
2266
+
2267
+ def initialize(**args)
2268
+ update!(**args)
2269
+ end
2270
+
2271
+ # Update properties of this object
2272
+ def update!(**args)
2273
+ @api_version = args[:api_version] if args.key?(:api_version)
2274
+ @cancel_requested = args[:cancel_requested] if args.key?(:cancel_requested)
2275
+ @create_time = args[:create_time] if args.key?(:create_time)
2276
+ @end_time = args[:end_time] if args.key?(:end_time)
2277
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
2278
+ @target = args[:target] if args.key?(:target)
2279
+ @verb = args[:verb] if args.key?(:verb)
2280
+ end
2281
+ end
2282
+
2283
+ # Represents a list of arbitrary database operations.
2284
+ class Operations
2285
+ include Google::Apis::Core::Hashable
2286
+
2287
+ # A list of actions that this action depends on.
2288
+ # Corresponds to the JSON property `dependencyTargets`
2289
+ # @return [Array<Google::Apis::DataformV1::Target>]
2290
+ attr_accessor :dependency_targets
2291
+
2292
+ # Whether this action is disabled (i.e. should not be run).
2293
+ # Corresponds to the JSON property `disabled`
2294
+ # @return [Boolean]
2295
+ attr_accessor :disabled
2296
+ alias_method :disabled?, :disabled
2297
+
2298
+ # Whether these operations produce an output relation.
2299
+ # Corresponds to the JSON property `hasOutput`
2300
+ # @return [Boolean]
2301
+ attr_accessor :has_output
2302
+ alias_method :has_output?, :has_output
2303
+
2304
+ # A list of arbitrary SQL statements that will be executed without alteration.
2305
+ # Corresponds to the JSON property `queries`
2306
+ # @return [Array<String>]
2307
+ attr_accessor :queries
2308
+
2309
+ # Describes a relation and its columns.
2310
+ # Corresponds to the JSON property `relationDescriptor`
2311
+ # @return [Google::Apis::DataformV1::RelationDescriptor]
2312
+ attr_accessor :relation_descriptor
2313
+
2314
+ # Arbitrary, user-defined tags on this action.
2315
+ # Corresponds to the JSON property `tags`
2316
+ # @return [Array<String>]
2317
+ attr_accessor :tags
2318
+
2319
+ def initialize(**args)
2320
+ update!(**args)
2321
+ end
2322
+
2323
+ # Update properties of this object
2324
+ def update!(**args)
2325
+ @dependency_targets = args[:dependency_targets] if args.key?(:dependency_targets)
2326
+ @disabled = args[:disabled] if args.key?(:disabled)
2327
+ @has_output = args[:has_output] if args.key?(:has_output)
2328
+ @queries = args[:queries] if args.key?(:queries)
2329
+ @relation_descriptor = args[:relation_descriptor] if args.key?(:relation_descriptor)
2330
+ @tags = args[:tags] if args.key?(:tags)
2331
+ end
2332
+ end
2333
+
2334
+ # An Identity and Access Management (IAM) policy, which specifies access
2335
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2336
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
2337
+ # Principals can be user accounts, service accounts, Google groups, and domains (
2338
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
2339
+ # an IAM predefined role or a user-created custom role. For some types of Google
2340
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
2341
+ # logical expression that allows access to a resource only if the expression
2342
+ # evaluates to `true`. A condition can add constraints based on attributes of
2343
+ # the request, the resource, or both. To learn which resources support
2344
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2345
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
2346
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
2347
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
2348
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
2349
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
2350
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
2351
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
2352
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
2353
+ # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
2354
+ # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
2355
+ # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
2356
+ # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
2357
+ # title: expirable access description: Does not grant access after Sep 2020
2358
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
2359
+ # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
2360
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
2361
+ class Policy
2362
+ include Google::Apis::Core::Hashable
2363
+
2364
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
2365
+ # specify a `condition` that determines how and when the `bindings` are applied.
2366
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
2367
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
2368
+ # can be Google groups. Each occurrence of a principal counts towards these
2369
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
2370
+ # example.com`, and not to any other principal, then you can add another 1,450
2371
+ # principals to the `bindings` in the `Policy`.
2372
+ # Corresponds to the JSON property `bindings`
2373
+ # @return [Array<Google::Apis::DataformV1::Binding>]
2374
+ attr_accessor :bindings
2375
+
2376
+ # `etag` is used for optimistic concurrency control as a way to help prevent
2377
+ # simultaneous updates of a policy from overwriting each other. It is strongly
2378
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
2379
+ # to perform policy updates in order to avoid race conditions: An `etag` is
2380
+ # returned in the response to `getIamPolicy`, and systems are expected to put
2381
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
2382
+ # applied to the same version of the policy. **Important:** If you use IAM
2383
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
2384
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
2385
+ # with a version `1` policy, and all of the conditions in the version `3` policy
2386
+ # are lost.
2387
+ # Corresponds to the JSON property `etag`
2388
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2389
+ # @return [String]
2390
+ attr_accessor :etag
2391
+
2392
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
2393
+ # Requests that specify an invalid value are rejected. Any operation that
2394
+ # affects conditional role bindings must specify version `3`. This requirement
2395
+ # applies to the following operations: * Getting a policy that includes a
2396
+ # conditional role binding * Adding a conditional role binding to a policy *
2397
+ # Changing a conditional role binding in a policy * Removing any role binding,
2398
+ # with or without a condition, from a policy that includes conditions **
2399
+ # Important:** If you use IAM Conditions, you must include the `etag` field
2400
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
2401
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
2402
+ # conditions in the version `3` policy are lost. If a policy does not include
2403
+ # any conditions, operations on that policy may specify any valid version or
2404
+ # leave the field unset. To learn which resources support conditions in their
2405
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
2406
+ # conditions/resource-policies).
2407
+ # Corresponds to the JSON property `version`
2408
+ # @return [Fixnum]
2409
+ attr_accessor :version
2410
+
2411
+ def initialize(**args)
2412
+ update!(**args)
2413
+ end
2414
+
2415
+ # Update properties of this object
2416
+ def update!(**args)
2417
+ @bindings = args[:bindings] if args.key?(:bindings)
2418
+ @etag = args[:etag] if args.key?(:etag)
2419
+ @version = args[:version] if args.key?(:version)
2420
+ end
2421
+ end
2422
+
2423
+ # An internal name for an IAM policy, based on the resource to which the policy
2424
+ # applies. Not to be confused with a resource's external full resource name. For
2425
+ # more information on this distinction, see go/iam-full-resource-names.
2426
+ class PolicyName
2427
+ include Google::Apis::Core::Hashable
2428
+
2429
+ # Identifies an instance of the type. ID format varies by type. The ID format is
2430
+ # defined in the IAM .service file that defines the type, either in path_mapping
2431
+ # or in a comment.
2432
+ # Corresponds to the JSON property `id`
2433
+ # @return [String]
2434
+ attr_accessor :id
2435
+
2436
+ # For Cloud IAM: The location of the Policy. Must be empty or "global" for
2437
+ # Policies owned by global IAM. Must name a region from prodspec/cloud-iam-
2438
+ # cloudspec for Regional IAM Policies, see go/iam-faq#where-is-iam-currently-
2439
+ # deployed. For Local IAM: This field should be set to "local".
2440
+ # Corresponds to the JSON property `region`
2441
+ # @return [String]
2442
+ attr_accessor :region
2443
+
2444
+ # Resource type. Types are defined in IAM's .service files. Valid values for
2445
+ # type might be 'storage_buckets', 'compute_instances', '
2446
+ # resourcemanager_customers', 'billing_accounts', etc.
2447
+ # Corresponds to the JSON property `type`
2448
+ # @return [String]
2449
+ attr_accessor :type
2450
+
2451
+ def initialize(**args)
2452
+ update!(**args)
2453
+ end
2454
+
2455
+ # Update properties of this object
2456
+ def update!(**args)
2457
+ @id = args[:id] if args.key?(:id)
2458
+ @region = args[:region] if args.key?(:region)
2459
+ @type = args[:type] if args.key?(:type)
2460
+ end
2461
+ end
2462
+
2463
+ # `PullGitCommits` request message.
2464
+ class PullGitCommitsRequest
2465
+ include Google::Apis::Core::Hashable
2466
+
2467
+ # Represents the author of a Git commit.
2468
+ # Corresponds to the JSON property `author`
2469
+ # @return [Google::Apis::DataformV1::CommitAuthor]
2470
+ attr_accessor :author
2471
+
2472
+ # Optional. The name of the branch in the Git remote from which to pull commits.
2473
+ # If left unset, the repository's default branch name will be used.
2474
+ # Corresponds to the JSON property `remoteBranch`
2475
+ # @return [String]
2476
+ attr_accessor :remote_branch
2477
+
2478
+ def initialize(**args)
2479
+ update!(**args)
2480
+ end
2481
+
2482
+ # Update properties of this object
2483
+ def update!(**args)
2484
+ @author = args[:author] if args.key?(:author)
2485
+ @remote_branch = args[:remote_branch] if args.key?(:remote_branch)
2486
+ end
2487
+ end
2488
+
2489
+ # `PullGitCommits` response message.
2490
+ class PullGitCommitsResponse
2491
+ include Google::Apis::Core::Hashable
2492
+
2493
+ def initialize(**args)
2494
+ update!(**args)
2495
+ end
2496
+
2497
+ # Update properties of this object
2498
+ def update!(**args)
2499
+ end
2500
+ end
2501
+
2502
+ # `PushGitCommits` request message.
2503
+ class PushGitCommitsRequest
2504
+ include Google::Apis::Core::Hashable
2505
+
2506
+ # Optional. The name of the branch in the Git remote to which commits should be
2507
+ # pushed. If left unset, the repository's default branch name will be used.
2508
+ # Corresponds to the JSON property `remoteBranch`
2509
+ # @return [String]
2510
+ attr_accessor :remote_branch
2511
+
2512
+ def initialize(**args)
2513
+ update!(**args)
2514
+ end
2515
+
2516
+ # Update properties of this object
2517
+ def update!(**args)
2518
+ @remote_branch = args[:remote_branch] if args.key?(:remote_branch)
2519
+ end
2520
+ end
2521
+
2522
+ # `PushGitCommits` response message.
2523
+ class PushGitCommitsResponse
2524
+ include Google::Apis::Core::Hashable
2525
+
2526
+ def initialize(**args)
2527
+ update!(**args)
2528
+ end
2529
+
2530
+ # Update properties of this object
2531
+ def update!(**args)
2532
+ end
2533
+ end
2534
+
2535
+ # `QueryCompilationResultActions` response message.
2536
+ class QueryCompilationResultActionsResponse
2537
+ include Google::Apis::Core::Hashable
2538
+
2539
+ # List of compilation result actions.
2540
+ # Corresponds to the JSON property `compilationResultActions`
2541
+ # @return [Array<Google::Apis::DataformV1::CompilationResultAction>]
2542
+ attr_accessor :compilation_result_actions
2543
+
2544
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
2545
+ # field is omitted, there are no subsequent pages.
2546
+ # Corresponds to the JSON property `nextPageToken`
2547
+ # @return [String]
2548
+ attr_accessor :next_page_token
2549
+
2550
+ def initialize(**args)
2551
+ update!(**args)
2552
+ end
2553
+
2554
+ # Update properties of this object
2555
+ def update!(**args)
2556
+ @compilation_result_actions = args[:compilation_result_actions] if args.key?(:compilation_result_actions)
2557
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2558
+ end
2559
+ end
2560
+
2561
+ # `QueryDirectoryContents` response message.
2562
+ class QueryDirectoryContentsResponse
2563
+ include Google::Apis::Core::Hashable
2564
+
2565
+ # List of entries in the directory.
2566
+ # Corresponds to the JSON property `directoryEntries`
2567
+ # @return [Array<Google::Apis::DataformV1::DirectoryEntry>]
2568
+ attr_accessor :directory_entries
2569
+
2570
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
2571
+ # field is omitted, there are no subsequent pages.
2572
+ # Corresponds to the JSON property `nextPageToken`
2573
+ # @return [String]
2574
+ attr_accessor :next_page_token
2575
+
2576
+ def initialize(**args)
2577
+ update!(**args)
2578
+ end
2579
+
2580
+ # Update properties of this object
2581
+ def update!(**args)
2582
+ @directory_entries = args[:directory_entries] if args.key?(:directory_entries)
2583
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2584
+ end
2585
+ end
2586
+
2587
+ # `QueryRepositoryDirectoryContents` response message.
2588
+ class QueryRepositoryDirectoryContentsResponse
2589
+ include Google::Apis::Core::Hashable
2590
+
2591
+ # List of entries in the directory.
2592
+ # Corresponds to the JSON property `directoryEntries`
2593
+ # @return [Array<Google::Apis::DataformV1::DirectoryEntry>]
2594
+ attr_accessor :directory_entries
2595
+
2596
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
2597
+ # field is omitted, there are no subsequent pages.
2598
+ # Corresponds to the JSON property `nextPageToken`
2599
+ # @return [String]
2600
+ attr_accessor :next_page_token
2601
+
2602
+ def initialize(**args)
2603
+ update!(**args)
2604
+ end
2605
+
2606
+ # Update properties of this object
2607
+ def update!(**args)
2608
+ @directory_entries = args[:directory_entries] if args.key?(:directory_entries)
2609
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2610
+ end
2611
+ end
2612
+
2613
+ # `QueryWorkflowInvocationActions` response message.
2614
+ class QueryWorkflowInvocationActionsResponse
2615
+ include Google::Apis::Core::Hashable
2616
+
2617
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
2618
+ # field is omitted, there are no subsequent pages.
2619
+ # Corresponds to the JSON property `nextPageToken`
2620
+ # @return [String]
2621
+ attr_accessor :next_page_token
2622
+
2623
+ # List of workflow invocation actions.
2624
+ # Corresponds to the JSON property `workflowInvocationActions`
2625
+ # @return [Array<Google::Apis::DataformV1::WorkflowInvocationAction>]
2626
+ attr_accessor :workflow_invocation_actions
2627
+
2628
+ def initialize(**args)
2629
+ update!(**args)
2630
+ end
2631
+
2632
+ # Update properties of this object
2633
+ def update!(**args)
2634
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2635
+ @workflow_invocation_actions = args[:workflow_invocation_actions] if args.key?(:workflow_invocation_actions)
2636
+ end
2637
+ end
2638
+
2639
+ # `ReadFile` response message.
2640
+ class ReadFileResponse
2641
+ include Google::Apis::Core::Hashable
2642
+
2643
+ # The file's contents.
2644
+ # Corresponds to the JSON property `fileContents`
2645
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2646
+ # @return [String]
2647
+ attr_accessor :file_contents
2648
+
2649
+ def initialize(**args)
2650
+ update!(**args)
2651
+ end
2652
+
2653
+ # Update properties of this object
2654
+ def update!(**args)
2655
+ @file_contents = args[:file_contents] if args.key?(:file_contents)
2656
+ end
2657
+ end
2658
+
2659
+ # `ReadRepositoryFile` response message.
2660
+ class ReadRepositoryFileResponse
2661
+ include Google::Apis::Core::Hashable
2662
+
2663
+ # The file's contents.
2664
+ # Corresponds to the JSON property `contents`
2665
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2666
+ # @return [String]
2667
+ attr_accessor :contents
2668
+
2669
+ def initialize(**args)
2670
+ update!(**args)
2671
+ end
2672
+
2673
+ # Update properties of this object
2674
+ def update!(**args)
2675
+ @contents = args[:contents] if args.key?(:contents)
2676
+ end
2677
+ end
2678
+
2679
+ # Represents a database relation.
2680
+ class Relation
2681
+ include Google::Apis::Core::Hashable
2682
+
2683
+ # Additional options that will be provided as key/value pairs into the options
2684
+ # clause of a create table/view statement. See https://cloud.google.com/bigquery/
2685
+ # docs/reference/standard-sql/data-definition-language for more information on
2686
+ # which options are supported.
2687
+ # Corresponds to the JSON property `additionalOptions`
2688
+ # @return [Hash<String,String>]
2689
+ attr_accessor :additional_options
2690
+
2691
+ # A list of columns or SQL expressions used to cluster the table.
2692
+ # Corresponds to the JSON property `clusterExpressions`
2693
+ # @return [Array<String>]
2694
+ attr_accessor :cluster_expressions
2695
+
2696
+ # A list of actions that this action depends on.
2697
+ # Corresponds to the JSON property `dependencyTargets`
2698
+ # @return [Array<Google::Apis::DataformV1::Target>]
2699
+ attr_accessor :dependency_targets
2700
+
2701
+ # Whether this action is disabled (i.e. should not be run).
2702
+ # Corresponds to the JSON property `disabled`
2703
+ # @return [Boolean]
2704
+ attr_accessor :disabled
2705
+ alias_method :disabled?, :disabled
2706
+
2707
+ # Contains settings for relations of type `INCREMENTAL_TABLE`.
2708
+ # Corresponds to the JSON property `incrementalTableConfig`
2709
+ # @return [Google::Apis::DataformV1::IncrementalTableConfig]
2710
+ attr_accessor :incremental_table_config
2711
+
2712
+ # Sets the partition expiration in days.
2713
+ # Corresponds to the JSON property `partitionExpirationDays`
2714
+ # @return [Fixnum]
2715
+ attr_accessor :partition_expiration_days
2716
+
2717
+ # The SQL expression used to partition the relation.
2718
+ # Corresponds to the JSON property `partitionExpression`
2719
+ # @return [String]
2720
+ attr_accessor :partition_expression
2721
+
2722
+ # SQL statements to be executed after creating the relation.
2723
+ # Corresponds to the JSON property `postOperations`
2724
+ # @return [Array<String>]
2725
+ attr_accessor :post_operations
2726
+
2727
+ # SQL statements to be executed before creating the relation.
2728
+ # Corresponds to the JSON property `preOperations`
2729
+ # @return [Array<String>]
2730
+ attr_accessor :pre_operations
2731
+
2732
+ # Describes a relation and its columns.
2733
+ # Corresponds to the JSON property `relationDescriptor`
2734
+ # @return [Google::Apis::DataformV1::RelationDescriptor]
2735
+ attr_accessor :relation_descriptor
2736
+
2737
+ # The type of this relation.
2738
+ # Corresponds to the JSON property `relationType`
2739
+ # @return [String]
2740
+ attr_accessor :relation_type
2741
+
2742
+ # Specifies whether queries on this table must include a predicate filter that
2743
+ # filters on the partitioning column.
2744
+ # Corresponds to the JSON property `requirePartitionFilter`
2745
+ # @return [Boolean]
2746
+ attr_accessor :require_partition_filter
2747
+ alias_method :require_partition_filter?, :require_partition_filter
2748
+
2749
+ # The SELECT query which returns rows which this relation should contain.
2750
+ # Corresponds to the JSON property `selectQuery`
2751
+ # @return [String]
2752
+ attr_accessor :select_query
2753
+
2754
+ # Arbitrary, user-defined tags on this action.
2755
+ # Corresponds to the JSON property `tags`
2756
+ # @return [Array<String>]
2757
+ attr_accessor :tags
2758
+
2759
+ def initialize(**args)
2760
+ update!(**args)
2761
+ end
2762
+
2763
+ # Update properties of this object
2764
+ def update!(**args)
2765
+ @additional_options = args[:additional_options] if args.key?(:additional_options)
2766
+ @cluster_expressions = args[:cluster_expressions] if args.key?(:cluster_expressions)
2767
+ @dependency_targets = args[:dependency_targets] if args.key?(:dependency_targets)
2768
+ @disabled = args[:disabled] if args.key?(:disabled)
2769
+ @incremental_table_config = args[:incremental_table_config] if args.key?(:incremental_table_config)
2770
+ @partition_expiration_days = args[:partition_expiration_days] if args.key?(:partition_expiration_days)
2771
+ @partition_expression = args[:partition_expression] if args.key?(:partition_expression)
2772
+ @post_operations = args[:post_operations] if args.key?(:post_operations)
2773
+ @pre_operations = args[:pre_operations] if args.key?(:pre_operations)
2774
+ @relation_descriptor = args[:relation_descriptor] if args.key?(:relation_descriptor)
2775
+ @relation_type = args[:relation_type] if args.key?(:relation_type)
2776
+ @require_partition_filter = args[:require_partition_filter] if args.key?(:require_partition_filter)
2777
+ @select_query = args[:select_query] if args.key?(:select_query)
2778
+ @tags = args[:tags] if args.key?(:tags)
2779
+ end
2780
+ end
2781
+
2782
+ # Describes a relation and its columns.
2783
+ class RelationDescriptor
2784
+ include Google::Apis::Core::Hashable
2785
+
2786
+ # A set of BigQuery labels that should be applied to the relation.
2787
+ # Corresponds to the JSON property `bigqueryLabels`
2788
+ # @return [Hash<String,String>]
2789
+ attr_accessor :bigquery_labels
2790
+
2791
+ # A list of descriptions of columns within the relation.
2792
+ # Corresponds to the JSON property `columns`
2793
+ # @return [Array<Google::Apis::DataformV1::ColumnDescriptor>]
2794
+ attr_accessor :columns
2795
+
2796
+ # A text description of the relation.
2797
+ # Corresponds to the JSON property `description`
2798
+ # @return [String]
2799
+ attr_accessor :description
2800
+
2801
+ def initialize(**args)
2802
+ update!(**args)
2803
+ end
2804
+
2805
+ # Update properties of this object
2806
+ def update!(**args)
2807
+ @bigquery_labels = args[:bigquery_labels] if args.key?(:bigquery_labels)
2808
+ @columns = args[:columns] if args.key?(:columns)
2809
+ @description = args[:description] if args.key?(:description)
2810
+ end
2811
+ end
2812
+
2813
+ # Represents a Dataform release configuration.
2814
+ class ReleaseConfig
2815
+ include Google::Apis::Core::Hashable
2816
+
2817
+ # Configures various aspects of Dataform code compilation.
2818
+ # Corresponds to the JSON property `codeCompilationConfig`
2819
+ # @return [Google::Apis::DataformV1::CodeCompilationConfig]
2820
+ attr_accessor :code_compilation_config
2821
+
2822
+ # Optional. Optional schedule (in cron format) for automatic creation of
2823
+ # compilation results.
2824
+ # Corresponds to the JSON property `cronSchedule`
2825
+ # @return [String]
2826
+ attr_accessor :cron_schedule
2827
+
2828
+ # Optional. Disables automatic creation of compilation results.
2829
+ # Corresponds to the JSON property `disabled`
2830
+ # @return [Boolean]
2831
+ attr_accessor :disabled
2832
+ alias_method :disabled?, :disabled
2833
+
2834
+ # Required. Git commit/tag/branch name at which the repository should be
2835
+ # compiled. Must exist in the remote repository. Examples: - a commit SHA: `
2836
+ # 12ade345` - a tag: `tag1` - a branch name: `branch1`
2837
+ # Corresponds to the JSON property `gitCommitish`
2838
+ # @return [String]
2839
+ attr_accessor :git_commitish
2840
+
2841
+ # Output only. All the metadata information that is used internally to serve the
2842
+ # resource. For example: timestamps, flags, status fields, etc. The format of
2843
+ # this field is a JSON string.
2844
+ # Corresponds to the JSON property `internalMetadata`
2845
+ # @return [String]
2846
+ attr_accessor :internal_metadata
2847
+
2848
+ # Identifier. The release config's name.
2849
+ # Corresponds to the JSON property `name`
2850
+ # @return [String]
2851
+ attr_accessor :name
2852
+
2853
+ # Output only. Records of the 10 most recent scheduled release attempts, ordered
2854
+ # in descending order of `release_time`. Updated whenever automatic creation of
2855
+ # a compilation result is triggered by cron_schedule.
2856
+ # Corresponds to the JSON property `recentScheduledReleaseRecords`
2857
+ # @return [Array<Google::Apis::DataformV1::ScheduledReleaseRecord>]
2858
+ attr_accessor :recent_scheduled_release_records
2859
+
2860
+ # Optional. The name of the currently released compilation result for this
2861
+ # release config. This value is updated when a compilation result is
2862
+ # automatically created from this release config (using cron_schedule), or when
2863
+ # this resource is updated by API call (perhaps to roll back to an earlier
2864
+ # release). The compilation result must have been created using this release
2865
+ # config. Must be in the format `projects/*/locations/*/repositories/*/
2866
+ # compilationResults/*`.
2867
+ # Corresponds to the JSON property `releaseCompilationResult`
2868
+ # @return [String]
2869
+ attr_accessor :release_compilation_result
2870
+
2871
+ # Optional. Specifies the time zone to be used when interpreting cron_schedule.
2872
+ # Must be a time zone name from the time zone database (https://en.wikipedia.org/
2873
+ # wiki/List_of_tz_database_time_zones). If left unspecified, the default is UTC.
2874
+ # Corresponds to the JSON property `timeZone`
2875
+ # @return [String]
2876
+ attr_accessor :time_zone
2877
+
2878
+ def initialize(**args)
2879
+ update!(**args)
2880
+ end
2881
+
2882
+ # Update properties of this object
2883
+ def update!(**args)
2884
+ @code_compilation_config = args[:code_compilation_config] if args.key?(:code_compilation_config)
2885
+ @cron_schedule = args[:cron_schedule] if args.key?(:cron_schedule)
2886
+ @disabled = args[:disabled] if args.key?(:disabled)
2887
+ @git_commitish = args[:git_commitish] if args.key?(:git_commitish)
2888
+ @internal_metadata = args[:internal_metadata] if args.key?(:internal_metadata)
2889
+ @name = args[:name] if args.key?(:name)
2890
+ @recent_scheduled_release_records = args[:recent_scheduled_release_records] if args.key?(:recent_scheduled_release_records)
2891
+ @release_compilation_result = args[:release_compilation_result] if args.key?(:release_compilation_result)
2892
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
2893
+ end
2894
+ end
2895
+
2896
+ # `RemoveDirectory` request message.
2897
+ class RemoveDirectoryRequest
2898
+ include Google::Apis::Core::Hashable
2899
+
2900
+ # Required. The directory's full path including directory name, relative to the
2901
+ # workspace root.
2902
+ # Corresponds to the JSON property `path`
2903
+ # @return [String]
2904
+ attr_accessor :path
2905
+
2906
+ def initialize(**args)
2907
+ update!(**args)
2908
+ end
2909
+
2910
+ # Update properties of this object
2911
+ def update!(**args)
2912
+ @path = args[:path] if args.key?(:path)
2913
+ end
2914
+ end
2915
+
2916
+ # `RemoveDirectory` response message.
2917
+ class RemoveDirectoryResponse
2918
+ include Google::Apis::Core::Hashable
2919
+
2920
+ def initialize(**args)
2921
+ update!(**args)
2922
+ end
2923
+
2924
+ # Update properties of this object
2925
+ def update!(**args)
2926
+ end
2927
+ end
2928
+
2929
+ # `RemoveFile` request message.
2930
+ class RemoveFileRequest
2931
+ include Google::Apis::Core::Hashable
2932
+
2933
+ # Required. The file's full path including filename, relative to the workspace
2934
+ # root.
2935
+ # Corresponds to the JSON property `path`
2936
+ # @return [String]
2937
+ attr_accessor :path
2938
+
2939
+ def initialize(**args)
2940
+ update!(**args)
2941
+ end
2942
+
2943
+ # Update properties of this object
2944
+ def update!(**args)
2945
+ @path = args[:path] if args.key?(:path)
2946
+ end
2947
+ end
2948
+
2949
+ # `RemoveFile` response message.
2950
+ class RemoveFileResponse
2951
+ include Google::Apis::Core::Hashable
2952
+
2953
+ def initialize(**args)
2954
+ update!(**args)
2955
+ end
2956
+
2957
+ # Update properties of this object
2958
+ def update!(**args)
2959
+ end
2960
+ end
2961
+
2962
+ # Represents a Dataform Git repository.
2963
+ class Repository
2964
+ include Google::Apis::Core::Hashable
2965
+
2966
+ # Output only. The timestamp of when the repository was created.
2967
+ # Corresponds to the JSON property `createTime`
2968
+ # @return [String]
2969
+ attr_accessor :create_time
2970
+
2971
+ # Describes encryption state of a resource.
2972
+ # Corresponds to the JSON property `dataEncryptionState`
2973
+ # @return [Google::Apis::DataformV1::DataEncryptionState]
2974
+ attr_accessor :data_encryption_state
2975
+
2976
+ # Optional. The repository's user-friendly name.
2977
+ # Corresponds to the JSON property `displayName`
2978
+ # @return [String]
2979
+ attr_accessor :display_name
2980
+
2981
+ # Controls Git remote configuration for a repository.
2982
+ # Corresponds to the JSON property `gitRemoteSettings`
2983
+ # @return [Google::Apis::DataformV1::GitRemoteSettings]
2984
+ attr_accessor :git_remote_settings
2985
+
2986
+ # Output only. All the metadata information that is used internally to serve the
2987
+ # resource. For example: timestamps, flags, status fields, etc. The format of
2988
+ # this field is a JSON string.
2989
+ # Corresponds to the JSON property `internalMetadata`
2990
+ # @return [String]
2991
+ attr_accessor :internal_metadata
2992
+
2993
+ # Optional. The reference to a KMS encryption key. If provided, it will be used
2994
+ # to encrypt user data in the repository and all child resources. It is not
2995
+ # possible to add or update the encryption key after the repository is created.
2996
+ # Example: `projects/`kms_project`/locations/`location`/keyRings/`key_location`/
2997
+ # cryptoKeys/`key``
2998
+ # Corresponds to the JSON property `kmsKeyName`
2999
+ # @return [String]
3000
+ attr_accessor :kms_key_name
3001
+
3002
+ # Optional. Repository user labels.
3003
+ # Corresponds to the JSON property `labels`
3004
+ # @return [Hash<String,String>]
3005
+ attr_accessor :labels
3006
+
3007
+ # Identifier. The repository's name.
3008
+ # Corresponds to the JSON property `name`
3009
+ # @return [String]
3010
+ attr_accessor :name
3011
+
3012
+ # Optional. The name of the Secret Manager secret version to be used to
3013
+ # interpolate variables into the .npmrc file for package installation operations.
3014
+ # Must be in the format `projects/*/secrets/*/versions/*`. The file itself must
3015
+ # be in a JSON format.
3016
+ # Corresponds to the JSON property `npmrcEnvironmentVariablesSecretVersion`
3017
+ # @return [String]
3018
+ attr_accessor :npmrc_environment_variables_secret_version
3019
+
3020
+ # Optional. The service account to run workflow invocations under.
3021
+ # Corresponds to the JSON property `serviceAccount`
3022
+ # @return [String]
3023
+ attr_accessor :service_account
3024
+
3025
+ # Optional. Input only. If set to true, the authenticated user will be granted
3026
+ # the roles/dataform.admin role on the created repository.
3027
+ # Corresponds to the JSON property `setAuthenticatedUserAdmin`
3028
+ # @return [Boolean]
3029
+ attr_accessor :set_authenticated_user_admin
3030
+ alias_method :set_authenticated_user_admin?, :set_authenticated_user_admin
3031
+
3032
+ # Configures workspace compilation overrides for a repository.
3033
+ # Corresponds to the JSON property `workspaceCompilationOverrides`
3034
+ # @return [Google::Apis::DataformV1::WorkspaceCompilationOverrides]
3035
+ attr_accessor :workspace_compilation_overrides
3036
+
3037
+ def initialize(**args)
3038
+ update!(**args)
3039
+ end
3040
+
3041
+ # Update properties of this object
3042
+ def update!(**args)
3043
+ @create_time = args[:create_time] if args.key?(:create_time)
3044
+ @data_encryption_state = args[:data_encryption_state] if args.key?(:data_encryption_state)
3045
+ @display_name = args[:display_name] if args.key?(:display_name)
3046
+ @git_remote_settings = args[:git_remote_settings] if args.key?(:git_remote_settings)
3047
+ @internal_metadata = args[:internal_metadata] if args.key?(:internal_metadata)
3048
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
3049
+ @labels = args[:labels] if args.key?(:labels)
3050
+ @name = args[:name] if args.key?(:name)
3051
+ @npmrc_environment_variables_secret_version = args[:npmrc_environment_variables_secret_version] if args.key?(:npmrc_environment_variables_secret_version)
3052
+ @service_account = args[:service_account] if args.key?(:service_account)
3053
+ @set_authenticated_user_admin = args[:set_authenticated_user_admin] if args.key?(:set_authenticated_user_admin)
3054
+ @workspace_compilation_overrides = args[:workspace_compilation_overrides] if args.key?(:workspace_compilation_overrides)
3055
+ end
3056
+ end
3057
+
3058
+ # `ResetWorkspaceChanges` request message.
3059
+ class ResetWorkspaceChangesRequest
3060
+ include Google::Apis::Core::Hashable
3061
+
3062
+ # Optional. If set to true, untracked files will be deleted.
3063
+ # Corresponds to the JSON property `clean`
3064
+ # @return [Boolean]
3065
+ attr_accessor :clean
3066
+ alias_method :clean?, :clean
3067
+
3068
+ # Optional. Full file paths to reset back to their committed state including
3069
+ # filename, rooted at workspace root. If left empty, all files will be reset.
3070
+ # Corresponds to the JSON property `paths`
3071
+ # @return [Array<String>]
3072
+ attr_accessor :paths
3073
+
3074
+ def initialize(**args)
3075
+ update!(**args)
3076
+ end
3077
+
3078
+ # Update properties of this object
3079
+ def update!(**args)
3080
+ @clean = args[:clean] if args.key?(:clean)
3081
+ @paths = args[:paths] if args.key?(:paths)
3082
+ end
3083
+ end
3084
+
3085
+ # `ResetWorkspaceChanges` response message.
3086
+ class ResetWorkspaceChangesResponse
3087
+ include Google::Apis::Core::Hashable
3088
+
3089
+ def initialize(**args)
3090
+ update!(**args)
3091
+ end
3092
+
3093
+ # Update properties of this object
3094
+ def update!(**args)
3095
+ end
3096
+ end
3097
+
3098
+ # A record of an attempt to create a workflow invocation for this workflow
3099
+ # config.
3100
+ class ScheduledExecutionRecord
3101
+ include Google::Apis::Core::Hashable
3102
+
3103
+ # The `Status` type defines a logical error model that is suitable for different
3104
+ # programming environments, including REST APIs and RPC APIs. It is used by [
3105
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
3106
+ # data: error code, error message, and error details. You can find out more
3107
+ # about this error model and how to work with it in the [API Design Guide](https:
3108
+ # //cloud.google.com/apis/design/errors).
3109
+ # Corresponds to the JSON property `errorStatus`
3110
+ # @return [Google::Apis::DataformV1::Status]
3111
+ attr_accessor :error_status
3112
+
3113
+ # Output only. The timestamp of this execution attempt.
3114
+ # Corresponds to the JSON property `executionTime`
3115
+ # @return [String]
3116
+ attr_accessor :execution_time
3117
+
3118
+ # The name of the created workflow invocation, if one was successfully created.
3119
+ # Must be in the format `projects/*/locations/*/repositories/*/
3120
+ # workflowInvocations/*`.
3121
+ # Corresponds to the JSON property `workflowInvocation`
3122
+ # @return [String]
3123
+ attr_accessor :workflow_invocation
3124
+
3125
+ def initialize(**args)
3126
+ update!(**args)
3127
+ end
3128
+
3129
+ # Update properties of this object
3130
+ def update!(**args)
3131
+ @error_status = args[:error_status] if args.key?(:error_status)
3132
+ @execution_time = args[:execution_time] if args.key?(:execution_time)
3133
+ @workflow_invocation = args[:workflow_invocation] if args.key?(:workflow_invocation)
3134
+ end
3135
+ end
3136
+
3137
+ # A record of an attempt to create a compilation result for this release config.
3138
+ class ScheduledReleaseRecord
3139
+ include Google::Apis::Core::Hashable
3140
+
3141
+ # The name of the created compilation result, if one was successfully created.
3142
+ # Must be in the format `projects/*/locations/*/repositories/*/
3143
+ # compilationResults/*`.
3144
+ # Corresponds to the JSON property `compilationResult`
3145
+ # @return [String]
3146
+ attr_accessor :compilation_result
3147
+
3148
+ # The `Status` type defines a logical error model that is suitable for different
3149
+ # programming environments, including REST APIs and RPC APIs. It is used by [
3150
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
3151
+ # data: error code, error message, and error details. You can find out more
3152
+ # about this error model and how to work with it in the [API Design Guide](https:
3153
+ # //cloud.google.com/apis/design/errors).
3154
+ # Corresponds to the JSON property `errorStatus`
3155
+ # @return [Google::Apis::DataformV1::Status]
3156
+ attr_accessor :error_status
3157
+
3158
+ # Output only. The timestamp of this release attempt.
3159
+ # Corresponds to the JSON property `releaseTime`
3160
+ # @return [String]
3161
+ attr_accessor :release_time
3162
+
3163
+ def initialize(**args)
3164
+ update!(**args)
3165
+ end
3166
+
3167
+ # Update properties of this object
3168
+ def update!(**args)
3169
+ @compilation_result = args[:compilation_result] if args.key?(:compilation_result)
3170
+ @error_status = args[:error_status] if args.key?(:error_status)
3171
+ @release_time = args[:release_time] if args.key?(:release_time)
3172
+ end
3173
+ end
3174
+
3175
+ # Client-facing representation of a file search response.
3176
+ class SearchFilesResponse
3177
+ include Google::Apis::Core::Hashable
3178
+
3179
+ # Optional. A token, which can be sent as `page_token` to retrieve the next page.
3180
+ # If this field is omitted, there are no subsequent pages.
3181
+ # Corresponds to the JSON property `nextPageToken`
3182
+ # @return [String]
3183
+ attr_accessor :next_page_token
3184
+
3185
+ # List of matched results.
3186
+ # Corresponds to the JSON property `searchResults`
3187
+ # @return [Array<Google::Apis::DataformV1::SearchResult>]
3188
+ attr_accessor :search_results
3189
+
3190
+ def initialize(**args)
3191
+ update!(**args)
3192
+ end
3193
+
3194
+ # Update properties of this object
3195
+ def update!(**args)
3196
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3197
+ @search_results = args[:search_results] if args.key?(:search_results)
3198
+ end
3199
+ end
3200
+
3201
+ # Client-facing representation of a search result entry.
3202
+ class SearchResult
3203
+ include Google::Apis::Core::Hashable
3204
+
3205
+ # Client-facing representation of a directory entry in search results.
3206
+ # Corresponds to the JSON property `directory`
3207
+ # @return [Google::Apis::DataformV1::DirectorySearchResult]
3208
+ attr_accessor :directory
3209
+
3210
+ # Client-facing representation of a file entry in search results.
3211
+ # Corresponds to the JSON property `file`
3212
+ # @return [Google::Apis::DataformV1::FileSearchResult]
3213
+ attr_accessor :file
3214
+
3215
+ def initialize(**args)
3216
+ update!(**args)
3217
+ end
3218
+
3219
+ # Update properties of this object
3220
+ def update!(**args)
3221
+ @directory = args[:directory] if args.key?(:directory)
3222
+ @file = args[:file] if args.key?(:file)
3223
+ end
3224
+ end
3225
+
3226
+ # Request message for `SetIamPolicy` method.
3227
+ class SetIamPolicyRequest
3228
+ include Google::Apis::Core::Hashable
3229
+
3230
+ # An Identity and Access Management (IAM) policy, which specifies access
3231
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
3232
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
3233
+ # Principals can be user accounts, service accounts, Google groups, and domains (
3234
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
3235
+ # an IAM predefined role or a user-created custom role. For some types of Google
3236
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
3237
+ # logical expression that allows access to a resource only if the expression
3238
+ # evaluates to `true`. A condition can add constraints based on attributes of
3239
+ # the request, the resource, or both. To learn which resources support
3240
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
3241
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
3242
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
3243
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
3244
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
3245
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
3246
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
3247
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
3248
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
3249
+ # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
3250
+ # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
3251
+ # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
3252
+ # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
3253
+ # title: expirable access description: Does not grant access after Sep 2020
3254
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
3255
+ # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
3256
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
3257
+ # Corresponds to the JSON property `policy`
3258
+ # @return [Google::Apis::DataformV1::Policy]
3259
+ attr_accessor :policy
3260
+
3261
+ def initialize(**args)
3262
+ update!(**args)
3263
+ end
3264
+
3265
+ # Update properties of this object
3266
+ def update!(**args)
3267
+ @policy = args[:policy] if args.key?(:policy)
3268
+ end
3269
+ end
3270
+
3271
+ # Simple load definition
3272
+ class SimpleLoadMode
3273
+ include Google::Apis::Core::Hashable
3274
+
3275
+ def initialize(**args)
3276
+ update!(**args)
3277
+ end
3278
+
3279
+ # Update properties of this object
3280
+ def update!(**args)
3281
+ end
3282
+ end
3283
+
3284
+ # Definition of a SQL Data Preparation
3285
+ class SqlDefinition
3286
+ include Google::Apis::Core::Hashable
3287
+
3288
+ # Error table information, used to write error data into a BigQuery table.
3289
+ # Corresponds to the JSON property `errorTable`
3290
+ # @return [Google::Apis::DataformV1::ErrorTable]
3291
+ attr_accessor :error_table
3292
+
3293
+ # Simplified load configuration for actions
3294
+ # Corresponds to the JSON property `load`
3295
+ # @return [Google::Apis::DataformV1::LoadConfig]
3296
+ attr_accessor :load
3297
+
3298
+ # The SQL query representing the data preparation steps. Formatted as a Pipe SQL
3299
+ # query statement.
3300
+ # Corresponds to the JSON property `query`
3301
+ # @return [String]
3302
+ attr_accessor :query
3303
+
3304
+ def initialize(**args)
3305
+ update!(**args)
3306
+ end
3307
+
3308
+ # Update properties of this object
3309
+ def update!(**args)
3310
+ @error_table = args[:error_table] if args.key?(:error_table)
3311
+ @load = args[:load] if args.key?(:load)
3312
+ @query = args[:query] if args.key?(:query)
3313
+ end
3314
+ end
3315
+
3316
+ # Configures fields for performing SSH authentication.
3317
+ class SshAuthenticationConfig
3318
+ include Google::Apis::Core::Hashable
3319
+
3320
+ # Required. Content of a public SSH key to verify an identity of a remote Git
3321
+ # host.
3322
+ # Corresponds to the JSON property `hostPublicKey`
3323
+ # @return [String]
3324
+ attr_accessor :host_public_key
3325
+
3326
+ # Required. The name of the Secret Manager secret version to use as a ssh
3327
+ # private key for Git operations. Must be in the format `projects/*/secrets/*/
3328
+ # versions/*`.
3329
+ # Corresponds to the JSON property `userPrivateKeySecretVersion`
3330
+ # @return [String]
3331
+ attr_accessor :user_private_key_secret_version
3332
+
3333
+ def initialize(**args)
3334
+ update!(**args)
3335
+ end
3336
+
3337
+ # Update properties of this object
3338
+ def update!(**args)
3339
+ @host_public_key = args[:host_public_key] if args.key?(:host_public_key)
3340
+ @user_private_key_secret_version = args[:user_private_key_secret_version] if args.key?(:user_private_key_secret_version)
3341
+ end
3342
+ end
3343
+
3344
+ # The `Status` type defines a logical error model that is suitable for different
3345
+ # programming environments, including REST APIs and RPC APIs. It is used by [
3346
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
3347
+ # data: error code, error message, and error details. You can find out more
3348
+ # about this error model and how to work with it in the [API Design Guide](https:
3349
+ # //cloud.google.com/apis/design/errors).
3350
+ class Status
3351
+ include Google::Apis::Core::Hashable
3352
+
3353
+ # The status code, which should be an enum value of google.rpc.Code.
3354
+ # Corresponds to the JSON property `code`
3355
+ # @return [Fixnum]
3356
+ attr_accessor :code
3357
+
3358
+ # A list of messages that carry the error details. There is a common set of
3359
+ # message types for APIs to use.
3360
+ # Corresponds to the JSON property `details`
3361
+ # @return [Array<Hash<String,Object>>]
3362
+ attr_accessor :details
3363
+
3364
+ # A developer-facing error message, which should be in English. Any user-facing
3365
+ # error message should be localized and sent in the google.rpc.Status.details
3366
+ # field, or localized by the client.
3367
+ # Corresponds to the JSON property `message`
3368
+ # @return [String]
3369
+ attr_accessor :message
3370
+
3371
+ def initialize(**args)
3372
+ update!(**args)
3373
+ end
3374
+
3375
+ # Update properties of this object
3376
+ def update!(**args)
3377
+ @code = args[:code] if args.key?(:code)
3378
+ @details = args[:details] if args.key?(:details)
3379
+ @message = args[:message] if args.key?(:message)
3380
+ end
3381
+ end
3382
+
3383
+ # Represents an action identifier. If the action writes output, the output will
3384
+ # be written to the referenced database object.
3385
+ class Target
3386
+ include Google::Apis::Core::Hashable
3387
+
3388
+ # Optional. The action's database (Google Cloud project ID) .
3389
+ # Corresponds to the JSON property `database`
3390
+ # @return [String]
3391
+ attr_accessor :database
3392
+
3393
+ # Optional. The action's name, within `database` and `schema`.
3394
+ # Corresponds to the JSON property `name`
3395
+ # @return [String]
3396
+ attr_accessor :name
3397
+
3398
+ # Optional. The action's schema (BigQuery dataset ID), within `database`.
3399
+ # Corresponds to the JSON property `schema`
3400
+ # @return [String]
3401
+ attr_accessor :schema
3402
+
3403
+ def initialize(**args)
3404
+ update!(**args)
3405
+ end
3406
+
3407
+ # Update properties of this object
3408
+ def update!(**args)
3409
+ @database = args[:database] if args.key?(:database)
3410
+ @name = args[:name] if args.key?(:name)
3411
+ @schema = args[:schema] if args.key?(:schema)
3412
+ end
3413
+ end
3414
+
3415
+ # Request message for `TestIamPermissions` method.
3416
+ class TestIamPermissionsRequest
3417
+ include Google::Apis::Core::Hashable
3418
+
3419
+ # The set of permissions to check for the `resource`. Permissions with wildcards
3420
+ # (such as `*` or `storage.*`) are not allowed. For more information see [IAM
3421
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
3422
+ # Corresponds to the JSON property `permissions`
3423
+ # @return [Array<String>]
3424
+ attr_accessor :permissions
3425
+
3426
+ def initialize(**args)
3427
+ update!(**args)
3428
+ end
3429
+
3430
+ # Update properties of this object
3431
+ def update!(**args)
3432
+ @permissions = args[:permissions] if args.key?(:permissions)
3433
+ end
3434
+ end
3435
+
3436
+ # Response message for `TestIamPermissions` method.
3437
+ class TestIamPermissionsResponse
3438
+ include Google::Apis::Core::Hashable
3439
+
3440
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
3441
+ # Corresponds to the JSON property `permissions`
3442
+ # @return [Array<String>]
3443
+ attr_accessor :permissions
3444
+
3445
+ def initialize(**args)
3446
+ update!(**args)
3447
+ end
3448
+
3449
+ # Update properties of this object
3450
+ def update!(**args)
3451
+ @permissions = args[:permissions] if args.key?(:permissions)
3452
+ end
3453
+ end
3454
+
3455
+ # Represents the Git state of a file with uncommitted changes.
3456
+ class UncommittedFileChange
3457
+ include Google::Apis::Core::Hashable
3458
+
3459
+ # The file's full path including filename, relative to the workspace root.
3460
+ # Corresponds to the JSON property `path`
3461
+ # @return [String]
3462
+ attr_accessor :path
3463
+
3464
+ # Output only. Indicates the status of the file.
3465
+ # Corresponds to the JSON property `state`
3466
+ # @return [String]
3467
+ attr_accessor :state
3468
+
3469
+ def initialize(**args)
3470
+ update!(**args)
3471
+ end
3472
+
3473
+ # Update properties of this object
3474
+ def update!(**args)
3475
+ @path = args[:path] if args.key?(:path)
3476
+ @state = args[:state] if args.key?(:state)
3477
+ end
3478
+ end
3479
+
3480
+ # Represents a Dataform workflow configuration.
3481
+ class WorkflowConfig
3482
+ include Google::Apis::Core::Hashable
3483
+
3484
+ # Output only. The timestamp of when the WorkflowConfig was created.
3485
+ # Corresponds to the JSON property `createTime`
3486
+ # @return [String]
3487
+ attr_accessor :create_time
3488
+
3489
+ # Optional. Optional schedule (in cron format) for automatic execution of this
3490
+ # workflow config.
3491
+ # Corresponds to the JSON property `cronSchedule`
3492
+ # @return [String]
3493
+ attr_accessor :cron_schedule
3494
+
3495
+ # Optional. Disables automatic creation of workflow invocations.
3496
+ # Corresponds to the JSON property `disabled`
3497
+ # @return [Boolean]
3498
+ attr_accessor :disabled
3499
+ alias_method :disabled?, :disabled
3500
+
3501
+ # Output only. All the metadata information that is used internally to serve the
3502
+ # resource. For example: timestamps, flags, status fields, etc. The format of
3503
+ # this field is a JSON string.
3504
+ # Corresponds to the JSON property `internalMetadata`
3505
+ # @return [String]
3506
+ attr_accessor :internal_metadata
3507
+
3508
+ # Includes various configuration options for a workflow invocation. If both `
3509
+ # included_targets` and `included_tags` are unset, all actions will be included.
3510
+ # Corresponds to the JSON property `invocationConfig`
3511
+ # @return [Google::Apis::DataformV1::InvocationConfig]
3512
+ attr_accessor :invocation_config
3513
+
3514
+ # Identifier. The workflow config's name.
3515
+ # Corresponds to the JSON property `name`
3516
+ # @return [String]
3517
+ attr_accessor :name
3518
+
3519
+ # Output only. Records of the 10 most recent scheduled execution attempts,
3520
+ # ordered in descending order of `execution_time`. Updated whenever automatic
3521
+ # creation of a workflow invocation is triggered by cron_schedule.
3522
+ # Corresponds to the JSON property `recentScheduledExecutionRecords`
3523
+ # @return [Array<Google::Apis::DataformV1::ScheduledExecutionRecord>]
3524
+ attr_accessor :recent_scheduled_execution_records
3525
+
3526
+ # Required. The name of the release config whose release_compilation_result
3527
+ # should be executed. Must be in the format `projects/*/locations/*/repositories/
3528
+ # */releaseConfigs/*`.
3529
+ # Corresponds to the JSON property `releaseConfig`
3530
+ # @return [String]
3531
+ attr_accessor :release_config
3532
+
3533
+ # Optional. Specifies the time zone to be used when interpreting cron_schedule.
3534
+ # Must be a time zone name from the time zone database (https://en.wikipedia.org/
3535
+ # wiki/List_of_tz_database_time_zones). If left unspecified, the default is UTC.
3536
+ # Corresponds to the JSON property `timeZone`
3537
+ # @return [String]
3538
+ attr_accessor :time_zone
3539
+
3540
+ # Output only. The timestamp of when the WorkflowConfig was last updated.
3541
+ # Corresponds to the JSON property `updateTime`
3542
+ # @return [String]
3543
+ attr_accessor :update_time
3544
+
3545
+ def initialize(**args)
3546
+ update!(**args)
3547
+ end
3548
+
3549
+ # Update properties of this object
3550
+ def update!(**args)
3551
+ @create_time = args[:create_time] if args.key?(:create_time)
3552
+ @cron_schedule = args[:cron_schedule] if args.key?(:cron_schedule)
3553
+ @disabled = args[:disabled] if args.key?(:disabled)
3554
+ @internal_metadata = args[:internal_metadata] if args.key?(:internal_metadata)
3555
+ @invocation_config = args[:invocation_config] if args.key?(:invocation_config)
3556
+ @name = args[:name] if args.key?(:name)
3557
+ @recent_scheduled_execution_records = args[:recent_scheduled_execution_records] if args.key?(:recent_scheduled_execution_records)
3558
+ @release_config = args[:release_config] if args.key?(:release_config)
3559
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
3560
+ @update_time = args[:update_time] if args.key?(:update_time)
3561
+ end
3562
+ end
3563
+
3564
+ # Represents a single invocation of a compilation result.
3565
+ class WorkflowInvocation
3566
+ include Google::Apis::Core::Hashable
3567
+
3568
+ # Immutable. The name of the compilation result to use for this invocation. Must
3569
+ # be in the format `projects/*/locations/*/repositories/*/compilationResults/*`.
3570
+ # Corresponds to the JSON property `compilationResult`
3571
+ # @return [String]
3572
+ attr_accessor :compilation_result
3573
+
3574
+ # Describes encryption state of a resource.
3575
+ # Corresponds to the JSON property `dataEncryptionState`
3576
+ # @return [Google::Apis::DataformV1::DataEncryptionState]
3577
+ attr_accessor :data_encryption_state
3578
+
3579
+ # Output only. All the metadata information that is used internally to serve the
3580
+ # resource. For example: timestamps, flags, status fields, etc. The format of
3581
+ # this field is a JSON string.
3582
+ # Corresponds to the JSON property `internalMetadata`
3583
+ # @return [String]
3584
+ attr_accessor :internal_metadata
3585
+
3586
+ # Includes various configuration options for a workflow invocation. If both `
3587
+ # included_targets` and `included_tags` are unset, all actions will be included.
3588
+ # Corresponds to the JSON property `invocationConfig`
3589
+ # @return [Google::Apis::DataformV1::InvocationConfig]
3590
+ attr_accessor :invocation_config
3591
+
3592
+ # Represents a time interval, encoded as a Timestamp start (inclusive) and a
3593
+ # Timestamp end (exclusive). The start must be less than or equal to the end.
3594
+ # When the start equals the end, the interval is empty (matches no time). When
3595
+ # both start and end are unspecified, the interval matches any time.
3596
+ # Corresponds to the JSON property `invocationTiming`
3597
+ # @return [Google::Apis::DataformV1::Interval]
3598
+ attr_accessor :invocation_timing
3599
+
3600
+ # Output only. The workflow invocation's name.
3601
+ # Corresponds to the JSON property `name`
3602
+ # @return [String]
3603
+ attr_accessor :name
3604
+
3605
+ # Output only. The resolved compilation result that was used to create this
3606
+ # invocation. Will be in the format `projects/*/locations/*/repositories/*/
3607
+ # compilationResults/*`.
3608
+ # Corresponds to the JSON property `resolvedCompilationResult`
3609
+ # @return [String]
3610
+ attr_accessor :resolved_compilation_result
3611
+
3612
+ # Output only. This workflow invocation's current state.
3613
+ # Corresponds to the JSON property `state`
3614
+ # @return [String]
3615
+ attr_accessor :state
3616
+
3617
+ # Immutable. The name of the workflow config to invoke. Must be in the format `
3618
+ # projects/*/locations/*/repositories/*/workflowConfigs/*`.
3619
+ # Corresponds to the JSON property `workflowConfig`
3620
+ # @return [String]
3621
+ attr_accessor :workflow_config
3622
+
3623
+ def initialize(**args)
3624
+ update!(**args)
3625
+ end
3626
+
3627
+ # Update properties of this object
3628
+ def update!(**args)
3629
+ @compilation_result = args[:compilation_result] if args.key?(:compilation_result)
3630
+ @data_encryption_state = args[:data_encryption_state] if args.key?(:data_encryption_state)
3631
+ @internal_metadata = args[:internal_metadata] if args.key?(:internal_metadata)
3632
+ @invocation_config = args[:invocation_config] if args.key?(:invocation_config)
3633
+ @invocation_timing = args[:invocation_timing] if args.key?(:invocation_timing)
3634
+ @name = args[:name] if args.key?(:name)
3635
+ @resolved_compilation_result = args[:resolved_compilation_result] if args.key?(:resolved_compilation_result)
3636
+ @state = args[:state] if args.key?(:state)
3637
+ @workflow_config = args[:workflow_config] if args.key?(:workflow_config)
3638
+ end
3639
+ end
3640
+
3641
+ # Represents a single action in a workflow invocation.
3642
+ class WorkflowInvocationAction
3643
+ include Google::Apis::Core::Hashable
3644
+
3645
+ # Represents a workflow action that will run against BigQuery.
3646
+ # Corresponds to the JSON property `bigqueryAction`
3647
+ # @return [Google::Apis::DataformV1::BigQueryAction]
3648
+ attr_accessor :bigquery_action
3649
+
3650
+ # Represents an action identifier. If the action writes output, the output will
3651
+ # be written to the referenced database object.
3652
+ # Corresponds to the JSON property `canonicalTarget`
3653
+ # @return [Google::Apis::DataformV1::Target]
3654
+ attr_accessor :canonical_target
3655
+
3656
+ # Represents a workflow action that will run a Data Preparation.
3657
+ # Corresponds to the JSON property `dataPreparationAction`
3658
+ # @return [Google::Apis::DataformV1::DataPreparationAction]
3659
+ attr_accessor :data_preparation_action
3660
+
3661
+ # Output only. If and only if action's state is FAILED a failure reason is set.
3662
+ # Corresponds to the JSON property `failureReason`
3663
+ # @return [String]
3664
+ attr_accessor :failure_reason
3665
+
3666
+ # Output only. All the metadata information that is used internally to serve the
3667
+ # resource. For example: timestamps, flags, status fields, etc. The format of
3668
+ # this field is a JSON string.
3669
+ # Corresponds to the JSON property `internalMetadata`
3670
+ # @return [String]
3671
+ attr_accessor :internal_metadata
3672
+
3673
+ # Represents a time interval, encoded as a Timestamp start (inclusive) and a
3674
+ # Timestamp end (exclusive). The start must be less than or equal to the end.
3675
+ # When the start equals the end, the interval is empty (matches no time). When
3676
+ # both start and end are unspecified, the interval matches any time.
3677
+ # Corresponds to the JSON property `invocationTiming`
3678
+ # @return [Google::Apis::DataformV1::Interval]
3679
+ attr_accessor :invocation_timing
3680
+
3681
+ # Represents a workflow action that will run against a Notebook runtime.
3682
+ # Corresponds to the JSON property `notebookAction`
3683
+ # @return [Google::Apis::DataformV1::NotebookAction]
3684
+ attr_accessor :notebook_action
3685
+
3686
+ # Output only. This action's current state.
3687
+ # Corresponds to the JSON property `state`
3688
+ # @return [String]
3689
+ attr_accessor :state
3690
+
3691
+ # Represents an action identifier. If the action writes output, the output will
3692
+ # be written to the referenced database object.
3693
+ # Corresponds to the JSON property `target`
3694
+ # @return [Google::Apis::DataformV1::Target]
3695
+ attr_accessor :target
3696
+
3697
+ def initialize(**args)
3698
+ update!(**args)
3699
+ end
3700
+
3701
+ # Update properties of this object
3702
+ def update!(**args)
3703
+ @bigquery_action = args[:bigquery_action] if args.key?(:bigquery_action)
3704
+ @canonical_target = args[:canonical_target] if args.key?(:canonical_target)
3705
+ @data_preparation_action = args[:data_preparation_action] if args.key?(:data_preparation_action)
3706
+ @failure_reason = args[:failure_reason] if args.key?(:failure_reason)
3707
+ @internal_metadata = args[:internal_metadata] if args.key?(:internal_metadata)
3708
+ @invocation_timing = args[:invocation_timing] if args.key?(:invocation_timing)
3709
+ @notebook_action = args[:notebook_action] if args.key?(:notebook_action)
3710
+ @state = args[:state] if args.key?(:state)
3711
+ @target = args[:target] if args.key?(:target)
3712
+ end
3713
+ end
3714
+
3715
+ # Represents a Dataform Git workspace.
3716
+ class Workspace
3717
+ include Google::Apis::Core::Hashable
3718
+
3719
+ # Output only. The timestamp of when the workspace was created.
3720
+ # Corresponds to the JSON property `createTime`
3721
+ # @return [String]
3722
+ attr_accessor :create_time
3723
+
3724
+ # Describes encryption state of a resource.
3725
+ # Corresponds to the JSON property `dataEncryptionState`
3726
+ # @return [Google::Apis::DataformV1::DataEncryptionState]
3727
+ attr_accessor :data_encryption_state
3728
+
3729
+ # Output only. All the metadata information that is used internally to serve the
3730
+ # resource. For example: timestamps, flags, status fields, etc. The format of
3731
+ # this field is a JSON string.
3732
+ # Corresponds to the JSON property `internalMetadata`
3733
+ # @return [String]
3734
+ attr_accessor :internal_metadata
3735
+
3736
+ # Identifier. The workspace's name.
3737
+ # Corresponds to the JSON property `name`
3738
+ # @return [String]
3739
+ attr_accessor :name
3740
+
3741
+ def initialize(**args)
3742
+ update!(**args)
3743
+ end
3744
+
3745
+ # Update properties of this object
3746
+ def update!(**args)
3747
+ @create_time = args[:create_time] if args.key?(:create_time)
3748
+ @data_encryption_state = args[:data_encryption_state] if args.key?(:data_encryption_state)
3749
+ @internal_metadata = args[:internal_metadata] if args.key?(:internal_metadata)
3750
+ @name = args[:name] if args.key?(:name)
3751
+ end
3752
+ end
3753
+
3754
+ # Configures workspace compilation overrides for a repository.
3755
+ class WorkspaceCompilationOverrides
3756
+ include Google::Apis::Core::Hashable
3757
+
3758
+ # Optional. The default database (Google Cloud project ID).
3759
+ # Corresponds to the JSON property `defaultDatabase`
3760
+ # @return [String]
3761
+ attr_accessor :default_database
3762
+
3763
+ # Optional. The suffix that should be appended to all schema (BigQuery dataset
3764
+ # ID) names.
3765
+ # Corresponds to the JSON property `schemaSuffix`
3766
+ # @return [String]
3767
+ attr_accessor :schema_suffix
3768
+
3769
+ # Optional. The prefix that should be prepended to all table names.
3770
+ # Corresponds to the JSON property `tablePrefix`
3771
+ # @return [String]
3772
+ attr_accessor :table_prefix
3773
+
3774
+ def initialize(**args)
3775
+ update!(**args)
3776
+ end
3777
+
3778
+ # Update properties of this object
3779
+ def update!(**args)
3780
+ @default_database = args[:default_database] if args.key?(:default_database)
3781
+ @schema_suffix = args[:schema_suffix] if args.key?(:schema_suffix)
3782
+ @table_prefix = args[:table_prefix] if args.key?(:table_prefix)
3783
+ end
3784
+ end
3785
+
3786
+ # Represents the write file operation (for files added or modified).
3787
+ class WriteFile
3788
+ include Google::Apis::Core::Hashable
3789
+
3790
+ # The file's contents.
3791
+ # Corresponds to the JSON property `contents`
3792
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
3793
+ # @return [String]
3794
+ attr_accessor :contents
3795
+
3796
+ def initialize(**args)
3797
+ update!(**args)
3798
+ end
3799
+
3800
+ # Update properties of this object
3801
+ def update!(**args)
3802
+ @contents = args[:contents] if args.key?(:contents)
3803
+ end
3804
+ end
3805
+
3806
+ # `WriteFile` request message.
3807
+ class WriteFileRequest
3808
+ include Google::Apis::Core::Hashable
3809
+
3810
+ # Required. The file's contents.
3811
+ # Corresponds to the JSON property `contents`
3812
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
3813
+ # @return [String]
3814
+ attr_accessor :contents
3815
+
3816
+ # Required. The file.
3817
+ # Corresponds to the JSON property `path`
3818
+ # @return [String]
3819
+ attr_accessor :path
3820
+
3821
+ def initialize(**args)
3822
+ update!(**args)
3823
+ end
3824
+
3825
+ # Update properties of this object
3826
+ def update!(**args)
3827
+ @contents = args[:contents] if args.key?(:contents)
3828
+ @path = args[:path] if args.key?(:path)
3829
+ end
3830
+ end
3831
+
3832
+ # `WriteFile` response message.
3833
+ class WriteFileResponse
3834
+ include Google::Apis::Core::Hashable
3835
+
3836
+ def initialize(**args)
3837
+ update!(**args)
3838
+ end
3839
+
3840
+ # Update properties of this object
3841
+ def update!(**args)
3842
+ end
3843
+ end
3844
+ end
3845
+ end
3846
+ end