google-apis-datapipelines_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,897 @@
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 DatapipelinesV1
24
+
25
+ # Pipeline job details specific to the Dataflow API. This is encapsulated here
26
+ # to allow for more executors to store their specific details separately.
27
+ class GoogleCloudDatapipelinesV1DataflowJobDetails
28
+ include Google::Apis::Core::Hashable
29
+
30
+ # Output only. The current number of workers used to run the jobs. Only set to a
31
+ # value if the job is still running.
32
+ # Corresponds to the JSON property `currentWorkers`
33
+ # @return [Fixnum]
34
+ attr_accessor :current_workers
35
+
36
+ # Cached version of all the metrics of interest for the job. This value gets
37
+ # stored here when the job is terminated. As long as the job is running, this
38
+ # field is populated from the Dataflow API.
39
+ # Corresponds to the JSON property `resourceInfo`
40
+ # @return [Hash<String,Float>]
41
+ attr_accessor :resource_info
42
+
43
+ # The version of the SDK used to run the job.
44
+ # Corresponds to the JSON property `sdkVersion`
45
+ # @return [Google::Apis::DatapipelinesV1::GoogleCloudDatapipelinesV1SdkVersion]
46
+ attr_accessor :sdk_version
47
+
48
+ def initialize(**args)
49
+ update!(**args)
50
+ end
51
+
52
+ # Update properties of this object
53
+ def update!(**args)
54
+ @current_workers = args[:current_workers] if args.key?(:current_workers)
55
+ @resource_info = args[:resource_info] if args.key?(:resource_info)
56
+ @sdk_version = args[:sdk_version] if args.key?(:sdk_version)
57
+ end
58
+ end
59
+
60
+ # The environment values to be set at runtime for a Flex Template.
61
+ class GoogleCloudDatapipelinesV1FlexTemplateRuntimeEnvironment
62
+ include Google::Apis::Core::Hashable
63
+
64
+ # Additional experiment flags for the job.
65
+ # Corresponds to the JSON property `additionalExperiments`
66
+ # @return [Array<String>]
67
+ attr_accessor :additional_experiments
68
+
69
+ # Additional user labels to be specified for the job. Keys and values must
70
+ # follow the restrictions specified in the [labeling restrictions](https://cloud.
71
+ # google.com/compute/docs/labeling-resources#restrictions). An object containing
72
+ # a list of key/value pairs. Example: `` "name": "wrench", "mass": "1kg", "count"
73
+ # : "3" ``.
74
+ # Corresponds to the JSON property `additionalUserLabels`
75
+ # @return [Hash<String,String>]
76
+ attr_accessor :additional_user_labels
77
+
78
+ # Whether to enable Streaming Engine for the job.
79
+ # Corresponds to the JSON property `enableStreamingEngine`
80
+ # @return [Boolean]
81
+ attr_accessor :enable_streaming_engine
82
+ alias_method :enable_streaming_engine?, :enable_streaming_engine
83
+
84
+ # Set FlexRS goal for the job. https://cloud.google.com/dataflow/docs/guides/
85
+ # flexrs
86
+ # Corresponds to the JSON property `flexrsGoal`
87
+ # @return [String]
88
+ attr_accessor :flexrs_goal
89
+
90
+ # Configuration for VM IPs.
91
+ # Corresponds to the JSON property `ipConfiguration`
92
+ # @return [String]
93
+ attr_accessor :ip_configuration
94
+
95
+ # Name for the Cloud KMS key for the job. Key format is: projects//locations//
96
+ # keyRings//cryptoKeys/
97
+ # Corresponds to the JSON property `kmsKeyName`
98
+ # @return [String]
99
+ attr_accessor :kms_key_name
100
+
101
+ # The machine type to use for the job. Defaults to the value from the template
102
+ # if not specified.
103
+ # Corresponds to the JSON property `machineType`
104
+ # @return [String]
105
+ attr_accessor :machine_type
106
+
107
+ # The maximum number of Compute Engine instances to be made available to your
108
+ # pipeline during execution, from 1 to 1000.
109
+ # Corresponds to the JSON property `maxWorkers`
110
+ # @return [Fixnum]
111
+ attr_accessor :max_workers
112
+
113
+ # Network to which VMs will be assigned. If empty or unspecified, the service
114
+ # will use the network "default".
115
+ # Corresponds to the JSON property `network`
116
+ # @return [String]
117
+ attr_accessor :network
118
+
119
+ # The initial number of Compute Engine instances for the job.
120
+ # Corresponds to the JSON property `numWorkers`
121
+ # @return [Fixnum]
122
+ attr_accessor :num_workers
123
+
124
+ # The email address of the service account to run the job as.
125
+ # Corresponds to the JSON property `serviceAccountEmail`
126
+ # @return [String]
127
+ attr_accessor :service_account_email
128
+
129
+ # Subnetwork to which VMs will be assigned, if desired. You can specify a
130
+ # subnetwork using either a complete URL or an abbreviated path. Expected to be
131
+ # of the form "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/
132
+ # regions/REGION/subnetworks/SUBNETWORK" or "regions/REGION/subnetworks/
133
+ # SUBNETWORK". If the subnetwork is located in a Shared VPC network, you must
134
+ # use the complete URL.
135
+ # Corresponds to the JSON property `subnetwork`
136
+ # @return [String]
137
+ attr_accessor :subnetwork
138
+
139
+ # The Cloud Storage path to use for temporary files. Must be a valid Cloud
140
+ # Storage URL, beginning with `gs://`.
141
+ # Corresponds to the JSON property `tempLocation`
142
+ # @return [String]
143
+ attr_accessor :temp_location
144
+
145
+ # The Compute Engine region (https://cloud.google.com/compute/docs/regions-zones/
146
+ # regions-zones) in which worker processing should occur, e.g. "us-west1".
147
+ # Mutually exclusive with worker_zone. If neither worker_region nor worker_zone
148
+ # is specified, defaults to the control plane region.
149
+ # Corresponds to the JSON property `workerRegion`
150
+ # @return [String]
151
+ attr_accessor :worker_region
152
+
153
+ # The Compute Engine zone (https://cloud.google.com/compute/docs/regions-zones/
154
+ # regions-zones) in which worker processing should occur, e.g. "us-west1-a".
155
+ # Mutually exclusive with worker_region. If neither worker_region nor
156
+ # worker_zone is specified, a zone in the control plane region is chosen based
157
+ # on available capacity. If both `worker_zone` and `zone` are set, `worker_zone`
158
+ # takes precedence.
159
+ # Corresponds to the JSON property `workerZone`
160
+ # @return [String]
161
+ attr_accessor :worker_zone
162
+
163
+ # The Compute Engine [availability zone](https://cloud.google.com/compute/docs/
164
+ # regions-zones/regions-zones) for launching worker instances to run your
165
+ # pipeline. In the future, worker_zone will take precedence.
166
+ # Corresponds to the JSON property `zone`
167
+ # @return [String]
168
+ attr_accessor :zone
169
+
170
+ def initialize(**args)
171
+ update!(**args)
172
+ end
173
+
174
+ # Update properties of this object
175
+ def update!(**args)
176
+ @additional_experiments = args[:additional_experiments] if args.key?(:additional_experiments)
177
+ @additional_user_labels = args[:additional_user_labels] if args.key?(:additional_user_labels)
178
+ @enable_streaming_engine = args[:enable_streaming_engine] if args.key?(:enable_streaming_engine)
179
+ @flexrs_goal = args[:flexrs_goal] if args.key?(:flexrs_goal)
180
+ @ip_configuration = args[:ip_configuration] if args.key?(:ip_configuration)
181
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
182
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
183
+ @max_workers = args[:max_workers] if args.key?(:max_workers)
184
+ @network = args[:network] if args.key?(:network)
185
+ @num_workers = args[:num_workers] if args.key?(:num_workers)
186
+ @service_account_email = args[:service_account_email] if args.key?(:service_account_email)
187
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
188
+ @temp_location = args[:temp_location] if args.key?(:temp_location)
189
+ @worker_region = args[:worker_region] if args.key?(:worker_region)
190
+ @worker_zone = args[:worker_zone] if args.key?(:worker_zone)
191
+ @zone = args[:zone] if args.key?(:zone)
192
+ end
193
+ end
194
+
195
+ # Definition of the job information maintained by the pipeline. Fields in this
196
+ # entity are retrieved from the executor API (e.g. Dataflow API).
197
+ class GoogleCloudDatapipelinesV1Job
198
+ include Google::Apis::Core::Hashable
199
+
200
+ # Output only. The time of job creation.
201
+ # Corresponds to the JSON property `createTime`
202
+ # @return [String]
203
+ attr_accessor :create_time
204
+
205
+ # Pipeline job details specific to the Dataflow API. This is encapsulated here
206
+ # to allow for more executors to store their specific details separately.
207
+ # Corresponds to the JSON property `dataflowJobDetails`
208
+ # @return [Google::Apis::DatapipelinesV1::GoogleCloudDatapipelinesV1DataflowJobDetails]
209
+ attr_accessor :dataflow_job_details
210
+
211
+ # Output only. The time of job termination. This is absent if the job is still
212
+ # running.
213
+ # Corresponds to the JSON property `endTime`
214
+ # @return [String]
215
+ attr_accessor :end_time
216
+
217
+ # Output only. The internal ID for the job.
218
+ # Corresponds to the JSON property `id`
219
+ # @return [String]
220
+ attr_accessor :id
221
+
222
+ # Required. The fully qualified resource name for the job.
223
+ # Corresponds to the JSON property `name`
224
+ # @return [String]
225
+ attr_accessor :name
226
+
227
+ # The current state of the job.
228
+ # Corresponds to the JSON property `state`
229
+ # @return [String]
230
+ attr_accessor :state
231
+
232
+ # The `Status` type defines a logical error model that is suitable for different
233
+ # programming environments, including REST APIs and RPC APIs. It is used by [
234
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
235
+ # data: error code, error message, and error details. You can find out more
236
+ # about this error model and how to work with it in the [API Design Guide](https:
237
+ # //cloud.google.com/apis/design/errors).
238
+ # Corresponds to the JSON property `status`
239
+ # @return [Google::Apis::DatapipelinesV1::GoogleRpcStatus]
240
+ attr_accessor :status
241
+
242
+ def initialize(**args)
243
+ update!(**args)
244
+ end
245
+
246
+ # Update properties of this object
247
+ def update!(**args)
248
+ @create_time = args[:create_time] if args.key?(:create_time)
249
+ @dataflow_job_details = args[:dataflow_job_details] if args.key?(:dataflow_job_details)
250
+ @end_time = args[:end_time] if args.key?(:end_time)
251
+ @id = args[:id] if args.key?(:id)
252
+ @name = args[:name] if args.key?(:name)
253
+ @state = args[:state] if args.key?(:state)
254
+ @status = args[:status] if args.key?(:status)
255
+ end
256
+ end
257
+
258
+ # Launch Flex Template parameter.
259
+ class GoogleCloudDatapipelinesV1LaunchFlexTemplateParameter
260
+ include Google::Apis::Core::Hashable
261
+
262
+ # Cloud Storage path to a file with a JSON-serialized ContainerSpec as content.
263
+ # Corresponds to the JSON property `containerSpecGcsPath`
264
+ # @return [String]
265
+ attr_accessor :container_spec_gcs_path
266
+
267
+ # The environment values to be set at runtime for a Flex Template.
268
+ # Corresponds to the JSON property `environment`
269
+ # @return [Google::Apis::DatapipelinesV1::GoogleCloudDatapipelinesV1FlexTemplateRuntimeEnvironment]
270
+ attr_accessor :environment
271
+
272
+ # Required. The job name to use for the created job. For an update job request,
273
+ # the job name should be the same as the existing running job.
274
+ # Corresponds to the JSON property `jobName`
275
+ # @return [String]
276
+ attr_accessor :job_name
277
+
278
+ # Launch options for this Flex Template job. This is a common set of options
279
+ # across languages and templates. This should not be used to pass job parameters.
280
+ # Corresponds to the JSON property `launchOptions`
281
+ # @return [Hash<String,String>]
282
+ attr_accessor :launch_options
283
+
284
+ # The parameters for the Flex Template. Example: ``"num_workers":"5"``
285
+ # Corresponds to the JSON property `parameters`
286
+ # @return [Hash<String,String>]
287
+ attr_accessor :parameters
288
+
289
+ # Use this to pass transform name mappings for streaming update jobs. Example: ``
290
+ # "oldTransformName":"newTransformName",...``
291
+ # Corresponds to the JSON property `transformNameMappings`
292
+ # @return [Hash<String,String>]
293
+ attr_accessor :transform_name_mappings
294
+
295
+ # Set this to true if you are sending a request to update a running streaming
296
+ # job. When set, the job name should be the same as the running job.
297
+ # Corresponds to the JSON property `update`
298
+ # @return [Boolean]
299
+ attr_accessor :update
300
+ alias_method :update?, :update
301
+
302
+ def initialize(**args)
303
+ update!(**args)
304
+ end
305
+
306
+ # Update properties of this object
307
+ def update!(**args)
308
+ @container_spec_gcs_path = args[:container_spec_gcs_path] if args.key?(:container_spec_gcs_path)
309
+ @environment = args[:environment] if args.key?(:environment)
310
+ @job_name = args[:job_name] if args.key?(:job_name)
311
+ @launch_options = args[:launch_options] if args.key?(:launch_options)
312
+ @parameters = args[:parameters] if args.key?(:parameters)
313
+ @transform_name_mappings = args[:transform_name_mappings] if args.key?(:transform_name_mappings)
314
+ @update = args[:update] if args.key?(:update)
315
+ end
316
+ end
317
+
318
+ # A request to launch a Dataflow job from a Flex Template.
319
+ class GoogleCloudDatapipelinesV1LaunchFlexTemplateRequest
320
+ include Google::Apis::Core::Hashable
321
+
322
+ # Launch Flex Template parameter.
323
+ # Corresponds to the JSON property `launchParameter`
324
+ # @return [Google::Apis::DatapipelinesV1::GoogleCloudDatapipelinesV1LaunchFlexTemplateParameter]
325
+ attr_accessor :launch_parameter
326
+
327
+ # Required. The [regional endpoint] (https://cloud.google.com/dataflow/docs/
328
+ # concepts/regional-endpoints) to which to direct the request. For example, `us-
329
+ # central1`, `us-west1`.
330
+ # Corresponds to the JSON property `location`
331
+ # @return [String]
332
+ attr_accessor :location
333
+
334
+ # Required. The ID of the Cloud Platform project that the job belongs to.
335
+ # Corresponds to the JSON property `projectId`
336
+ # @return [String]
337
+ attr_accessor :project_id
338
+
339
+ # If true, the request is validated but not actually executed. Defaults to false.
340
+ # Corresponds to the JSON property `validateOnly`
341
+ # @return [Boolean]
342
+ attr_accessor :validate_only
343
+ alias_method :validate_only?, :validate_only
344
+
345
+ def initialize(**args)
346
+ update!(**args)
347
+ end
348
+
349
+ # Update properties of this object
350
+ def update!(**args)
351
+ @launch_parameter = args[:launch_parameter] if args.key?(:launch_parameter)
352
+ @location = args[:location] if args.key?(:location)
353
+ @project_id = args[:project_id] if args.key?(:project_id)
354
+ @validate_only = args[:validate_only] if args.key?(:validate_only)
355
+ end
356
+ end
357
+
358
+ # Parameters to provide to the template being launched.
359
+ class GoogleCloudDatapipelinesV1LaunchTemplateParameters
360
+ include Google::Apis::Core::Hashable
361
+
362
+ # The environment values to set at runtime.
363
+ # Corresponds to the JSON property `environment`
364
+ # @return [Google::Apis::DatapipelinesV1::GoogleCloudDatapipelinesV1RuntimeEnvironment]
365
+ attr_accessor :environment
366
+
367
+ # Required. The job name to use for the created job.
368
+ # Corresponds to the JSON property `jobName`
369
+ # @return [String]
370
+ attr_accessor :job_name
371
+
372
+ # The runtime parameters to pass to the job.
373
+ # Corresponds to the JSON property `parameters`
374
+ # @return [Hash<String,String>]
375
+ attr_accessor :parameters
376
+
377
+ # Map of transform name prefixes of the job to be replaced to the corresponding
378
+ # name prefixes of the new job. Only applicable when updating a pipeline.
379
+ # Corresponds to the JSON property `transformNameMapping`
380
+ # @return [Hash<String,String>]
381
+ attr_accessor :transform_name_mapping
382
+
383
+ # If set, replace the existing pipeline with the name specified by jobName with
384
+ # this pipeline, preserving state.
385
+ # Corresponds to the JSON property `update`
386
+ # @return [Boolean]
387
+ attr_accessor :update
388
+ alias_method :update?, :update
389
+
390
+ def initialize(**args)
391
+ update!(**args)
392
+ end
393
+
394
+ # Update properties of this object
395
+ def update!(**args)
396
+ @environment = args[:environment] if args.key?(:environment)
397
+ @job_name = args[:job_name] if args.key?(:job_name)
398
+ @parameters = args[:parameters] if args.key?(:parameters)
399
+ @transform_name_mapping = args[:transform_name_mapping] if args.key?(:transform_name_mapping)
400
+ @update = args[:update] if args.key?(:update)
401
+ end
402
+ end
403
+
404
+ # A request to launch a template.
405
+ class GoogleCloudDatapipelinesV1LaunchTemplateRequest
406
+ include Google::Apis::Core::Hashable
407
+
408
+ # A Cloud Storage path to the template from which to create the job. Must be a
409
+ # valid Cloud Storage URL, beginning with 'gs://'.
410
+ # Corresponds to the JSON property `gcsPath`
411
+ # @return [String]
412
+ attr_accessor :gcs_path
413
+
414
+ # Parameters to provide to the template being launched.
415
+ # Corresponds to the JSON property `launchParameters`
416
+ # @return [Google::Apis::DatapipelinesV1::GoogleCloudDatapipelinesV1LaunchTemplateParameters]
417
+ attr_accessor :launch_parameters
418
+
419
+ # The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/
420
+ # regional-endpoints) to which to direct the request.
421
+ # Corresponds to the JSON property `location`
422
+ # @return [String]
423
+ attr_accessor :location
424
+
425
+ # Required. The ID of the Cloud Platform project that the job belongs to.
426
+ # Corresponds to the JSON property `projectId`
427
+ # @return [String]
428
+ attr_accessor :project_id
429
+
430
+ # If true, the request is validated but not actually executed. Defaults to false.
431
+ # Corresponds to the JSON property `validateOnly`
432
+ # @return [Boolean]
433
+ attr_accessor :validate_only
434
+ alias_method :validate_only?, :validate_only
435
+
436
+ def initialize(**args)
437
+ update!(**args)
438
+ end
439
+
440
+ # Update properties of this object
441
+ def update!(**args)
442
+ @gcs_path = args[:gcs_path] if args.key?(:gcs_path)
443
+ @launch_parameters = args[:launch_parameters] if args.key?(:launch_parameters)
444
+ @location = args[:location] if args.key?(:location)
445
+ @project_id = args[:project_id] if args.key?(:project_id)
446
+ @validate_only = args[:validate_only] if args.key?(:validate_only)
447
+ end
448
+ end
449
+
450
+ # Response message for ListPipelines.
451
+ class GoogleCloudDatapipelinesV1ListPipelinesResponse
452
+ include Google::Apis::Core::Hashable
453
+
454
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
455
+ # field is omitted, there are no subsequent pages.
456
+ # Corresponds to the JSON property `nextPageToken`
457
+ # @return [String]
458
+ attr_accessor :next_page_token
459
+
460
+ # Results that matched the filter criteria and were accessible to the caller.
461
+ # Results are always in descending order of pipeline creation date.
462
+ # Corresponds to the JSON property `pipelines`
463
+ # @return [Array<Google::Apis::DatapipelinesV1::GoogleCloudDatapipelinesV1Pipeline>]
464
+ attr_accessor :pipelines
465
+
466
+ def initialize(**args)
467
+ update!(**args)
468
+ end
469
+
470
+ # Update properties of this object
471
+ def update!(**args)
472
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
473
+ @pipelines = args[:pipelines] if args.key?(:pipelines)
474
+ end
475
+ end
476
+
477
+ # The main pipeline entity and all the needed metadata to launch and manage
478
+ # linked jobs.
479
+ class GoogleCloudDatapipelinesV1Pipeline
480
+ include Google::Apis::Core::Hashable
481
+
482
+ # Output only. Immutable. The timestamp when the pipeline was initially created.
483
+ # Set by the Data Pipelines service.
484
+ # Corresponds to the JSON property `createTime`
485
+ # @return [String]
486
+ attr_accessor :create_time
487
+
488
+ # Required. The display name of the pipeline. It can contain only letters ([A-Za-
489
+ # z]), numbers ([0-9]), hyphens (-), and underscores (_).
490
+ # Corresponds to the JSON property `displayName`
491
+ # @return [String]
492
+ attr_accessor :display_name
493
+
494
+ # Output only. Number of jobs.
495
+ # Corresponds to the JSON property `jobCount`
496
+ # @return [Fixnum]
497
+ attr_accessor :job_count
498
+
499
+ # Output only. Immutable. The timestamp when the pipeline was last modified. Set
500
+ # by the Data Pipelines service.
501
+ # Corresponds to the JSON property `lastUpdateTime`
502
+ # @return [String]
503
+ attr_accessor :last_update_time
504
+
505
+ # The pipeline name. For example: `projects/PROJECT_ID/locations/LOCATION_ID/
506
+ # pipelines/PIPELINE_ID`. * `PROJECT_ID` can contain letters ([A-Za-z]), numbers
507
+ # ([0-9]), hyphens (-), colons (:), and periods (.). For more information, see [
508
+ # Identifying projects](https://cloud.google.com/resource-manager/docs/creating-
509
+ # managing-projects#identifying_projects) * `LOCATION_ID` is the canonical ID
510
+ # for the pipeline's location. The list of available locations can be obtained
511
+ # by calling ListLocations. Note that the Data Pipelines service is not
512
+ # available in all regions. It depends on Cloud Scheduler, an App Engine
513
+ # application, so it's only available in [App Engine regions](https://cloud.
514
+ # google.com/about/locations#region). * `PIPELINE_ID` is the ID of the pipeline.
515
+ # Must be unique for the selected project and location.
516
+ # Corresponds to the JSON property `name`
517
+ # @return [String]
518
+ attr_accessor :name
519
+
520
+ # Details of the schedule the pipeline runs on.
521
+ # Corresponds to the JSON property `scheduleInfo`
522
+ # @return [Google::Apis::DatapipelinesV1::GoogleCloudDatapipelinesV1ScheduleSpec]
523
+ attr_accessor :schedule_info
524
+
525
+ # Optional. A service account email to be used with the Cloud Scheduler job. If
526
+ # not specified, the default compute engine service account will be used.
527
+ # Corresponds to the JSON property `schedulerServiceAccountEmail`
528
+ # @return [String]
529
+ attr_accessor :scheduler_service_account_email
530
+
531
+ # Required. The state of the pipeline. When the pipeline is created, the state
532
+ # is set to 'PIPELINE_STATE_ACTIVE' by default. State changes can be requested
533
+ # by setting the state to stopping, paused, or resuming. State cannot be changed
534
+ # through UpdatePipeline requests.
535
+ # Corresponds to the JSON property `state`
536
+ # @return [String]
537
+ attr_accessor :state
538
+
539
+ # Required. The type of the pipeline. This field affects the scheduling of the
540
+ # pipeline and the type of metrics to show for the pipeline.
541
+ # Corresponds to the JSON property `type`
542
+ # @return [String]
543
+ attr_accessor :type
544
+
545
+ # Workload details for creating the pipeline jobs.
546
+ # Corresponds to the JSON property `workload`
547
+ # @return [Google::Apis::DatapipelinesV1::GoogleCloudDatapipelinesV1Workload]
548
+ attr_accessor :workload
549
+
550
+ def initialize(**args)
551
+ update!(**args)
552
+ end
553
+
554
+ # Update properties of this object
555
+ def update!(**args)
556
+ @create_time = args[:create_time] if args.key?(:create_time)
557
+ @display_name = args[:display_name] if args.key?(:display_name)
558
+ @job_count = args[:job_count] if args.key?(:job_count)
559
+ @last_update_time = args[:last_update_time] if args.key?(:last_update_time)
560
+ @name = args[:name] if args.key?(:name)
561
+ @schedule_info = args[:schedule_info] if args.key?(:schedule_info)
562
+ @scheduler_service_account_email = args[:scheduler_service_account_email] if args.key?(:scheduler_service_account_email)
563
+ @state = args[:state] if args.key?(:state)
564
+ @type = args[:type] if args.key?(:type)
565
+ @workload = args[:workload] if args.key?(:workload)
566
+ end
567
+ end
568
+
569
+ # Request message for RunPipeline
570
+ class GoogleCloudDatapipelinesV1RunPipelineRequest
571
+ include Google::Apis::Core::Hashable
572
+
573
+ def initialize(**args)
574
+ update!(**args)
575
+ end
576
+
577
+ # Update properties of this object
578
+ def update!(**args)
579
+ end
580
+ end
581
+
582
+ # Response message for RunPipeline
583
+ class GoogleCloudDatapipelinesV1RunPipelineResponse
584
+ include Google::Apis::Core::Hashable
585
+
586
+ # Definition of the job information maintained by the pipeline. Fields in this
587
+ # entity are retrieved from the executor API (e.g. Dataflow API).
588
+ # Corresponds to the JSON property `job`
589
+ # @return [Google::Apis::DatapipelinesV1::GoogleCloudDatapipelinesV1Job]
590
+ attr_accessor :job
591
+
592
+ def initialize(**args)
593
+ update!(**args)
594
+ end
595
+
596
+ # Update properties of this object
597
+ def update!(**args)
598
+ @job = args[:job] if args.key?(:job)
599
+ end
600
+ end
601
+
602
+ # The environment values to set at runtime.
603
+ class GoogleCloudDatapipelinesV1RuntimeEnvironment
604
+ include Google::Apis::Core::Hashable
605
+
606
+ # Additional experiment flags for the job.
607
+ # Corresponds to the JSON property `additionalExperiments`
608
+ # @return [Array<String>]
609
+ attr_accessor :additional_experiments
610
+
611
+ # Additional user labels to be specified for the job. Keys and values should
612
+ # follow the restrictions specified in the [labeling restrictions](https://cloud.
613
+ # google.com/compute/docs/labeling-resources#restrictions) page. An object
614
+ # containing a list of key/value pairs. Example: ` "name": "wrench", "mass": "
615
+ # 1kg", "count": "3" `.
616
+ # Corresponds to the JSON property `additionalUserLabels`
617
+ # @return [Hash<String,String>]
618
+ attr_accessor :additional_user_labels
619
+
620
+ # Whether to bypass the safety checks for the job's temporary directory. Use
621
+ # with caution.
622
+ # Corresponds to the JSON property `bypassTempDirValidation`
623
+ # @return [Boolean]
624
+ attr_accessor :bypass_temp_dir_validation
625
+ alias_method :bypass_temp_dir_validation?, :bypass_temp_dir_validation
626
+
627
+ # Whether to enable Streaming Engine for the job.
628
+ # Corresponds to the JSON property `enableStreamingEngine`
629
+ # @return [Boolean]
630
+ attr_accessor :enable_streaming_engine
631
+ alias_method :enable_streaming_engine?, :enable_streaming_engine
632
+
633
+ # Configuration for VM IPs.
634
+ # Corresponds to the JSON property `ipConfiguration`
635
+ # @return [String]
636
+ attr_accessor :ip_configuration
637
+
638
+ # Name for the Cloud KMS key for the job. The key format is: projects//locations/
639
+ # /keyRings//cryptoKeys/
640
+ # Corresponds to the JSON property `kmsKeyName`
641
+ # @return [String]
642
+ attr_accessor :kms_key_name
643
+
644
+ # The machine type to use for the job. Defaults to the value from the template
645
+ # if not specified.
646
+ # Corresponds to the JSON property `machineType`
647
+ # @return [String]
648
+ attr_accessor :machine_type
649
+
650
+ # The maximum number of Compute Engine instances to be made available to your
651
+ # pipeline during execution, from 1 to 1000.
652
+ # Corresponds to the JSON property `maxWorkers`
653
+ # @return [Fixnum]
654
+ attr_accessor :max_workers
655
+
656
+ # Network to which VMs will be assigned. If empty or unspecified, the service
657
+ # will use the network "default".
658
+ # Corresponds to the JSON property `network`
659
+ # @return [String]
660
+ attr_accessor :network
661
+
662
+ # The initial number of Compute Engine instances for the job.
663
+ # Corresponds to the JSON property `numWorkers`
664
+ # @return [Fixnum]
665
+ attr_accessor :num_workers
666
+
667
+ # The email address of the service account to run the job as.
668
+ # Corresponds to the JSON property `serviceAccountEmail`
669
+ # @return [String]
670
+ attr_accessor :service_account_email
671
+
672
+ # Subnetwork to which VMs will be assigned, if desired. You can specify a
673
+ # subnetwork using either a complete URL or an abbreviated path. Expected to be
674
+ # of the form "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/
675
+ # regions/REGION/subnetworks/SUBNETWORK" or "regions/REGION/subnetworks/
676
+ # SUBNETWORK". If the subnetwork is located in a Shared VPC network, you must
677
+ # use the complete URL.
678
+ # Corresponds to the JSON property `subnetwork`
679
+ # @return [String]
680
+ attr_accessor :subnetwork
681
+
682
+ # The Cloud Storage path to use for temporary files. Must be a valid Cloud
683
+ # Storage URL, beginning with `gs://`.
684
+ # Corresponds to the JSON property `tempLocation`
685
+ # @return [String]
686
+ attr_accessor :temp_location
687
+
688
+ # The Compute Engine region (https://cloud.google.com/compute/docs/regions-zones/
689
+ # regions-zones) in which worker processing should occur, e.g. "us-west1".
690
+ # Mutually exclusive with worker_zone. If neither worker_region nor worker_zone
691
+ # is specified, default to the control plane's region.
692
+ # Corresponds to the JSON property `workerRegion`
693
+ # @return [String]
694
+ attr_accessor :worker_region
695
+
696
+ # The Compute Engine zone (https://cloud.google.com/compute/docs/regions-zones/
697
+ # regions-zones) in which worker processing should occur, e.g. "us-west1-a".
698
+ # Mutually exclusive with worker_region. If neither worker_region nor
699
+ # worker_zone is specified, a zone in the control plane's region is chosen based
700
+ # on available capacity. If both `worker_zone` and `zone` are set, `worker_zone`
701
+ # takes precedence.
702
+ # Corresponds to the JSON property `workerZone`
703
+ # @return [String]
704
+ attr_accessor :worker_zone
705
+
706
+ # The Compute Engine [availability zone](https://cloud.google.com/compute/docs/
707
+ # regions-zones/regions-zones) for launching worker instances to run your
708
+ # pipeline. In the future, worker_zone will take precedence.
709
+ # Corresponds to the JSON property `zone`
710
+ # @return [String]
711
+ attr_accessor :zone
712
+
713
+ def initialize(**args)
714
+ update!(**args)
715
+ end
716
+
717
+ # Update properties of this object
718
+ def update!(**args)
719
+ @additional_experiments = args[:additional_experiments] if args.key?(:additional_experiments)
720
+ @additional_user_labels = args[:additional_user_labels] if args.key?(:additional_user_labels)
721
+ @bypass_temp_dir_validation = args[:bypass_temp_dir_validation] if args.key?(:bypass_temp_dir_validation)
722
+ @enable_streaming_engine = args[:enable_streaming_engine] if args.key?(:enable_streaming_engine)
723
+ @ip_configuration = args[:ip_configuration] if args.key?(:ip_configuration)
724
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
725
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
726
+ @max_workers = args[:max_workers] if args.key?(:max_workers)
727
+ @network = args[:network] if args.key?(:network)
728
+ @num_workers = args[:num_workers] if args.key?(:num_workers)
729
+ @service_account_email = args[:service_account_email] if args.key?(:service_account_email)
730
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
731
+ @temp_location = args[:temp_location] if args.key?(:temp_location)
732
+ @worker_region = args[:worker_region] if args.key?(:worker_region)
733
+ @worker_zone = args[:worker_zone] if args.key?(:worker_zone)
734
+ @zone = args[:zone] if args.key?(:zone)
735
+ end
736
+ end
737
+
738
+ # Details of the schedule the pipeline runs on.
739
+ class GoogleCloudDatapipelinesV1ScheduleSpec
740
+ include Google::Apis::Core::Hashable
741
+
742
+ # Output only. When the next Scheduler job is going to run.
743
+ # Corresponds to the JSON property `nextJobTime`
744
+ # @return [String]
745
+ attr_accessor :next_job_time
746
+
747
+ # Unix-cron format of the schedule. This information is retrieved from the
748
+ # linked Cloud Scheduler.
749
+ # Corresponds to the JSON property `schedule`
750
+ # @return [String]
751
+ attr_accessor :schedule
752
+
753
+ # Timezone ID. This matches the timezone IDs used by the Cloud Scheduler API. If
754
+ # empty, UTC time is assumed.
755
+ # Corresponds to the JSON property `timeZone`
756
+ # @return [String]
757
+ attr_accessor :time_zone
758
+
759
+ def initialize(**args)
760
+ update!(**args)
761
+ end
762
+
763
+ # Update properties of this object
764
+ def update!(**args)
765
+ @next_job_time = args[:next_job_time] if args.key?(:next_job_time)
766
+ @schedule = args[:schedule] if args.key?(:schedule)
767
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
768
+ end
769
+ end
770
+
771
+ # The version of the SDK used to run the job.
772
+ class GoogleCloudDatapipelinesV1SdkVersion
773
+ include Google::Apis::Core::Hashable
774
+
775
+ # The support status for this SDK version.
776
+ # Corresponds to the JSON property `sdkSupportStatus`
777
+ # @return [String]
778
+ attr_accessor :sdk_support_status
779
+
780
+ # The version of the SDK used to run the job.
781
+ # Corresponds to the JSON property `version`
782
+ # @return [String]
783
+ attr_accessor :version
784
+
785
+ # A readable string describing the version of the SDK.
786
+ # Corresponds to the JSON property `versionDisplayName`
787
+ # @return [String]
788
+ attr_accessor :version_display_name
789
+
790
+ def initialize(**args)
791
+ update!(**args)
792
+ end
793
+
794
+ # Update properties of this object
795
+ def update!(**args)
796
+ @sdk_support_status = args[:sdk_support_status] if args.key?(:sdk_support_status)
797
+ @version = args[:version] if args.key?(:version)
798
+ @version_display_name = args[:version_display_name] if args.key?(:version_display_name)
799
+ end
800
+ end
801
+
802
+ # Request message for StopPipeline.
803
+ class GoogleCloudDatapipelinesV1StopPipelineRequest
804
+ include Google::Apis::Core::Hashable
805
+
806
+ def initialize(**args)
807
+ update!(**args)
808
+ end
809
+
810
+ # Update properties of this object
811
+ def update!(**args)
812
+ end
813
+ end
814
+
815
+ # Workload details for creating the pipeline jobs.
816
+ class GoogleCloudDatapipelinesV1Workload
817
+ include Google::Apis::Core::Hashable
818
+
819
+ # A request to launch a Dataflow job from a Flex Template.
820
+ # Corresponds to the JSON property `dataflowFlexTemplateRequest`
821
+ # @return [Google::Apis::DatapipelinesV1::GoogleCloudDatapipelinesV1LaunchFlexTemplateRequest]
822
+ attr_accessor :dataflow_flex_template_request
823
+
824
+ # A request to launch a template.
825
+ # Corresponds to the JSON property `dataflowLaunchTemplateRequest`
826
+ # @return [Google::Apis::DatapipelinesV1::GoogleCloudDatapipelinesV1LaunchTemplateRequest]
827
+ attr_accessor :dataflow_launch_template_request
828
+
829
+ def initialize(**args)
830
+ update!(**args)
831
+ end
832
+
833
+ # Update properties of this object
834
+ def update!(**args)
835
+ @dataflow_flex_template_request = args[:dataflow_flex_template_request] if args.key?(:dataflow_flex_template_request)
836
+ @dataflow_launch_template_request = args[:dataflow_launch_template_request] if args.key?(:dataflow_launch_template_request)
837
+ end
838
+ end
839
+
840
+ # A generic empty message that you can re-use to avoid defining duplicated empty
841
+ # messages in your APIs. A typical example is to use it as the request or the
842
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
843
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
844
+ # `Empty` is empty JSON object ````.
845
+ class GoogleProtobufEmpty
846
+ include Google::Apis::Core::Hashable
847
+
848
+ def initialize(**args)
849
+ update!(**args)
850
+ end
851
+
852
+ # Update properties of this object
853
+ def update!(**args)
854
+ end
855
+ end
856
+
857
+ # The `Status` type defines a logical error model that is suitable for different
858
+ # programming environments, including REST APIs and RPC APIs. It is used by [
859
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
860
+ # data: error code, error message, and error details. You can find out more
861
+ # about this error model and how to work with it in the [API Design Guide](https:
862
+ # //cloud.google.com/apis/design/errors).
863
+ class GoogleRpcStatus
864
+ include Google::Apis::Core::Hashable
865
+
866
+ # The status code, which should be an enum value of google.rpc.Code.
867
+ # Corresponds to the JSON property `code`
868
+ # @return [Fixnum]
869
+ attr_accessor :code
870
+
871
+ # A list of messages that carry the error details. There is a common set of
872
+ # message types for APIs to use.
873
+ # Corresponds to the JSON property `details`
874
+ # @return [Array<Hash<String,Object>>]
875
+ attr_accessor :details
876
+
877
+ # A developer-facing error message, which should be in English. Any user-facing
878
+ # error message should be localized and sent in the google.rpc.Status.details
879
+ # field, or localized by the client.
880
+ # Corresponds to the JSON property `message`
881
+ # @return [String]
882
+ attr_accessor :message
883
+
884
+ def initialize(**args)
885
+ update!(**args)
886
+ end
887
+
888
+ # Update properties of this object
889
+ def update!(**args)
890
+ @code = args[:code] if args.key?(:code)
891
+ @details = args[:details] if args.key?(:details)
892
+ @message = args[:message] if args.key?(:message)
893
+ end
894
+ end
895
+ end
896
+ end
897
+ end