google-api-client 0.9.15 → 0.9.18

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.
Files changed (119) hide show
  1. checksums.yaml +4 -4
  2. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +35 -0
  3. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +298 -0
  4. data/generated/google/apis/adexchangebuyer2_v2beta1/representations.rb +122 -0
  5. data/generated/google/apis/adexchangebuyer2_v2beta1/service.rb +458 -0
  6. data/generated/google/apis/adexchangebuyer_v1_4.rb +1 -1
  7. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +82 -3
  8. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +33 -0
  9. data/generated/google/apis/adexchangebuyer_v1_4/service.rb +38 -0
  10. data/generated/google/apis/admin_directory_v1.rb +1 -1
  11. data/generated/google/apis/admin_directory_v1/classes.rb +80 -0
  12. data/generated/google/apis/admin_directory_v1/representations.rb +23 -0
  13. data/generated/google/apis/admin_directory_v1/service.rb +39 -0
  14. data/generated/google/apis/adsense_v1_4.rb +1 -1
  15. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  16. data/generated/google/apis/analytics_v3.rb +1 -1
  17. data/generated/google/apis/analytics_v3/classes.rb +11 -5
  18. data/generated/google/apis/analytics_v3/representations.rb +1 -0
  19. data/generated/google/apis/analytics_v3/service.rb +17 -18
  20. data/generated/google/apis/analyticsreporting_v4.rb +1 -1
  21. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  22. data/generated/google/apis/androidenterprise_v1/classes.rb +80 -2
  23. data/generated/google/apis/androidenterprise_v1/representations.rb +30 -0
  24. data/generated/google/apis/androidenterprise_v1/service.rb +55 -6
  25. data/generated/google/apis/androidpublisher_v2.rb +1 -1
  26. data/generated/google/apis/appengine_v1beta5.rb +1 -1
  27. data/generated/google/apis/appengine_v1beta5/classes.rb +1 -1
  28. data/generated/google/apis/appengine_v1beta5/service.rb +36 -0
  29. data/generated/google/apis/appsactivity_v1.rb +1 -1
  30. data/generated/google/apis/bigquery_v2.rb +1 -1
  31. data/generated/google/apis/bigquery_v2/classes.rb +2 -2
  32. data/generated/google/apis/books_v1.rb +1 -1
  33. data/generated/google/apis/books_v1/classes.rb +2 -1
  34. data/generated/google/apis/calendar_v3.rb +1 -1
  35. data/generated/google/apis/classroom_v1.rb +1 -1
  36. data/generated/google/apis/classroom_v1/classes.rb +7 -0
  37. data/generated/google/apis/classroom_v1/representations.rb +1 -0
  38. data/generated/google/apis/classroom_v1/service.rb +25 -15
  39. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  40. data/generated/google/apis/cloudbuild_v1/classes.rb +56 -8
  41. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  42. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +535 -298
  43. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +141 -36
  44. data/generated/google/apis/cloudresourcemanager_v1/service.rb +250 -45
  45. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  46. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +99 -4
  47. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +44 -0
  48. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +24 -33
  49. data/generated/google/apis/compute_beta.rb +1 -1
  50. data/generated/google/apis/compute_beta/classes.rb +44 -29
  51. data/generated/google/apis/compute_beta/representations.rb +1 -0
  52. data/generated/google/apis/compute_beta/service.rb +123 -25
  53. data/generated/google/apis/compute_v1.rb +1 -1
  54. data/generated/google/apis/compute_v1/classes.rb +43 -20
  55. data/generated/google/apis/compute_v1/representations.rb +3 -0
  56. data/generated/google/apis/compute_v1/service.rb +608 -67
  57. data/generated/google/apis/content_v2.rb +1 -1
  58. data/generated/google/apis/dataflow_v1b3.rb +38 -0
  59. data/generated/google/apis/dataflow_v1b3/classes.rb +4009 -0
  60. data/generated/google/apis/dataflow_v1b3/representations.rb +1718 -0
  61. data/generated/google/apis/dataflow_v1b3/service.rb +515 -0
  62. data/generated/google/apis/datastore_v1.rb +1 -1
  63. data/generated/google/apis/dns_v1.rb +1 -1
  64. data/generated/google/apis/doubleclickbidmanager_v1.rb +1 -1
  65. data/generated/google/apis/doubleclickbidmanager_v1/classes.rb +79 -86
  66. data/generated/google/apis/doubleclickbidmanager_v1/representations.rb +25 -28
  67. data/generated/google/apis/doubleclickbidmanager_v1/service.rb +10 -8
  68. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  69. data/generated/google/apis/drive_v2.rb +1 -1
  70. data/generated/google/apis/drive_v2/classes.rb +9 -0
  71. data/generated/google/apis/drive_v2/representations.rb +1 -0
  72. data/generated/google/apis/drive_v2/service.rb +8 -1
  73. data/generated/google/apis/drive_v3.rb +1 -1
  74. data/generated/google/apis/drive_v3/classes.rb +7 -0
  75. data/generated/google/apis/drive_v3/representations.rb +1 -0
  76. data/generated/google/apis/drive_v3/service.rb +8 -1
  77. data/generated/google/apis/genomics_v1.rb +1 -1
  78. data/generated/google/apis/iam_v1.rb +2 -2
  79. data/generated/google/apis/iam_v1/classes.rb +181 -206
  80. data/generated/google/apis/iam_v1/representations.rb +36 -45
  81. data/generated/google/apis/iam_v1/service.rb +101 -67
  82. data/generated/google/apis/identitytoolkit_v3.rb +4 -1
  83. data/generated/google/apis/identitytoolkit_v3/classes.rb +11 -27
  84. data/generated/google/apis/identitytoolkit_v3/representations.rb +2 -16
  85. data/generated/google/apis/language_v1beta1.rb +1 -1
  86. data/generated/google/apis/language_v1beta1/classes.rb +4 -2
  87. data/generated/google/apis/language_v1beta1/service.rb +2 -4
  88. data/generated/google/apis/logging_v2beta1.rb +6 -6
  89. data/generated/google/apis/logging_v2beta1/classes.rb +742 -732
  90. data/generated/google/apis/logging_v2beta1/representations.rb +134 -147
  91. data/generated/google/apis/logging_v2beta1/service.rb +276 -209
  92. data/generated/google/apis/monitoring_v3.rb +1 -1
  93. data/generated/google/apis/monitoring_v3/classes.rb +20 -13
  94. data/generated/google/apis/monitoring_v3/service.rb +1 -1
  95. data/generated/google/apis/oauth2_v2.rb +1 -1
  96. data/generated/google/apis/plus_domains_v1.rb +1 -1
  97. data/generated/google/apis/plus_v1.rb +1 -1
  98. data/generated/google/apis/pubsub_v1.rb +1 -1
  99. data/generated/google/apis/pubsub_v1/classes.rb +10 -9
  100. data/generated/google/apis/pubsub_v1/service.rb +128 -27
  101. data/generated/google/apis/replicapoolupdater_v1beta1.rb +4 -2
  102. data/generated/google/apis/replicapoolupdater_v1beta1/service.rb +3 -1
  103. data/generated/google/apis/sheets_v4.rb +1 -1
  104. data/generated/google/apis/sheets_v4/classes.rb +2 -0
  105. data/generated/google/apis/speech_v1beta1.rb +1 -1
  106. data/generated/google/apis/speech_v1beta1/classes.rb +20 -30
  107. data/generated/google/apis/speech_v1beta1/representations.rb +6 -7
  108. data/generated/google/apis/speech_v1beta1/service.rb +68 -65
  109. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  110. data/generated/google/apis/sqladmin_v1beta4/classes.rb +6 -0
  111. data/generated/google/apis/sqladmin_v1beta4/representations.rb +1 -0
  112. data/generated/google/apis/storage_v1.rb +1 -1
  113. data/generated/google/apis/storage_v1/classes.rb +3 -3
  114. data/generated/google/apis/storage_v1/representations.rb +2 -1
  115. data/generated/google/apis/storage_v1/service.rb +5 -2
  116. data/generated/google/apis/vision_v1.rb +1 -1
  117. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  118. data/lib/google/apis/version.rb +1 -1
  119. metadata +10 -2
@@ -26,7 +26,7 @@ module Google
26
26
  # @see https://developers.google.com/shopping-content
27
27
  module ContentV2
28
28
  VERSION = 'V2'
29
- REVISION = '20160905'
29
+ REVISION = '20160928'
30
30
 
31
31
  # Manage your product listings and accounts for Google Shopping
32
32
  AUTH_CONTENT = 'https://www.googleapis.com/auth/content'
@@ -0,0 +1,38 @@
1
+ # Copyright 2015 Google Inc.
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 'google/apis/dataflow_v1b3/service.rb'
16
+ require 'google/apis/dataflow_v1b3/classes.rb'
17
+ require 'google/apis/dataflow_v1b3/representations.rb'
18
+
19
+ module Google
20
+ module Apis
21
+ # Google Dataflow API
22
+ #
23
+ # Develops and executes data processing patterns like ETL, batch computation,
24
+ # and continuous computation.
25
+ #
26
+ # @see https://cloud.google.com/dataflow
27
+ module DataflowV1b3
28
+ VERSION = 'V1b3'
29
+ REVISION = '20161004'
30
+
31
+ # View and manage your data across Google Cloud Platform services
32
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
33
+
34
+ # View your email address
35
+ AUTH_USERINFO_EMAIL = 'https://www.googleapis.com/auth/userinfo.email'
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,4009 @@
1
+ # Copyright 2015 Google Inc.
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 DataflowV1b3
24
+
25
+ # Request to get updated debug configuration for component.
26
+ class GetDebugConfigRequest
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # The worker id, i.e., VM hostname.
30
+ # Corresponds to the JSON property `workerId`
31
+ # @return [String]
32
+ attr_accessor :worker_id
33
+
34
+ # The internal component id for which debug configuration is requested.
35
+ # Corresponds to the JSON property `componentId`
36
+ # @return [String]
37
+ attr_accessor :component_id
38
+
39
+ def initialize(**args)
40
+ update!(**args)
41
+ end
42
+
43
+ # Update properties of this object
44
+ def update!(**args)
45
+ @worker_id = args[:worker_id] if args.key?(:worker_id)
46
+ @component_id = args[:component_id] if args.key?(:component_id)
47
+ end
48
+ end
49
+
50
+ # Response to a get debug configuration request.
51
+ class GetDebugConfigResponse
52
+ include Google::Apis::Core::Hashable
53
+
54
+ # The encoded debug configuration for the requested component.
55
+ # Corresponds to the JSON property `config`
56
+ # @return [String]
57
+ attr_accessor :config
58
+
59
+ def initialize(**args)
60
+ update!(**args)
61
+ end
62
+
63
+ # Update properties of this object
64
+ def update!(**args)
65
+ @config = args[:config] if args.key?(:config)
66
+ end
67
+ end
68
+
69
+ # Request to send encoded debug information.
70
+ class SendDebugCaptureRequest
71
+ include Google::Apis::Core::Hashable
72
+
73
+ # The worker id, i.e., VM hostname.
74
+ # Corresponds to the JSON property `workerId`
75
+ # @return [String]
76
+ attr_accessor :worker_id
77
+
78
+ # The internal component id for which debug information is sent.
79
+ # Corresponds to the JSON property `componentId`
80
+ # @return [String]
81
+ attr_accessor :component_id
82
+
83
+ # The encoded debug information.
84
+ # Corresponds to the JSON property `data`
85
+ # @return [String]
86
+ attr_accessor :data
87
+
88
+ def initialize(**args)
89
+ update!(**args)
90
+ end
91
+
92
+ # Update properties of this object
93
+ def update!(**args)
94
+ @worker_id = args[:worker_id] if args.key?(:worker_id)
95
+ @component_id = args[:component_id] if args.key?(:component_id)
96
+ @data = args[:data] if args.key?(:data)
97
+ end
98
+ end
99
+
100
+ # Response to a send capture request. nothing
101
+ class SendDebugCaptureResponse
102
+ include Google::Apis::Core::Hashable
103
+
104
+ def initialize(**args)
105
+ update!(**args)
106
+ end
107
+
108
+ # Update properties of this object
109
+ def update!(**args)
110
+ end
111
+ end
112
+
113
+ # Defines a job to be run by the Dataflow service.
114
+ class Job
115
+ include Google::Apis::Core::Hashable
116
+
117
+ # The unique ID of this job. This field is set by the Dataflow service when the
118
+ # Job is created, and is immutable for the life of the Job.
119
+ # Corresponds to the JSON property `id`
120
+ # @return [String]
121
+ attr_accessor :id
122
+
123
+ # The project which owns the job.
124
+ # Corresponds to the JSON property `projectId`
125
+ # @return [String]
126
+ attr_accessor :project_id
127
+
128
+ # The user-specified Dataflow job name. Only one Job with a given name may exist
129
+ # in a project at any given time. If a caller attempts to create a Job with the
130
+ # same name as an already-existing Job, the attempt will return the existing Job.
131
+ # The name must match the regular expression [a-z]([-a-z0-9]`0,38`[a-z0-9])?
132
+ # Corresponds to the JSON property `name`
133
+ # @return [String]
134
+ attr_accessor :name
135
+
136
+ # The type of dataflow job.
137
+ # Corresponds to the JSON property `type`
138
+ # @return [String]
139
+ attr_accessor :type
140
+
141
+ # Describes the environment in which a Dataflow Job runs.
142
+ # Corresponds to the JSON property `environment`
143
+ # @return [Google::Apis::DataflowV1b3::Environment]
144
+ attr_accessor :environment
145
+
146
+ # The top-level steps that constitute the entire job.
147
+ # Corresponds to the JSON property `steps`
148
+ # @return [Array<Google::Apis::DataflowV1b3::Step>]
149
+ attr_accessor :steps
150
+
151
+ # The current state of the job. Jobs are created in the JOB_STATE_STOPPED state
152
+ # unless otherwise specified. A job in the JOB_STATE_RUNNING state may
153
+ # asynchronously enter a terminal state. Once a job has reached a terminal state,
154
+ # no further state updates may be made. This field may be mutated by the
155
+ # Dataflow service; callers cannot mutate it.
156
+ # Corresponds to the JSON property `currentState`
157
+ # @return [String]
158
+ attr_accessor :current_state
159
+
160
+ # The timestamp associated with the current state.
161
+ # Corresponds to the JSON property `currentStateTime`
162
+ # @return [String]
163
+ attr_accessor :current_state_time
164
+
165
+ # The job's requested state. UpdateJob may be used to switch between the
166
+ # JOB_STATE_STOPPED and JOB_STATE_RUNNING states, by setting requested_state.
167
+ # UpdateJob may also be used to directly set a job's requested state to
168
+ # JOB_STATE_CANCELLED or JOB_STATE_DONE, irrevocably terminating the job if it
169
+ # has not already reached a terminal state.
170
+ # Corresponds to the JSON property `requestedState`
171
+ # @return [String]
172
+ attr_accessor :requested_state
173
+
174
+ # Additional information about how a Dataflow job will be executed which isn’t
175
+ # contained in the submitted job.
176
+ # Corresponds to the JSON property `executionInfo`
177
+ # @return [Google::Apis::DataflowV1b3::JobExecutionInfo]
178
+ attr_accessor :execution_info
179
+
180
+ # Timestamp when job was initially created. Immutable, set by the Dataflow
181
+ # service.
182
+ # Corresponds to the JSON property `createTime`
183
+ # @return [String]
184
+ attr_accessor :create_time
185
+
186
+ # If this job is an update of an existing job, this field will be the ID of the
187
+ # job it replaced. When sending a CreateJobRequest, you can update a job by
188
+ # specifying it here. The job named here will be stopped, and its intermediate
189
+ # state transferred to this job.
190
+ # Corresponds to the JSON property `replaceJobId`
191
+ # @return [String]
192
+ attr_accessor :replace_job_id
193
+
194
+ # Map of transform name prefixes of the job to be replaced to the corresponding
195
+ # name prefixes of the new job.
196
+ # Corresponds to the JSON property `transformNameMapping`
197
+ # @return [Hash<String,String>]
198
+ attr_accessor :transform_name_mapping
199
+
200
+ # Client's unique identifier of the job, re-used by SDK across retried attempts.
201
+ # If this field is set, the service will ensure its uniqueness. That is, the
202
+ # request to create a job will fail if the service has knowledge of a previously
203
+ # submitted job with the same client's id and job name. The caller may, for
204
+ # example, use this field to ensure idempotence of job creation across retried
205
+ # attempts to create a job. By default, the field is empty and, in that case,
206
+ # the service ignores it.
207
+ # Corresponds to the JSON property `clientRequestId`
208
+ # @return [String]
209
+ attr_accessor :client_request_id
210
+
211
+ # If another job is an update of this job (and thus, this job is in
212
+ # JOB_STATE_UPDATED), this field will contain the ID of that job.
213
+ # Corresponds to the JSON property `replacedByJobId`
214
+ # @return [String]
215
+ attr_accessor :replaced_by_job_id
216
+
217
+ # A set of files the system should be aware of that are used for temporary
218
+ # storage. These temporary files will be removed on job completion. No
219
+ # duplicates are allowed. No file patterns are supported. The supported files
220
+ # are: Google Cloud Storage: storage.googleapis.com/`bucket`/`object` bucket.
221
+ # storage.googleapis.com/`object`
222
+ # Corresponds to the JSON property `tempFiles`
223
+ # @return [Array<String>]
224
+ attr_accessor :temp_files
225
+
226
+ # User-defined labels for this job. The labels map can contain no more than 64
227
+ # entries. Entries of the labels map are UTF8 strings that comply with the
228
+ # following restrictions: * Keys must conform to regexp: \p`Ll`\p`Lo``0,62` *
229
+ # Values must conform to regexp: [\p`Ll`\p`Lo`\p`N`_-]`0,63` * Both keys and
230
+ # values are additionally constrained to be <= 128 bytes in size.
231
+ # Corresponds to the JSON property `labels`
232
+ # @return [Hash<String,String>]
233
+ attr_accessor :labels
234
+
235
+ def initialize(**args)
236
+ update!(**args)
237
+ end
238
+
239
+ # Update properties of this object
240
+ def update!(**args)
241
+ @id = args[:id] if args.key?(:id)
242
+ @project_id = args[:project_id] if args.key?(:project_id)
243
+ @name = args[:name] if args.key?(:name)
244
+ @type = args[:type] if args.key?(:type)
245
+ @environment = args[:environment] if args.key?(:environment)
246
+ @steps = args[:steps] if args.key?(:steps)
247
+ @current_state = args[:current_state] if args.key?(:current_state)
248
+ @current_state_time = args[:current_state_time] if args.key?(:current_state_time)
249
+ @requested_state = args[:requested_state] if args.key?(:requested_state)
250
+ @execution_info = args[:execution_info] if args.key?(:execution_info)
251
+ @create_time = args[:create_time] if args.key?(:create_time)
252
+ @replace_job_id = args[:replace_job_id] if args.key?(:replace_job_id)
253
+ @transform_name_mapping = args[:transform_name_mapping] if args.key?(:transform_name_mapping)
254
+ @client_request_id = args[:client_request_id] if args.key?(:client_request_id)
255
+ @replaced_by_job_id = args[:replaced_by_job_id] if args.key?(:replaced_by_job_id)
256
+ @temp_files = args[:temp_files] if args.key?(:temp_files)
257
+ @labels = args[:labels] if args.key?(:labels)
258
+ end
259
+ end
260
+
261
+ # Describes the environment in which a Dataflow Job runs.
262
+ class Environment
263
+ include Google::Apis::Core::Hashable
264
+
265
+ # The prefix of the resources the system should use for temporary storage. The
266
+ # system will append the suffix "/temp-`JOBNAME` to this resource prefix, where `
267
+ # JOBNAME` is the value of the job_name field. The resulting bucket and object
268
+ # prefix is used as the prefix of the resources used to store temporary data
269
+ # needed during the job execution. NOTE: This will override the value in
270
+ # taskrunner_settings. The supported resource type is: Google Cloud Storage:
271
+ # storage.googleapis.com/`bucket`/`object` bucket.storage.googleapis.com/`object`
272
+ # Corresponds to the JSON property `tempStoragePrefix`
273
+ # @return [String]
274
+ attr_accessor :temp_storage_prefix
275
+
276
+ # The type of cluster manager API to use. If unknown or unspecified, the service
277
+ # will attempt to choose a reasonable default. This should be in the form of the
278
+ # API service name, e.g. "compute.googleapis.com".
279
+ # Corresponds to the JSON property `clusterManagerApiService`
280
+ # @return [String]
281
+ attr_accessor :cluster_manager_api_service
282
+
283
+ # The list of experiments to enable.
284
+ # Corresponds to the JSON property `experiments`
285
+ # @return [Array<String>]
286
+ attr_accessor :experiments
287
+
288
+ # Worker pools. At least one "harness" worker pool must be specified in order
289
+ # for the job to have workers.
290
+ # Corresponds to the JSON property `workerPools`
291
+ # @return [Array<Google::Apis::DataflowV1b3::WorkerPool>]
292
+ attr_accessor :worker_pools
293
+
294
+ # A description of the process that generated the request.
295
+ # Corresponds to the JSON property `userAgent`
296
+ # @return [Hash<String,Object>]
297
+ attr_accessor :user_agent
298
+
299
+ # A structure describing which components and their versions of the service are
300
+ # required in order to run the job.
301
+ # Corresponds to the JSON property `version`
302
+ # @return [Hash<String,Object>]
303
+ attr_accessor :version
304
+
305
+ # The dataset for the current project where various workflow related tables are
306
+ # stored. The supported resource type is: Google BigQuery: bigquery.googleapis.
307
+ # com/`dataset`
308
+ # Corresponds to the JSON property `dataset`
309
+ # @return [String]
310
+ attr_accessor :dataset
311
+
312
+ # The Dataflow SDK pipeline options specified by the user. These options are
313
+ # passed through the service and are used to recreate the SDK pipeline options
314
+ # on the worker in a language agnostic and platform independent way.
315
+ # Corresponds to the JSON property `sdkPipelineOptions`
316
+ # @return [Hash<String,Object>]
317
+ attr_accessor :sdk_pipeline_options
318
+
319
+ # Experimental settings.
320
+ # Corresponds to the JSON property `internalExperiments`
321
+ # @return [Hash<String,Object>]
322
+ attr_accessor :internal_experiments
323
+
324
+ # Identity to run virtual machines as. Defaults to the default account.
325
+ # Corresponds to the JSON property `serviceAccountEmail`
326
+ # @return [String]
327
+ attr_accessor :service_account_email
328
+
329
+ def initialize(**args)
330
+ update!(**args)
331
+ end
332
+
333
+ # Update properties of this object
334
+ def update!(**args)
335
+ @temp_storage_prefix = args[:temp_storage_prefix] if args.key?(:temp_storage_prefix)
336
+ @cluster_manager_api_service = args[:cluster_manager_api_service] if args.key?(:cluster_manager_api_service)
337
+ @experiments = args[:experiments] if args.key?(:experiments)
338
+ @worker_pools = args[:worker_pools] if args.key?(:worker_pools)
339
+ @user_agent = args[:user_agent] if args.key?(:user_agent)
340
+ @version = args[:version] if args.key?(:version)
341
+ @dataset = args[:dataset] if args.key?(:dataset)
342
+ @sdk_pipeline_options = args[:sdk_pipeline_options] if args.key?(:sdk_pipeline_options)
343
+ @internal_experiments = args[:internal_experiments] if args.key?(:internal_experiments)
344
+ @service_account_email = args[:service_account_email] if args.key?(:service_account_email)
345
+ end
346
+ end
347
+
348
+ # Describes one particular pool of Dataflow workers to be instantiated by the
349
+ # Dataflow service in order to perform the computations required by a job. Note
350
+ # that a workflow job may use multiple pools, in order to match the various
351
+ # computational requirements of the various stages of the job.
352
+ class WorkerPool
353
+ include Google::Apis::Core::Hashable
354
+
355
+ # The kind of the worker pool; currently only 'harness' and 'shuffle' are
356
+ # supported.
357
+ # Corresponds to the JSON property `kind`
358
+ # @return [String]
359
+ attr_accessor :kind
360
+
361
+ # Number of Google Compute Engine workers in this pool needed to execute the job.
362
+ # If zero or unspecified, the service will attempt to choose a reasonable
363
+ # default.
364
+ # Corresponds to the JSON property `numWorkers`
365
+ # @return [Fixnum]
366
+ attr_accessor :num_workers
367
+
368
+ # Packages to be installed on workers.
369
+ # Corresponds to the JSON property `packages`
370
+ # @return [Array<Google::Apis::DataflowV1b3::Package>]
371
+ attr_accessor :packages
372
+
373
+ # The default package set to install. This allows the service to select a
374
+ # default set of packages which are useful to worker harnesses written in a
375
+ # particular language.
376
+ # Corresponds to the JSON property `defaultPackageSet`
377
+ # @return [String]
378
+ attr_accessor :default_package_set
379
+
380
+ # Machine type (e.g. "n1-standard-1"). If empty or unspecified, the service will
381
+ # attempt to choose a reasonable default.
382
+ # Corresponds to the JSON property `machineType`
383
+ # @return [String]
384
+ attr_accessor :machine_type
385
+
386
+ # Sets the policy for determining when to turndown worker pool. Allowed values
387
+ # are: TEARDOWN_ALWAYS, TEARDOWN_ON_SUCCESS, and TEARDOWN_NEVER. TEARDOWN_ALWAYS
388
+ # means workers are always torn down regardless of whether the job succeeds.
389
+ # TEARDOWN_ON_SUCCESS means workers are torn down if the job succeeds.
390
+ # TEARDOWN_NEVER means the workers are never torn down. If the workers are not
391
+ # torn down by the service, they will continue to run and use Google Compute
392
+ # Engine VM resources in the user's project until they are explicitly terminated
393
+ # by the user. Because of this, Google recommends using the TEARDOWN_ALWAYS
394
+ # policy except for small, manually supervised test jobs. If unknown or
395
+ # unspecified, the service will attempt to choose a reasonable default.
396
+ # Corresponds to the JSON property `teardownPolicy`
397
+ # @return [String]
398
+ attr_accessor :teardown_policy
399
+
400
+ # Size of root disk for VMs, in GB. If zero or unspecified, the service will
401
+ # attempt to choose a reasonable default.
402
+ # Corresponds to the JSON property `diskSizeGb`
403
+ # @return [Fixnum]
404
+ attr_accessor :disk_size_gb
405
+
406
+ # Type of root disk for VMs. If empty or unspecified, the service will attempt
407
+ # to choose a reasonable default.
408
+ # Corresponds to the JSON property `diskType`
409
+ # @return [String]
410
+ attr_accessor :disk_type
411
+
412
+ # Fully qualified source image for disks.
413
+ # Corresponds to the JSON property `diskSourceImage`
414
+ # @return [String]
415
+ attr_accessor :disk_source_image
416
+
417
+ # Zone to run the worker pools in. If empty or unspecified, the service will
418
+ # attempt to choose a reasonable default.
419
+ # Corresponds to the JSON property `zone`
420
+ # @return [String]
421
+ attr_accessor :zone
422
+
423
+ # Taskrunner configuration settings.
424
+ # Corresponds to the JSON property `taskrunnerSettings`
425
+ # @return [Google::Apis::DataflowV1b3::TaskRunnerSettings]
426
+ attr_accessor :taskrunner_settings
427
+
428
+ # The action to take on host maintenance, as defined by the Google Compute
429
+ # Engine API.
430
+ # Corresponds to the JSON property `onHostMaintenance`
431
+ # @return [String]
432
+ attr_accessor :on_host_maintenance
433
+
434
+ # Data disks that are used by a VM in this workflow.
435
+ # Corresponds to the JSON property `dataDisks`
436
+ # @return [Array<Google::Apis::DataflowV1b3::Disk>]
437
+ attr_accessor :data_disks
438
+
439
+ # Metadata to set on the Google Compute Engine VMs.
440
+ # Corresponds to the JSON property `metadata`
441
+ # @return [Hash<String,String>]
442
+ attr_accessor :metadata
443
+
444
+ # Settings for WorkerPool autoscaling.
445
+ # Corresponds to the JSON property `autoscalingSettings`
446
+ # @return [Google::Apis::DataflowV1b3::AutoscalingSettings]
447
+ attr_accessor :autoscaling_settings
448
+
449
+ # Extra arguments for this worker pool.
450
+ # Corresponds to the JSON property `poolArgs`
451
+ # @return [Hash<String,Object>]
452
+ attr_accessor :pool_args
453
+
454
+ # Network to which VMs will be assigned. If empty or unspecified, the service
455
+ # will use the network "default".
456
+ # Corresponds to the JSON property `network`
457
+ # @return [String]
458
+ attr_accessor :network
459
+
460
+ # Subnetwork to which VMs will be assigned, if desired. Expected to be of the
461
+ # form "regions/REGION/subnetworks/SUBNETWORK".
462
+ # Corresponds to the JSON property `subnetwork`
463
+ # @return [String]
464
+ attr_accessor :subnetwork
465
+
466
+ # Docker container image that executes Dataflow worker harness, residing in
467
+ # Google Container Registry. Required.
468
+ # Corresponds to the JSON property `workerHarnessContainerImage`
469
+ # @return [String]
470
+ attr_accessor :worker_harness_container_image
471
+
472
+ # The number of threads per worker harness. If empty or unspecified, the service
473
+ # will choose a number of threads (according to the number of cores on the
474
+ # selected machine type for batch, or 1 by convention for streaming).
475
+ # Corresponds to the JSON property `numThreadsPerWorker`
476
+ # @return [Fixnum]
477
+ attr_accessor :num_threads_per_worker
478
+
479
+ # Configuration for VM IPs.
480
+ # Corresponds to the JSON property `ipConfiguration`
481
+ # @return [String]
482
+ attr_accessor :ip_configuration
483
+
484
+ def initialize(**args)
485
+ update!(**args)
486
+ end
487
+
488
+ # Update properties of this object
489
+ def update!(**args)
490
+ @kind = args[:kind] if args.key?(:kind)
491
+ @num_workers = args[:num_workers] if args.key?(:num_workers)
492
+ @packages = args[:packages] if args.key?(:packages)
493
+ @default_package_set = args[:default_package_set] if args.key?(:default_package_set)
494
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
495
+ @teardown_policy = args[:teardown_policy] if args.key?(:teardown_policy)
496
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
497
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
498
+ @disk_source_image = args[:disk_source_image] if args.key?(:disk_source_image)
499
+ @zone = args[:zone] if args.key?(:zone)
500
+ @taskrunner_settings = args[:taskrunner_settings] if args.key?(:taskrunner_settings)
501
+ @on_host_maintenance = args[:on_host_maintenance] if args.key?(:on_host_maintenance)
502
+ @data_disks = args[:data_disks] if args.key?(:data_disks)
503
+ @metadata = args[:metadata] if args.key?(:metadata)
504
+ @autoscaling_settings = args[:autoscaling_settings] if args.key?(:autoscaling_settings)
505
+ @pool_args = args[:pool_args] if args.key?(:pool_args)
506
+ @network = args[:network] if args.key?(:network)
507
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
508
+ @worker_harness_container_image = args[:worker_harness_container_image] if args.key?(:worker_harness_container_image)
509
+ @num_threads_per_worker = args[:num_threads_per_worker] if args.key?(:num_threads_per_worker)
510
+ @ip_configuration = args[:ip_configuration] if args.key?(:ip_configuration)
511
+ end
512
+ end
513
+
514
+ # Packages that need to be installed in order for a worker to run the steps of
515
+ # the Dataflow job which will be assigned to its worker pool. This is the
516
+ # mechanism by which the SDK causes code to be loaded onto the workers. For
517
+ # example, the Dataflow Java SDK might use this to install jars containing the
518
+ # user's code and all of the various dependencies (libraries, data files, etc)
519
+ # required in order for that code to run.
520
+ class Package
521
+ include Google::Apis::Core::Hashable
522
+
523
+ # The name of the package.
524
+ # Corresponds to the JSON property `name`
525
+ # @return [String]
526
+ attr_accessor :name
527
+
528
+ # The resource to read the package from. The supported resource type is: Google
529
+ # Cloud Storage: storage.googleapis.com/`bucket` bucket.storage.googleapis.com/
530
+ # Corresponds to the JSON property `location`
531
+ # @return [String]
532
+ attr_accessor :location
533
+
534
+ def initialize(**args)
535
+ update!(**args)
536
+ end
537
+
538
+ # Update properties of this object
539
+ def update!(**args)
540
+ @name = args[:name] if args.key?(:name)
541
+ @location = args[:location] if args.key?(:location)
542
+ end
543
+ end
544
+
545
+ # Taskrunner configuration settings.
546
+ class TaskRunnerSettings
547
+ include Google::Apis::Core::Hashable
548
+
549
+ # The UNIX user ID on the worker VM to use for tasks launched by taskrunner; e.g.
550
+ # "root".
551
+ # Corresponds to the JSON property `taskUser`
552
+ # @return [String]
553
+ attr_accessor :task_user
554
+
555
+ # The UNIX group ID on the worker VM to use for tasks launched by taskrunner; e.
556
+ # g. "wheel".
557
+ # Corresponds to the JSON property `taskGroup`
558
+ # @return [String]
559
+ attr_accessor :task_group
560
+
561
+ # OAuth2 scopes to be requested by the taskrunner in order to access the
562
+ # dataflow API.
563
+ # Corresponds to the JSON property `oauthScopes`
564
+ # @return [Array<String>]
565
+ attr_accessor :oauth_scopes
566
+
567
+ # The base URL for the taskrunner to use when accessing Google Cloud APIs. When
568
+ # workers access Google Cloud APIs, they logically do so via relative URLs. If
569
+ # this field is specified, it supplies the base URL to use for resolving these
570
+ # relative URLs. The normative algorithm used is defined by RFC 1808, "Relative
571
+ # Uniform Resource Locators". If not specified, the default value is "http://www.
572
+ # googleapis.com/"
573
+ # Corresponds to the JSON property `baseUrl`
574
+ # @return [String]
575
+ attr_accessor :base_url
576
+
577
+ # API version of endpoint, e.g. "v1b3"
578
+ # Corresponds to the JSON property `dataflowApiVersion`
579
+ # @return [String]
580
+ attr_accessor :dataflow_api_version
581
+
582
+ # Provides data to pass through to the worker harness.
583
+ # Corresponds to the JSON property `parallelWorkerSettings`
584
+ # @return [Google::Apis::DataflowV1b3::WorkerSettings]
585
+ attr_accessor :parallel_worker_settings
586
+
587
+ # Location on the worker for task-specific subdirectories.
588
+ # Corresponds to the JSON property `baseTaskDir`
589
+ # @return [String]
590
+ attr_accessor :base_task_dir
591
+
592
+ # Do we continue taskrunner if an exception is hit?
593
+ # Corresponds to the JSON property `continueOnException`
594
+ # @return [Boolean]
595
+ attr_accessor :continue_on_exception
596
+ alias_method :continue_on_exception?, :continue_on_exception
597
+
598
+ # Send taskrunner log into to Google Compute Engine VM serial console?
599
+ # Corresponds to the JSON property `logToSerialconsole`
600
+ # @return [Boolean]
601
+ attr_accessor :log_to_serialconsole
602
+ alias_method :log_to_serialconsole?, :log_to_serialconsole
603
+
604
+ # Also send taskrunner log info to stderr?
605
+ # Corresponds to the JSON property `alsologtostderr`
606
+ # @return [Boolean]
607
+ attr_accessor :alsologtostderr
608
+ alias_method :alsologtostderr?, :alsologtostderr
609
+
610
+ # Indicates where to put logs. If this is not specified, the logs will not be
611
+ # uploaded. The supported resource type is: Google Cloud Storage: storage.
612
+ # googleapis.com/`bucket`/`object` bucket.storage.googleapis.com/`object`
613
+ # Corresponds to the JSON property `logUploadLocation`
614
+ # @return [String]
615
+ attr_accessor :log_upload_location
616
+
617
+ # Directory on the VM to store logs.
618
+ # Corresponds to the JSON property `logDir`
619
+ # @return [String]
620
+ attr_accessor :log_dir
621
+
622
+ # The prefix of the resources the taskrunner should use for temporary storage.
623
+ # The supported resource type is: Google Cloud Storage: storage.googleapis.com/`
624
+ # bucket`/`object` bucket.storage.googleapis.com/`object`
625
+ # Corresponds to the JSON property `tempStoragePrefix`
626
+ # @return [String]
627
+ attr_accessor :temp_storage_prefix
628
+
629
+ # Command to launch the worker harness.
630
+ # Corresponds to the JSON property `harnessCommand`
631
+ # @return [String]
632
+ attr_accessor :harness_command
633
+
634
+ # Store the workflow in this file.
635
+ # Corresponds to the JSON property `workflowFileName`
636
+ # @return [String]
637
+ attr_accessor :workflow_file_name
638
+
639
+ # Store preprocessing commands in this file.
640
+ # Corresponds to the JSON property `commandlinesFileName`
641
+ # @return [String]
642
+ attr_accessor :commandlines_file_name
643
+
644
+ # ID string of VM.
645
+ # Corresponds to the JSON property `vmId`
646
+ # @return [String]
647
+ attr_accessor :vm_id
648
+
649
+ # Suggested backend language.
650
+ # Corresponds to the JSON property `languageHint`
651
+ # @return [String]
652
+ attr_accessor :language_hint
653
+
654
+ # Streaming worker main class name.
655
+ # Corresponds to the JSON property `streamingWorkerMainClass`
656
+ # @return [String]
657
+ attr_accessor :streaming_worker_main_class
658
+
659
+ def initialize(**args)
660
+ update!(**args)
661
+ end
662
+
663
+ # Update properties of this object
664
+ def update!(**args)
665
+ @task_user = args[:task_user] if args.key?(:task_user)
666
+ @task_group = args[:task_group] if args.key?(:task_group)
667
+ @oauth_scopes = args[:oauth_scopes] if args.key?(:oauth_scopes)
668
+ @base_url = args[:base_url] if args.key?(:base_url)
669
+ @dataflow_api_version = args[:dataflow_api_version] if args.key?(:dataflow_api_version)
670
+ @parallel_worker_settings = args[:parallel_worker_settings] if args.key?(:parallel_worker_settings)
671
+ @base_task_dir = args[:base_task_dir] if args.key?(:base_task_dir)
672
+ @continue_on_exception = args[:continue_on_exception] if args.key?(:continue_on_exception)
673
+ @log_to_serialconsole = args[:log_to_serialconsole] if args.key?(:log_to_serialconsole)
674
+ @alsologtostderr = args[:alsologtostderr] if args.key?(:alsologtostderr)
675
+ @log_upload_location = args[:log_upload_location] if args.key?(:log_upload_location)
676
+ @log_dir = args[:log_dir] if args.key?(:log_dir)
677
+ @temp_storage_prefix = args[:temp_storage_prefix] if args.key?(:temp_storage_prefix)
678
+ @harness_command = args[:harness_command] if args.key?(:harness_command)
679
+ @workflow_file_name = args[:workflow_file_name] if args.key?(:workflow_file_name)
680
+ @commandlines_file_name = args[:commandlines_file_name] if args.key?(:commandlines_file_name)
681
+ @vm_id = args[:vm_id] if args.key?(:vm_id)
682
+ @language_hint = args[:language_hint] if args.key?(:language_hint)
683
+ @streaming_worker_main_class = args[:streaming_worker_main_class] if args.key?(:streaming_worker_main_class)
684
+ end
685
+ end
686
+
687
+ # Provides data to pass through to the worker harness.
688
+ class WorkerSettings
689
+ include Google::Apis::Core::Hashable
690
+
691
+ # The base URL for accessing Google Cloud APIs. When workers access Google Cloud
692
+ # APIs, they logically do so via relative URLs. If this field is specified, it
693
+ # supplies the base URL to use for resolving these relative URLs. The normative
694
+ # algorithm used is defined by RFC 1808, "Relative Uniform Resource Locators".
695
+ # If not specified, the default value is "http://www.googleapis.com/"
696
+ # Corresponds to the JSON property `baseUrl`
697
+ # @return [String]
698
+ attr_accessor :base_url
699
+
700
+ # Send work progress updates to service.
701
+ # Corresponds to the JSON property `reportingEnabled`
702
+ # @return [Boolean]
703
+ attr_accessor :reporting_enabled
704
+ alias_method :reporting_enabled?, :reporting_enabled
705
+
706
+ # The Dataflow service path relative to the root URL, for example, "dataflow/
707
+ # v1b3/projects".
708
+ # Corresponds to the JSON property `servicePath`
709
+ # @return [String]
710
+ attr_accessor :service_path
711
+
712
+ # The Shuffle service path relative to the root URL, for example, "shuffle/
713
+ # v1beta1".
714
+ # Corresponds to the JSON property `shuffleServicePath`
715
+ # @return [String]
716
+ attr_accessor :shuffle_service_path
717
+
718
+ # ID of the worker running this pipeline.
719
+ # Corresponds to the JSON property `workerId`
720
+ # @return [String]
721
+ attr_accessor :worker_id
722
+
723
+ # The prefix of the resources the system should use for temporary storage. The
724
+ # supported resource type is: Google Cloud Storage: storage.googleapis.com/`
725
+ # bucket`/`object` bucket.storage.googleapis.com/`object`
726
+ # Corresponds to the JSON property `tempStoragePrefix`
727
+ # @return [String]
728
+ attr_accessor :temp_storage_prefix
729
+
730
+ def initialize(**args)
731
+ update!(**args)
732
+ end
733
+
734
+ # Update properties of this object
735
+ def update!(**args)
736
+ @base_url = args[:base_url] if args.key?(:base_url)
737
+ @reporting_enabled = args[:reporting_enabled] if args.key?(:reporting_enabled)
738
+ @service_path = args[:service_path] if args.key?(:service_path)
739
+ @shuffle_service_path = args[:shuffle_service_path] if args.key?(:shuffle_service_path)
740
+ @worker_id = args[:worker_id] if args.key?(:worker_id)
741
+ @temp_storage_prefix = args[:temp_storage_prefix] if args.key?(:temp_storage_prefix)
742
+ end
743
+ end
744
+
745
+ # Describes the data disk used by a workflow job.
746
+ class Disk
747
+ include Google::Apis::Core::Hashable
748
+
749
+ # Size of disk in GB. If zero or unspecified, the service will attempt to choose
750
+ # a reasonable default.
751
+ # Corresponds to the JSON property `sizeGb`
752
+ # @return [Fixnum]
753
+ attr_accessor :size_gb
754
+
755
+ # Disk storage type, as defined by Google Compute Engine. This must be a disk
756
+ # type appropriate to the project and zone in which the workers will run. If
757
+ # unknown or unspecified, the service will attempt to choose a reasonable
758
+ # default. For example, the standard persistent disk type is a resource name
759
+ # typically ending in "pd-standard". If SSD persistent disks are available, the
760
+ # resource name typically ends with "pd-ssd". The actual valid values are
761
+ # defined the Google Compute Engine API, not by the Dataflow API; consult the
762
+ # Google Compute Engine documentation for more information about determining the
763
+ # set of available disk types for a particular project and zone. Google Compute
764
+ # Engine Disk types are local to a particular project in a particular zone, and
765
+ # so the resource name will typically look something like this: compute.
766
+ # googleapis.com/projects/
767
+ # /zones//diskTypes/pd-standard
768
+ # Corresponds to the JSON property `diskType`
769
+ # @return [String]
770
+ attr_accessor :disk_type
771
+
772
+ # Directory in a VM where disk is mounted.
773
+ # Corresponds to the JSON property `mountPoint`
774
+ # @return [String]
775
+ attr_accessor :mount_point
776
+
777
+ def initialize(**args)
778
+ update!(**args)
779
+ end
780
+
781
+ # Update properties of this object
782
+ def update!(**args)
783
+ @size_gb = args[:size_gb] if args.key?(:size_gb)
784
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
785
+ @mount_point = args[:mount_point] if args.key?(:mount_point)
786
+ end
787
+ end
788
+
789
+ # Settings for WorkerPool autoscaling.
790
+ class AutoscalingSettings
791
+ include Google::Apis::Core::Hashable
792
+
793
+ # The algorithm to use for autoscaling.
794
+ # Corresponds to the JSON property `algorithm`
795
+ # @return [String]
796
+ attr_accessor :algorithm
797
+
798
+ # The maximum number of workers to cap scaling at.
799
+ # Corresponds to the JSON property `maxNumWorkers`
800
+ # @return [Fixnum]
801
+ attr_accessor :max_num_workers
802
+
803
+ def initialize(**args)
804
+ update!(**args)
805
+ end
806
+
807
+ # Update properties of this object
808
+ def update!(**args)
809
+ @algorithm = args[:algorithm] if args.key?(:algorithm)
810
+ @max_num_workers = args[:max_num_workers] if args.key?(:max_num_workers)
811
+ end
812
+ end
813
+
814
+ # Defines a particular step within a Dataflow job. A job consists of multiple
815
+ # steps, each of which performs some specific operation as part of the overall
816
+ # job. Data is typically passed from one step to another as part of the job.
817
+ # Here's an example of a sequence of steps which together implement a Map-Reduce
818
+ # job: * Read a collection of data from some source, parsing the collection's
819
+ # elements. * Validate the elements. * Apply a user-defined function to map each
820
+ # element to some value and extract an element-specific key value. * Group
821
+ # elements with the same key into a single element with that key, transforming a
822
+ # multiply-keyed collection into a uniquely-keyed collection. * Write the
823
+ # elements out to some data sink. (Note that the Dataflow service may be used to
824
+ # run many different types of jobs, not just Map-Reduce).
825
+ class Step
826
+ include Google::Apis::Core::Hashable
827
+
828
+ # The kind of step in the dataflow Job.
829
+ # Corresponds to the JSON property `kind`
830
+ # @return [String]
831
+ attr_accessor :kind
832
+
833
+ # Name identifying the step. This must be unique for each step with respect to
834
+ # all other steps in the dataflow Job.
835
+ # Corresponds to the JSON property `name`
836
+ # @return [String]
837
+ attr_accessor :name
838
+
839
+ # Named properties associated with the step. Each kind of predefined step has
840
+ # its own required set of properties.
841
+ # Corresponds to the JSON property `properties`
842
+ # @return [Hash<String,Object>]
843
+ attr_accessor :properties
844
+
845
+ def initialize(**args)
846
+ update!(**args)
847
+ end
848
+
849
+ # Update properties of this object
850
+ def update!(**args)
851
+ @kind = args[:kind] if args.key?(:kind)
852
+ @name = args[:name] if args.key?(:name)
853
+ @properties = args[:properties] if args.key?(:properties)
854
+ end
855
+ end
856
+
857
+ # Additional information about how a Dataflow job will be executed which isn’t
858
+ # contained in the submitted job.
859
+ class JobExecutionInfo
860
+ include Google::Apis::Core::Hashable
861
+
862
+ # A mapping from each stage to the information about that stage.
863
+ # Corresponds to the JSON property `stages`
864
+ # @return [Hash<String,Google::Apis::DataflowV1b3::JobExecutionStageInfo>]
865
+ attr_accessor :stages
866
+
867
+ def initialize(**args)
868
+ update!(**args)
869
+ end
870
+
871
+ # Update properties of this object
872
+ def update!(**args)
873
+ @stages = args[:stages] if args.key?(:stages)
874
+ end
875
+ end
876
+
877
+ # Contains information about how a particular google.dataflow.v1beta3.Step will
878
+ # be executed.
879
+ class JobExecutionStageInfo
880
+ include Google::Apis::Core::Hashable
881
+
882
+ # The steps associated with the execution stage. Note that stages may have
883
+ # several steps, and that a given step might be run by more than one stage.
884
+ # Corresponds to the JSON property `stepName`
885
+ # @return [Array<String>]
886
+ attr_accessor :step_name
887
+
888
+ def initialize(**args)
889
+ update!(**args)
890
+ end
891
+
892
+ # Update properties of this object
893
+ def update!(**args)
894
+ @step_name = args[:step_name] if args.key?(:step_name)
895
+ end
896
+ end
897
+
898
+ # Response to a request to list Dataflow jobs. This may be a partial response,
899
+ # depending on the page size in the ListJobsRequest.
900
+ class ListJobsResponse
901
+ include Google::Apis::Core::Hashable
902
+
903
+ # A subset of the requested job information.
904
+ # Corresponds to the JSON property `jobs`
905
+ # @return [Array<Google::Apis::DataflowV1b3::Job>]
906
+ attr_accessor :jobs
907
+
908
+ # Set if there may be more results than fit in this response.
909
+ # Corresponds to the JSON property `nextPageToken`
910
+ # @return [String]
911
+ attr_accessor :next_page_token
912
+
913
+ def initialize(**args)
914
+ update!(**args)
915
+ end
916
+
917
+ # Update properties of this object
918
+ def update!(**args)
919
+ @jobs = args[:jobs] if args.key?(:jobs)
920
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
921
+ end
922
+ end
923
+
924
+ # Response to a request to list job messages.
925
+ class ListJobMessagesResponse
926
+ include Google::Apis::Core::Hashable
927
+
928
+ # Messages in ascending timestamp order.
929
+ # Corresponds to the JSON property `jobMessages`
930
+ # @return [Array<Google::Apis::DataflowV1b3::JobMessage>]
931
+ attr_accessor :job_messages
932
+
933
+ # The token to obtain the next page of results if there are more.
934
+ # Corresponds to the JSON property `nextPageToken`
935
+ # @return [String]
936
+ attr_accessor :next_page_token
937
+
938
+ def initialize(**args)
939
+ update!(**args)
940
+ end
941
+
942
+ # Update properties of this object
943
+ def update!(**args)
944
+ @job_messages = args[:job_messages] if args.key?(:job_messages)
945
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
946
+ end
947
+ end
948
+
949
+ # A particular message pertaining to a Dataflow job.
950
+ class JobMessage
951
+ include Google::Apis::Core::Hashable
952
+
953
+ # Identifies the message. This is automatically generated by the service; the
954
+ # caller should treat it as an opaque string.
955
+ # Corresponds to the JSON property `id`
956
+ # @return [String]
957
+ attr_accessor :id
958
+
959
+ # The timestamp of the message.
960
+ # Corresponds to the JSON property `time`
961
+ # @return [String]
962
+ attr_accessor :time
963
+
964
+ # The text of the message.
965
+ # Corresponds to the JSON property `messageText`
966
+ # @return [String]
967
+ attr_accessor :message_text
968
+
969
+ # Importance level of the message.
970
+ # Corresponds to the JSON property `messageImportance`
971
+ # @return [String]
972
+ attr_accessor :message_importance
973
+
974
+ def initialize(**args)
975
+ update!(**args)
976
+ end
977
+
978
+ # Update properties of this object
979
+ def update!(**args)
980
+ @id = args[:id] if args.key?(:id)
981
+ @time = args[:time] if args.key?(:time)
982
+ @message_text = args[:message_text] if args.key?(:message_text)
983
+ @message_importance = args[:message_importance] if args.key?(:message_importance)
984
+ end
985
+ end
986
+
987
+ # JobMetrics contains a collection of metrics descibing the detailed progress of
988
+ # a Dataflow job. Metrics correspond to user-defined and system-defined metrics
989
+ # in the job. This resource captures only the most recent values of each metric;
990
+ # time-series data can be queried for them (under the same metric names) from
991
+ # Cloud Monitoring.
992
+ class JobMetrics
993
+ include Google::Apis::Core::Hashable
994
+
995
+ # Timestamp as of which metric values are current.
996
+ # Corresponds to the JSON property `metricTime`
997
+ # @return [String]
998
+ attr_accessor :metric_time
999
+
1000
+ # All metrics for this job.
1001
+ # Corresponds to the JSON property `metrics`
1002
+ # @return [Array<Google::Apis::DataflowV1b3::MetricUpdate>]
1003
+ attr_accessor :metrics
1004
+
1005
+ def initialize(**args)
1006
+ update!(**args)
1007
+ end
1008
+
1009
+ # Update properties of this object
1010
+ def update!(**args)
1011
+ @metric_time = args[:metric_time] if args.key?(:metric_time)
1012
+ @metrics = args[:metrics] if args.key?(:metrics)
1013
+ end
1014
+ end
1015
+
1016
+ # Describes the state of a metric.
1017
+ class MetricUpdate
1018
+ include Google::Apis::Core::Hashable
1019
+
1020
+ # Identifies a metric, by describing the source which generated the metric.
1021
+ # Corresponds to the JSON property `name`
1022
+ # @return [Google::Apis::DataflowV1b3::MetricStructuredName]
1023
+ attr_accessor :name
1024
+
1025
+ # Metric aggregation kind. The possible metric aggregation kinds are "Sum", "Max"
1026
+ # , "Min", "Mean", "Set", "And", and "Or". The specified aggregation kind is
1027
+ # case-insensitive. If omitted, this is not an aggregated value but instead a
1028
+ # single metric sample value.
1029
+ # Corresponds to the JSON property `kind`
1030
+ # @return [String]
1031
+ attr_accessor :kind
1032
+
1033
+ # True if this metric is reported as the total cumulative aggregate value
1034
+ # accumulated since the worker started working on this WorkItem. By default this
1035
+ # is false, indicating that this metric is reported as a delta that is not
1036
+ # associated with any WorkItem.
1037
+ # Corresponds to the JSON property `cumulative`
1038
+ # @return [Boolean]
1039
+ attr_accessor :cumulative
1040
+ alias_method :cumulative?, :cumulative
1041
+
1042
+ # Worker-computed aggregate value for aggregation kinds "Sum", "Max", "Min", "
1043
+ # And", and "Or". The possible value types are Long, Double, and Boolean.
1044
+ # Corresponds to the JSON property `scalar`
1045
+ # @return [Object]
1046
+ attr_accessor :scalar
1047
+
1048
+ # Worker-computed aggregate value for the "Mean" aggregation kind. This holds
1049
+ # the sum of the aggregated values and is used in combination with mean_count
1050
+ # below to obtain the actual mean aggregate value. The only possible value types
1051
+ # are Long and Double.
1052
+ # Corresponds to the JSON property `meanSum`
1053
+ # @return [Object]
1054
+ attr_accessor :mean_sum
1055
+
1056
+ # Worker-computed aggregate value for the "Mean" aggregation kind. This holds
1057
+ # the count of the aggregated values and is used in combination with mean_sum
1058
+ # above to obtain the actual mean aggregate value. The only possible value type
1059
+ # is Long.
1060
+ # Corresponds to the JSON property `meanCount`
1061
+ # @return [Object]
1062
+ attr_accessor :mean_count
1063
+
1064
+ # Worker-computed aggregate value for the "Set" aggregation kind. The only
1065
+ # possible value type is a list of Values whose type can be Long, Double, or
1066
+ # String, according to the metric's type. All Values in the list must be of the
1067
+ # same type.
1068
+ # Corresponds to the JSON property `set`
1069
+ # @return [Object]
1070
+ attr_accessor :set
1071
+
1072
+ # Worker-computed aggregate value for internal use by the Dataflow service.
1073
+ # Corresponds to the JSON property `internal`
1074
+ # @return [Object]
1075
+ attr_accessor :internal
1076
+
1077
+ # Timestamp associated with the metric value. Optional when workers are
1078
+ # reporting work progress; it will be filled in responses from the metrics API.
1079
+ # Corresponds to the JSON property `updateTime`
1080
+ # @return [String]
1081
+ attr_accessor :update_time
1082
+
1083
+ def initialize(**args)
1084
+ update!(**args)
1085
+ end
1086
+
1087
+ # Update properties of this object
1088
+ def update!(**args)
1089
+ @name = args[:name] if args.key?(:name)
1090
+ @kind = args[:kind] if args.key?(:kind)
1091
+ @cumulative = args[:cumulative] if args.key?(:cumulative)
1092
+ @scalar = args[:scalar] if args.key?(:scalar)
1093
+ @mean_sum = args[:mean_sum] if args.key?(:mean_sum)
1094
+ @mean_count = args[:mean_count] if args.key?(:mean_count)
1095
+ @set = args[:set] if args.key?(:set)
1096
+ @internal = args[:internal] if args.key?(:internal)
1097
+ @update_time = args[:update_time] if args.key?(:update_time)
1098
+ end
1099
+ end
1100
+
1101
+ # Identifies a metric, by describing the source which generated the metric.
1102
+ class MetricStructuredName
1103
+ include Google::Apis::Core::Hashable
1104
+
1105
+ # Origin (namespace) of metric name. May be blank for user-define metrics; will
1106
+ # be "dataflow" for metrics defined by the Dataflow service or SDK.
1107
+ # Corresponds to the JSON property `origin`
1108
+ # @return [String]
1109
+ attr_accessor :origin
1110
+
1111
+ # Worker-defined metric name.
1112
+ # Corresponds to the JSON property `name`
1113
+ # @return [String]
1114
+ attr_accessor :name
1115
+
1116
+ # Zero or more labeled fields which identify the part of the job this metric is
1117
+ # associated with, such as the name of a step or collection. For example, built-
1118
+ # in counters associated with steps will have context['step'] = . Counters
1119
+ # associated with PCollections in the SDK will have context['pcollection'] =
1120
+ # .
1121
+ # Corresponds to the JSON property `context`
1122
+ # @return [Hash<String,String>]
1123
+ attr_accessor :context
1124
+
1125
+ def initialize(**args)
1126
+ update!(**args)
1127
+ end
1128
+
1129
+ # Update properties of this object
1130
+ def update!(**args)
1131
+ @origin = args[:origin] if args.key?(:origin)
1132
+ @name = args[:name] if args.key?(:name)
1133
+ @context = args[:context] if args.key?(:context)
1134
+ end
1135
+ end
1136
+
1137
+ # Request to create a Dataflow job.
1138
+ class CreateJobFromTemplateRequest
1139
+ include Google::Apis::Core::Hashable
1140
+
1141
+ # A path to the serialized JSON representation of the job.
1142
+ # Corresponds to the JSON property `gcsPath`
1143
+ # @return [String]
1144
+ attr_accessor :gcs_path
1145
+
1146
+ # Dynamic parameterization of the job's runtime environment.
1147
+ # Corresponds to the JSON property `parameters`
1148
+ # @return [Hash<String,String>]
1149
+ attr_accessor :parameters
1150
+
1151
+ def initialize(**args)
1152
+ update!(**args)
1153
+ end
1154
+
1155
+ # Update properties of this object
1156
+ def update!(**args)
1157
+ @gcs_path = args[:gcs_path] if args.key?(:gcs_path)
1158
+ @parameters = args[:parameters] if args.key?(:parameters)
1159
+ end
1160
+ end
1161
+
1162
+ # Request to report the status of WorkItems.
1163
+ class ReportWorkItemStatusRequest
1164
+ include Google::Apis::Core::Hashable
1165
+
1166
+ # The ID of the worker reporting the WorkItem status. If this does not match the
1167
+ # ID of the worker which the Dataflow service believes currently has the lease
1168
+ # on the WorkItem, the report will be dropped (with an error response).
1169
+ # Corresponds to the JSON property `workerId`
1170
+ # @return [String]
1171
+ attr_accessor :worker_id
1172
+
1173
+ # The order is unimportant, except that the order of the WorkItemServiceState
1174
+ # messages in the ReportWorkItemStatusResponse corresponds to the order of
1175
+ # WorkItemStatus messages here.
1176
+ # Corresponds to the JSON property `workItemStatuses`
1177
+ # @return [Array<Google::Apis::DataflowV1b3::WorkItemStatus>]
1178
+ attr_accessor :work_item_statuses
1179
+
1180
+ # The current timestamp at the worker.
1181
+ # Corresponds to the JSON property `currentWorkerTime`
1182
+ # @return [String]
1183
+ attr_accessor :current_worker_time
1184
+
1185
+ def initialize(**args)
1186
+ update!(**args)
1187
+ end
1188
+
1189
+ # Update properties of this object
1190
+ def update!(**args)
1191
+ @worker_id = args[:worker_id] if args.key?(:worker_id)
1192
+ @work_item_statuses = args[:work_item_statuses] if args.key?(:work_item_statuses)
1193
+ @current_worker_time = args[:current_worker_time] if args.key?(:current_worker_time)
1194
+ end
1195
+ end
1196
+
1197
+ # Conveys a worker's progress through the work described by a WorkItem.
1198
+ class WorkItemStatus
1199
+ include Google::Apis::Core::Hashable
1200
+
1201
+ # Identifies the WorkItem.
1202
+ # Corresponds to the JSON property `workItemId`
1203
+ # @return [String]
1204
+ attr_accessor :work_item_id
1205
+
1206
+ # The report index. When a WorkItem is leased, the lease will contain an initial
1207
+ # report index. When a WorkItem's status is reported to the system, the report
1208
+ # should be sent with that report index, and the response will contain the index
1209
+ # the worker should use for the next report. Reports received with unexpected
1210
+ # index values will be rejected by the service. In order to preserve idempotency,
1211
+ # the worker should not alter the contents of a report, even if the worker must
1212
+ # submit the same report multiple times before getting back a response. The
1213
+ # worker should not submit a subsequent report until the response for the
1214
+ # previous report had been received from the service.
1215
+ # Corresponds to the JSON property `reportIndex`
1216
+ # @return [String]
1217
+ attr_accessor :report_index
1218
+
1219
+ # Amount of time the worker requests for its lease.
1220
+ # Corresponds to the JSON property `requestedLeaseDuration`
1221
+ # @return [String]
1222
+ attr_accessor :requested_lease_duration
1223
+
1224
+ # True if the WorkItem was completed (successfully or unsuccessfully).
1225
+ # Corresponds to the JSON property `completed`
1226
+ # @return [Boolean]
1227
+ attr_accessor :completed
1228
+ alias_method :completed?, :completed
1229
+
1230
+ # Specifies errors which occurred during processing. If errors are provided, and
1231
+ # completed = true, then the WorkItem is considered to have failed.
1232
+ # Corresponds to the JSON property `errors`
1233
+ # @return [Array<Google::Apis::DataflowV1b3::Status>]
1234
+ attr_accessor :errors
1235
+
1236
+ # Worker output counters for this WorkItem.
1237
+ # Corresponds to the JSON property `counterUpdates`
1238
+ # @return [Array<Google::Apis::DataflowV1b3::CounterUpdate>]
1239
+ attr_accessor :counter_updates
1240
+
1241
+ # DEPRECATED in favor of counter_updates.
1242
+ # Corresponds to the JSON property `metricUpdates`
1243
+ # @return [Array<Google::Apis::DataflowV1b3::MetricUpdate>]
1244
+ attr_accessor :metric_updates
1245
+
1246
+ # A progress measurement of a WorkItem by a worker.
1247
+ # Corresponds to the JSON property `reportedProgress`
1248
+ # @return [Google::Apis::DataflowV1b3::ApproximateReportedProgress]
1249
+ attr_accessor :reported_progress
1250
+
1251
+ # Position defines a position within a collection of data. The value can be
1252
+ # either the end position, a key (used with ordered collections), a byte offset,
1253
+ # or a record index.
1254
+ # Corresponds to the JSON property `stopPosition`
1255
+ # @return [Google::Apis::DataflowV1b3::Position]
1256
+ attr_accessor :stop_position
1257
+
1258
+ # When a task splits using WorkItemStatus.dynamic_source_split, this message
1259
+ # describes the two parts of the split relative to the description of the
1260
+ # current task's input.
1261
+ # Corresponds to the JSON property `dynamicSourceSplit`
1262
+ # @return [Google::Apis::DataflowV1b3::DynamicSourceSplit]
1263
+ attr_accessor :dynamic_source_split
1264
+
1265
+ # The result of a SourceOperationRequest, specified in
1266
+ # ReportWorkItemStatusRequest.source_operation when the work item is completed.
1267
+ # Corresponds to the JSON property `sourceOperationResponse`
1268
+ # @return [Google::Apis::DataflowV1b3::SourceOperationResponse]
1269
+ attr_accessor :source_operation_response
1270
+
1271
+ # DEPRECATED in favor of DynamicSourceSplit.
1272
+ # Corresponds to the JSON property `sourceFork`
1273
+ # @return [Google::Apis::DataflowV1b3::SourceFork]
1274
+ attr_accessor :source_fork
1275
+
1276
+ # Obsolete in favor of ApproximateReportedProgress and ApproximateSplitRequest.
1277
+ # Corresponds to the JSON property `progress`
1278
+ # @return [Google::Apis::DataflowV1b3::ApproximateProgress]
1279
+ attr_accessor :progress
1280
+
1281
+ def initialize(**args)
1282
+ update!(**args)
1283
+ end
1284
+
1285
+ # Update properties of this object
1286
+ def update!(**args)
1287
+ @work_item_id = args[:work_item_id] if args.key?(:work_item_id)
1288
+ @report_index = args[:report_index] if args.key?(:report_index)
1289
+ @requested_lease_duration = args[:requested_lease_duration] if args.key?(:requested_lease_duration)
1290
+ @completed = args[:completed] if args.key?(:completed)
1291
+ @errors = args[:errors] if args.key?(:errors)
1292
+ @counter_updates = args[:counter_updates] if args.key?(:counter_updates)
1293
+ @metric_updates = args[:metric_updates] if args.key?(:metric_updates)
1294
+ @reported_progress = args[:reported_progress] if args.key?(:reported_progress)
1295
+ @stop_position = args[:stop_position] if args.key?(:stop_position)
1296
+ @dynamic_source_split = args[:dynamic_source_split] if args.key?(:dynamic_source_split)
1297
+ @source_operation_response = args[:source_operation_response] if args.key?(:source_operation_response)
1298
+ @source_fork = args[:source_fork] if args.key?(:source_fork)
1299
+ @progress = args[:progress] if args.key?(:progress)
1300
+ end
1301
+ end
1302
+
1303
+ # The `Status` type defines a logical error model that is suitable for different
1304
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1305
+ # gRPC](https://github.com/grpc). The error model is designed to be: - Simple to
1306
+ # use and understand for most users - Flexible enough to meet unexpected needs #
1307
+ # Overview The `Status` message contains three pieces of data: error code, error
1308
+ # message, and error details. The error code should be an enum value of google.
1309
+ # rpc.Code, but it may accept additional error codes if needed. The error
1310
+ # message should be a developer-facing English message that helps developers *
1311
+ # understand* and *resolve* the error. If a localized user-facing error message
1312
+ # is needed, put the localized message in the error details or localize it in
1313
+ # the client. The optional error details may contain arbitrary information about
1314
+ # the error. There is a predefined set of error detail types in the package `
1315
+ # google.rpc` which can be used for common error conditions. # Language mapping
1316
+ # The `Status` message is the logical representation of the error model, but it
1317
+ # is not necessarily the actual wire format. When the `Status` message is
1318
+ # exposed in different client libraries and different wire protocols, it can be
1319
+ # mapped differently. For example, it will likely be mapped to some exceptions
1320
+ # in Java, but more likely mapped to some error codes in C. # Other uses The
1321
+ # error model and the `Status` message can be used in a variety of environments,
1322
+ # either with or without APIs, to provide a consistent developer experience
1323
+ # across different environments. Example uses of this error model include: -
1324
+ # Partial errors. If a service needs to return partial errors to the client, it
1325
+ # may embed the `Status` in the normal response to indicate the partial errors. -
1326
+ # Workflow errors. A typical workflow has multiple steps. Each step may have a `
1327
+ # Status` message for error reporting purpose. - Batch operations. If a client
1328
+ # uses batch request and batch response, the `Status` message should be used
1329
+ # directly inside batch response, one for each error sub-response. -
1330
+ # Asynchronous operations. If an API call embeds asynchronous operation results
1331
+ # in its response, the status of those operations should be represented directly
1332
+ # using the `Status` message. - Logging. If some API errors are stored in logs,
1333
+ # the message `Status` could be used directly after any stripping needed for
1334
+ # security/privacy reasons.
1335
+ class Status
1336
+ include Google::Apis::Core::Hashable
1337
+
1338
+ # The status code, which should be an enum value of google.rpc.Code.
1339
+ # Corresponds to the JSON property `code`
1340
+ # @return [Fixnum]
1341
+ attr_accessor :code
1342
+
1343
+ # A developer-facing error message, which should be in English. Any user-facing
1344
+ # error message should be localized and sent in the google.rpc.Status.details
1345
+ # field, or localized by the client.
1346
+ # Corresponds to the JSON property `message`
1347
+ # @return [String]
1348
+ attr_accessor :message
1349
+
1350
+ # A list of messages that carry the error details. There will be a common set of
1351
+ # message types for APIs to use.
1352
+ # Corresponds to the JSON property `details`
1353
+ # @return [Array<Hash<String,Object>>]
1354
+ attr_accessor :details
1355
+
1356
+ def initialize(**args)
1357
+ update!(**args)
1358
+ end
1359
+
1360
+ # Update properties of this object
1361
+ def update!(**args)
1362
+ @code = args[:code] if args.key?(:code)
1363
+ @message = args[:message] if args.key?(:message)
1364
+ @details = args[:details] if args.key?(:details)
1365
+ end
1366
+ end
1367
+
1368
+ # An update to a Counter sent from a worker.
1369
+ class CounterUpdate
1370
+ include Google::Apis::Core::Hashable
1371
+
1372
+ # Basic metadata about a counter.
1373
+ # Corresponds to the JSON property `nameAndKind`
1374
+ # @return [Google::Apis::DataflowV1b3::NameAndKind]
1375
+ attr_accessor :name_and_kind
1376
+
1377
+ # The service-generated short identifier for this counter. The short_id -> (name,
1378
+ # metadata) mapping is constant for the lifetime of a job.
1379
+ # Corresponds to the JSON property `shortId`
1380
+ # @return [String]
1381
+ attr_accessor :short_id
1382
+
1383
+ # A single message which encapsulates structured name and metadata for a given
1384
+ # counter.
1385
+ # Corresponds to the JSON property `structuredNameAndMetadata`
1386
+ # @return [Google::Apis::DataflowV1b3::CounterStructuredNameAndMetadata]
1387
+ attr_accessor :structured_name_and_metadata
1388
+
1389
+ # True if this counter is reported as the total cumulative aggregate value
1390
+ # accumulated since the worker started working on this WorkItem. By default this
1391
+ # is false, indicating that this counter is reported as a delta.
1392
+ # Corresponds to the JSON property `cumulative`
1393
+ # @return [Boolean]
1394
+ attr_accessor :cumulative
1395
+ alias_method :cumulative?, :cumulative
1396
+
1397
+ # A representation of an int64, n, that is immune to precision loss when encoded
1398
+ # in JSON.
1399
+ # Corresponds to the JSON property `integer`
1400
+ # @return [Google::Apis::DataflowV1b3::SplitInt64]
1401
+ attr_accessor :integer
1402
+
1403
+ # Floating point value for Sum, Max, Min.
1404
+ # Corresponds to the JSON property `floatingPoint`
1405
+ # @return [Float]
1406
+ attr_accessor :floating_point
1407
+
1408
+ # Boolean value for And, Or.
1409
+ # Corresponds to the JSON property `boolean`
1410
+ # @return [Boolean]
1411
+ attr_accessor :boolean
1412
+ alias_method :boolean?, :boolean
1413
+
1414
+ # A representation of an integer mean metric contribution.
1415
+ # Corresponds to the JSON property `integerMean`
1416
+ # @return [Google::Apis::DataflowV1b3::IntegerMean]
1417
+ attr_accessor :integer_mean
1418
+
1419
+ # A representation of a floating point mean metric contribution.
1420
+ # Corresponds to the JSON property `floatingPointMean`
1421
+ # @return [Google::Apis::DataflowV1b3::FloatingPointMean]
1422
+ attr_accessor :floating_point_mean
1423
+
1424
+ # A metric value representing a list of integers.
1425
+ # Corresponds to the JSON property `integerList`
1426
+ # @return [Google::Apis::DataflowV1b3::IntegerList]
1427
+ attr_accessor :integer_list
1428
+
1429
+ # A metric value representing a list of floating point numbers.
1430
+ # Corresponds to the JSON property `floatingPointList`
1431
+ # @return [Google::Apis::DataflowV1b3::FloatingPointList]
1432
+ attr_accessor :floating_point_list
1433
+
1434
+ # A metric value representing a list of strings.
1435
+ # Corresponds to the JSON property `stringList`
1436
+ # @return [Google::Apis::DataflowV1b3::StringList]
1437
+ attr_accessor :string_list
1438
+
1439
+ # Value for internally-defined counters used by the Dataflow service.
1440
+ # Corresponds to the JSON property `internal`
1441
+ # @return [Object]
1442
+ attr_accessor :internal
1443
+
1444
+ def initialize(**args)
1445
+ update!(**args)
1446
+ end
1447
+
1448
+ # Update properties of this object
1449
+ def update!(**args)
1450
+ @name_and_kind = args[:name_and_kind] if args.key?(:name_and_kind)
1451
+ @short_id = args[:short_id] if args.key?(:short_id)
1452
+ @structured_name_and_metadata = args[:structured_name_and_metadata] if args.key?(:structured_name_and_metadata)
1453
+ @cumulative = args[:cumulative] if args.key?(:cumulative)
1454
+ @integer = args[:integer] if args.key?(:integer)
1455
+ @floating_point = args[:floating_point] if args.key?(:floating_point)
1456
+ @boolean = args[:boolean] if args.key?(:boolean)
1457
+ @integer_mean = args[:integer_mean] if args.key?(:integer_mean)
1458
+ @floating_point_mean = args[:floating_point_mean] if args.key?(:floating_point_mean)
1459
+ @integer_list = args[:integer_list] if args.key?(:integer_list)
1460
+ @floating_point_list = args[:floating_point_list] if args.key?(:floating_point_list)
1461
+ @string_list = args[:string_list] if args.key?(:string_list)
1462
+ @internal = args[:internal] if args.key?(:internal)
1463
+ end
1464
+ end
1465
+
1466
+ # Basic metadata about a counter.
1467
+ class NameAndKind
1468
+ include Google::Apis::Core::Hashable
1469
+
1470
+ # Name of the counter.
1471
+ # Corresponds to the JSON property `name`
1472
+ # @return [String]
1473
+ attr_accessor :name
1474
+
1475
+ # Counter aggregation kind.
1476
+ # Corresponds to the JSON property `kind`
1477
+ # @return [String]
1478
+ attr_accessor :kind
1479
+
1480
+ def initialize(**args)
1481
+ update!(**args)
1482
+ end
1483
+
1484
+ # Update properties of this object
1485
+ def update!(**args)
1486
+ @name = args[:name] if args.key?(:name)
1487
+ @kind = args[:kind] if args.key?(:kind)
1488
+ end
1489
+ end
1490
+
1491
+ # A single message which encapsulates structured name and metadata for a given
1492
+ # counter.
1493
+ class CounterStructuredNameAndMetadata
1494
+ include Google::Apis::Core::Hashable
1495
+
1496
+ # Identifies a counter within a per-job namespace. Counters whose structured
1497
+ # names are the same get merged into a single value for the job.
1498
+ # Corresponds to the JSON property `name`
1499
+ # @return [Google::Apis::DataflowV1b3::CounterStructuredName]
1500
+ attr_accessor :name
1501
+
1502
+ # CounterMetadata includes all static non-name non-value counter attributes.
1503
+ # Corresponds to the JSON property `metadata`
1504
+ # @return [Google::Apis::DataflowV1b3::CounterMetadata]
1505
+ attr_accessor :metadata
1506
+
1507
+ def initialize(**args)
1508
+ update!(**args)
1509
+ end
1510
+
1511
+ # Update properties of this object
1512
+ def update!(**args)
1513
+ @name = args[:name] if args.key?(:name)
1514
+ @metadata = args[:metadata] if args.key?(:metadata)
1515
+ end
1516
+ end
1517
+
1518
+ # Identifies a counter within a per-job namespace. Counters whose structured
1519
+ # names are the same get merged into a single value for the job.
1520
+ class CounterStructuredName
1521
+ include Google::Apis::Core::Hashable
1522
+
1523
+ # Counter name. Not necessarily globally-unique, but unique within the context
1524
+ # of the other fields. Required.
1525
+ # Corresponds to the JSON property `name`
1526
+ # @return [String]
1527
+ attr_accessor :name
1528
+
1529
+ # One of the standard Origins defined above.
1530
+ # Corresponds to the JSON property `standardOrigin`
1531
+ # @return [String]
1532
+ attr_accessor :standard_origin
1533
+
1534
+ # A string containing the origin of the counter.
1535
+ # Corresponds to the JSON property `otherOrigin`
1536
+ # @return [String]
1537
+ attr_accessor :other_origin
1538
+
1539
+ # System generated name of the original step in the user's graph, before
1540
+ # optimization.
1541
+ # Corresponds to the JSON property `originalStepName`
1542
+ # @return [String]
1543
+ attr_accessor :original_step_name
1544
+
1545
+ # Name of the optimized step being executed by the workers.
1546
+ # Corresponds to the JSON property `componentStepName`
1547
+ # @return [String]
1548
+ attr_accessor :component_step_name
1549
+
1550
+ # Name of the stage. An execution step contains multiple component steps.
1551
+ # Corresponds to the JSON property `executionStepName`
1552
+ # @return [String]
1553
+ attr_accessor :execution_step_name
1554
+
1555
+ # ID of a particular worker.
1556
+ # Corresponds to the JSON property `workerId`
1557
+ # @return [String]
1558
+ attr_accessor :worker_id
1559
+
1560
+ # Portion of this counter, either key or value.
1561
+ # Corresponds to the JSON property `portion`
1562
+ # @return [String]
1563
+ attr_accessor :portion
1564
+
1565
+ def initialize(**args)
1566
+ update!(**args)
1567
+ end
1568
+
1569
+ # Update properties of this object
1570
+ def update!(**args)
1571
+ @name = args[:name] if args.key?(:name)
1572
+ @standard_origin = args[:standard_origin] if args.key?(:standard_origin)
1573
+ @other_origin = args[:other_origin] if args.key?(:other_origin)
1574
+ @original_step_name = args[:original_step_name] if args.key?(:original_step_name)
1575
+ @component_step_name = args[:component_step_name] if args.key?(:component_step_name)
1576
+ @execution_step_name = args[:execution_step_name] if args.key?(:execution_step_name)
1577
+ @worker_id = args[:worker_id] if args.key?(:worker_id)
1578
+ @portion = args[:portion] if args.key?(:portion)
1579
+ end
1580
+ end
1581
+
1582
+ # CounterMetadata includes all static non-name non-value counter attributes.
1583
+ class CounterMetadata
1584
+ include Google::Apis::Core::Hashable
1585
+
1586
+ # Counter aggregation kind.
1587
+ # Corresponds to the JSON property `kind`
1588
+ # @return [String]
1589
+ attr_accessor :kind
1590
+
1591
+ # Human-readable description of the counter semantics.
1592
+ # Corresponds to the JSON property `description`
1593
+ # @return [String]
1594
+ attr_accessor :description
1595
+
1596
+ # System defined Units, see above enum.
1597
+ # Corresponds to the JSON property `standardUnits`
1598
+ # @return [String]
1599
+ attr_accessor :standard_units
1600
+
1601
+ # A string referring to the unit type.
1602
+ # Corresponds to the JSON property `otherUnits`
1603
+ # @return [String]
1604
+ attr_accessor :other_units
1605
+
1606
+ def initialize(**args)
1607
+ update!(**args)
1608
+ end
1609
+
1610
+ # Update properties of this object
1611
+ def update!(**args)
1612
+ @kind = args[:kind] if args.key?(:kind)
1613
+ @description = args[:description] if args.key?(:description)
1614
+ @standard_units = args[:standard_units] if args.key?(:standard_units)
1615
+ @other_units = args[:other_units] if args.key?(:other_units)
1616
+ end
1617
+ end
1618
+
1619
+ # A representation of an int64, n, that is immune to precision loss when encoded
1620
+ # in JSON.
1621
+ class SplitInt64
1622
+ include Google::Apis::Core::Hashable
1623
+
1624
+ # The low order bits: n & 0xffffffff.
1625
+ # Corresponds to the JSON property `lowBits`
1626
+ # @return [Fixnum]
1627
+ attr_accessor :low_bits
1628
+
1629
+ # The high order bits, including the sign: n >> 32.
1630
+ # Corresponds to the JSON property `highBits`
1631
+ # @return [Fixnum]
1632
+ attr_accessor :high_bits
1633
+
1634
+ def initialize(**args)
1635
+ update!(**args)
1636
+ end
1637
+
1638
+ # Update properties of this object
1639
+ def update!(**args)
1640
+ @low_bits = args[:low_bits] if args.key?(:low_bits)
1641
+ @high_bits = args[:high_bits] if args.key?(:high_bits)
1642
+ end
1643
+ end
1644
+
1645
+ # A representation of an integer mean metric contribution.
1646
+ class IntegerMean
1647
+ include Google::Apis::Core::Hashable
1648
+
1649
+ # A representation of an int64, n, that is immune to precision loss when encoded
1650
+ # in JSON.
1651
+ # Corresponds to the JSON property `sum`
1652
+ # @return [Google::Apis::DataflowV1b3::SplitInt64]
1653
+ attr_accessor :sum
1654
+
1655
+ # A representation of an int64, n, that is immune to precision loss when encoded
1656
+ # in JSON.
1657
+ # Corresponds to the JSON property `count`
1658
+ # @return [Google::Apis::DataflowV1b3::SplitInt64]
1659
+ attr_accessor :count
1660
+
1661
+ def initialize(**args)
1662
+ update!(**args)
1663
+ end
1664
+
1665
+ # Update properties of this object
1666
+ def update!(**args)
1667
+ @sum = args[:sum] if args.key?(:sum)
1668
+ @count = args[:count] if args.key?(:count)
1669
+ end
1670
+ end
1671
+
1672
+ # A representation of a floating point mean metric contribution.
1673
+ class FloatingPointMean
1674
+ include Google::Apis::Core::Hashable
1675
+
1676
+ # The sum of all values being aggregated.
1677
+ # Corresponds to the JSON property `sum`
1678
+ # @return [Float]
1679
+ attr_accessor :sum
1680
+
1681
+ # A representation of an int64, n, that is immune to precision loss when encoded
1682
+ # in JSON.
1683
+ # Corresponds to the JSON property `count`
1684
+ # @return [Google::Apis::DataflowV1b3::SplitInt64]
1685
+ attr_accessor :count
1686
+
1687
+ def initialize(**args)
1688
+ update!(**args)
1689
+ end
1690
+
1691
+ # Update properties of this object
1692
+ def update!(**args)
1693
+ @sum = args[:sum] if args.key?(:sum)
1694
+ @count = args[:count] if args.key?(:count)
1695
+ end
1696
+ end
1697
+
1698
+ # A metric value representing a list of integers.
1699
+ class IntegerList
1700
+ include Google::Apis::Core::Hashable
1701
+
1702
+ # Elements of the list.
1703
+ # Corresponds to the JSON property `elements`
1704
+ # @return [Array<Google::Apis::DataflowV1b3::SplitInt64>]
1705
+ attr_accessor :elements
1706
+
1707
+ def initialize(**args)
1708
+ update!(**args)
1709
+ end
1710
+
1711
+ # Update properties of this object
1712
+ def update!(**args)
1713
+ @elements = args[:elements] if args.key?(:elements)
1714
+ end
1715
+ end
1716
+
1717
+ # A metric value representing a list of floating point numbers.
1718
+ class FloatingPointList
1719
+ include Google::Apis::Core::Hashable
1720
+
1721
+ # Elements of the list.
1722
+ # Corresponds to the JSON property `elements`
1723
+ # @return [Array<Float>]
1724
+ attr_accessor :elements
1725
+
1726
+ def initialize(**args)
1727
+ update!(**args)
1728
+ end
1729
+
1730
+ # Update properties of this object
1731
+ def update!(**args)
1732
+ @elements = args[:elements] if args.key?(:elements)
1733
+ end
1734
+ end
1735
+
1736
+ # A metric value representing a list of strings.
1737
+ class StringList
1738
+ include Google::Apis::Core::Hashable
1739
+
1740
+ # Elements of the list.
1741
+ # Corresponds to the JSON property `elements`
1742
+ # @return [Array<String>]
1743
+ attr_accessor :elements
1744
+
1745
+ def initialize(**args)
1746
+ update!(**args)
1747
+ end
1748
+
1749
+ # Update properties of this object
1750
+ def update!(**args)
1751
+ @elements = args[:elements] if args.key?(:elements)
1752
+ end
1753
+ end
1754
+
1755
+ # A progress measurement of a WorkItem by a worker.
1756
+ class ApproximateReportedProgress
1757
+ include Google::Apis::Core::Hashable
1758
+
1759
+ # Position defines a position within a collection of data. The value can be
1760
+ # either the end position, a key (used with ordered collections), a byte offset,
1761
+ # or a record index.
1762
+ # Corresponds to the JSON property `position`
1763
+ # @return [Google::Apis::DataflowV1b3::Position]
1764
+ attr_accessor :position
1765
+
1766
+ # Completion as fraction of the input consumed, from 0.0 (beginning, nothing
1767
+ # consumed), to 1.0 (end of the input, entire input consumed).
1768
+ # Corresponds to the JSON property `fractionConsumed`
1769
+ # @return [Float]
1770
+ attr_accessor :fraction_consumed
1771
+
1772
+ # Represents the level of parallelism in a WorkItem's input, reported by the
1773
+ # worker.
1774
+ # Corresponds to the JSON property `remainingParallelism`
1775
+ # @return [Google::Apis::DataflowV1b3::ReportedParallelism]
1776
+ attr_accessor :remaining_parallelism
1777
+
1778
+ # Represents the level of parallelism in a WorkItem's input, reported by the
1779
+ # worker.
1780
+ # Corresponds to the JSON property `consumedParallelism`
1781
+ # @return [Google::Apis::DataflowV1b3::ReportedParallelism]
1782
+ attr_accessor :consumed_parallelism
1783
+
1784
+ def initialize(**args)
1785
+ update!(**args)
1786
+ end
1787
+
1788
+ # Update properties of this object
1789
+ def update!(**args)
1790
+ @position = args[:position] if args.key?(:position)
1791
+ @fraction_consumed = args[:fraction_consumed] if args.key?(:fraction_consumed)
1792
+ @remaining_parallelism = args[:remaining_parallelism] if args.key?(:remaining_parallelism)
1793
+ @consumed_parallelism = args[:consumed_parallelism] if args.key?(:consumed_parallelism)
1794
+ end
1795
+ end
1796
+
1797
+ # Position defines a position within a collection of data. The value can be
1798
+ # either the end position, a key (used with ordered collections), a byte offset,
1799
+ # or a record index.
1800
+ class Position
1801
+ include Google::Apis::Core::Hashable
1802
+
1803
+ # Position is past all other positions. Also useful for the end position of an
1804
+ # unbounded range.
1805
+ # Corresponds to the JSON property `end`
1806
+ # @return [Boolean]
1807
+ attr_accessor :end
1808
+ alias_method :end?, :end
1809
+
1810
+ # Position is a string key, ordered lexicographically.
1811
+ # Corresponds to the JSON property `key`
1812
+ # @return [String]
1813
+ attr_accessor :key
1814
+
1815
+ # Position is a byte offset.
1816
+ # Corresponds to the JSON property `byteOffset`
1817
+ # @return [String]
1818
+ attr_accessor :byte_offset
1819
+
1820
+ # Position is a record index.
1821
+ # Corresponds to the JSON property `recordIndex`
1822
+ # @return [String]
1823
+ attr_accessor :record_index
1824
+
1825
+ # CloudPosition is a base64 encoded BatchShufflePosition (with FIXED sharding).
1826
+ # Corresponds to the JSON property `shufflePosition`
1827
+ # @return [String]
1828
+ attr_accessor :shuffle_position
1829
+
1830
+ # A position that encapsulates an inner position and an index for the inner
1831
+ # position. A ConcatPosition can be used by a reader of a source that
1832
+ # encapsulates a set of other sources.
1833
+ # Corresponds to the JSON property `concatPosition`
1834
+ # @return [Google::Apis::DataflowV1b3::ConcatPosition]
1835
+ attr_accessor :concat_position
1836
+
1837
+ def initialize(**args)
1838
+ update!(**args)
1839
+ end
1840
+
1841
+ # Update properties of this object
1842
+ def update!(**args)
1843
+ @end = args[:end] if args.key?(:end)
1844
+ @key = args[:key] if args.key?(:key)
1845
+ @byte_offset = args[:byte_offset] if args.key?(:byte_offset)
1846
+ @record_index = args[:record_index] if args.key?(:record_index)
1847
+ @shuffle_position = args[:shuffle_position] if args.key?(:shuffle_position)
1848
+ @concat_position = args[:concat_position] if args.key?(:concat_position)
1849
+ end
1850
+ end
1851
+
1852
+ # A position that encapsulates an inner position and an index for the inner
1853
+ # position. A ConcatPosition can be used by a reader of a source that
1854
+ # encapsulates a set of other sources.
1855
+ class ConcatPosition
1856
+ include Google::Apis::Core::Hashable
1857
+
1858
+ # Index of the inner source.
1859
+ # Corresponds to the JSON property `index`
1860
+ # @return [Fixnum]
1861
+ attr_accessor :index
1862
+
1863
+ # Position defines a position within a collection of data. The value can be
1864
+ # either the end position, a key (used with ordered collections), a byte offset,
1865
+ # or a record index.
1866
+ # Corresponds to the JSON property `position`
1867
+ # @return [Google::Apis::DataflowV1b3::Position]
1868
+ attr_accessor :position
1869
+
1870
+ def initialize(**args)
1871
+ update!(**args)
1872
+ end
1873
+
1874
+ # Update properties of this object
1875
+ def update!(**args)
1876
+ @index = args[:index] if args.key?(:index)
1877
+ @position = args[:position] if args.key?(:position)
1878
+ end
1879
+ end
1880
+
1881
+ # Represents the level of parallelism in a WorkItem's input, reported by the
1882
+ # worker.
1883
+ class ReportedParallelism
1884
+ include Google::Apis::Core::Hashable
1885
+
1886
+ # Specifies whether the parallelism is infinite. If true, "value" is ignored.
1887
+ # Infinite parallelism means the service will assume that the work item can
1888
+ # always be split into more non-empty work items by dynamic splitting. This is a
1889
+ # work-around for lack of support for infinity by the current JSON-based Java
1890
+ # RPC stack.
1891
+ # Corresponds to the JSON property `isInfinite`
1892
+ # @return [Boolean]
1893
+ attr_accessor :is_infinite
1894
+ alias_method :is_infinite?, :is_infinite
1895
+
1896
+ # Specifies the level of parallelism in case it is finite.
1897
+ # Corresponds to the JSON property `value`
1898
+ # @return [Float]
1899
+ attr_accessor :value
1900
+
1901
+ def initialize(**args)
1902
+ update!(**args)
1903
+ end
1904
+
1905
+ # Update properties of this object
1906
+ def update!(**args)
1907
+ @is_infinite = args[:is_infinite] if args.key?(:is_infinite)
1908
+ @value = args[:value] if args.key?(:value)
1909
+ end
1910
+ end
1911
+
1912
+ # When a task splits using WorkItemStatus.dynamic_source_split, this message
1913
+ # describes the two parts of the split relative to the description of the
1914
+ # current task's input.
1915
+ class DynamicSourceSplit
1916
+ include Google::Apis::Core::Hashable
1917
+
1918
+ # Specification of one of the bundles produced as a result of splitting a Source
1919
+ # (e.g. when executing a SourceSplitRequest, or when splitting an active task
1920
+ # using WorkItemStatus.dynamic_source_split), relative to the source being split.
1921
+ # Corresponds to the JSON property `primary`
1922
+ # @return [Google::Apis::DataflowV1b3::DerivedSource]
1923
+ attr_accessor :primary
1924
+
1925
+ # Specification of one of the bundles produced as a result of splitting a Source
1926
+ # (e.g. when executing a SourceSplitRequest, or when splitting an active task
1927
+ # using WorkItemStatus.dynamic_source_split), relative to the source being split.
1928
+ # Corresponds to the JSON property `residual`
1929
+ # @return [Google::Apis::DataflowV1b3::DerivedSource]
1930
+ attr_accessor :residual
1931
+
1932
+ def initialize(**args)
1933
+ update!(**args)
1934
+ end
1935
+
1936
+ # Update properties of this object
1937
+ def update!(**args)
1938
+ @primary = args[:primary] if args.key?(:primary)
1939
+ @residual = args[:residual] if args.key?(:residual)
1940
+ end
1941
+ end
1942
+
1943
+ # Specification of one of the bundles produced as a result of splitting a Source
1944
+ # (e.g. when executing a SourceSplitRequest, or when splitting an active task
1945
+ # using WorkItemStatus.dynamic_source_split), relative to the source being split.
1946
+ class DerivedSource
1947
+ include Google::Apis::Core::Hashable
1948
+
1949
+ # A source that records can be read and decoded from.
1950
+ # Corresponds to the JSON property `source`
1951
+ # @return [Google::Apis::DataflowV1b3::Source]
1952
+ attr_accessor :source
1953
+
1954
+ # What source to base the produced source on (if any).
1955
+ # Corresponds to the JSON property `derivationMode`
1956
+ # @return [String]
1957
+ attr_accessor :derivation_mode
1958
+
1959
+ def initialize(**args)
1960
+ update!(**args)
1961
+ end
1962
+
1963
+ # Update properties of this object
1964
+ def update!(**args)
1965
+ @source = args[:source] if args.key?(:source)
1966
+ @derivation_mode = args[:derivation_mode] if args.key?(:derivation_mode)
1967
+ end
1968
+ end
1969
+
1970
+ # A source that records can be read and decoded from.
1971
+ class Source
1972
+ include Google::Apis::Core::Hashable
1973
+
1974
+ # The source to read from, plus its parameters.
1975
+ # Corresponds to the JSON property `spec`
1976
+ # @return [Hash<String,Object>]
1977
+ attr_accessor :spec
1978
+
1979
+ # The codec to use to decode data read from the source.
1980
+ # Corresponds to the JSON property `codec`
1981
+ # @return [Hash<String,Object>]
1982
+ attr_accessor :codec
1983
+
1984
+ # While splitting, sources may specify the produced bundles as differences
1985
+ # against another source, in order to save backend-side memory and allow bigger
1986
+ # jobs. For details, see SourceSplitRequest. To support this use case, the full
1987
+ # set of parameters of the source is logically obtained by taking the latest
1988
+ # explicitly specified value of each parameter in the order: base_specs (later
1989
+ # items win), spec (overrides anything in base_specs).
1990
+ # Corresponds to the JSON property `baseSpecs`
1991
+ # @return [Array<Hash<String,Object>>]
1992
+ attr_accessor :base_specs
1993
+
1994
+ # Metadata about a Source useful for automatically optimizing and tuning the
1995
+ # pipeline, etc.
1996
+ # Corresponds to the JSON property `metadata`
1997
+ # @return [Google::Apis::DataflowV1b3::SourceMetadata]
1998
+ attr_accessor :metadata
1999
+
2000
+ # Setting this value to true hints to the framework that the source doesn't need
2001
+ # splitting, and using SourceSplitRequest on it would yield
2002
+ # SOURCE_SPLIT_OUTCOME_USE_CURRENT. E.g. a file splitter may set this to true
2003
+ # when splitting a single file into a set of byte ranges of appropriate size,
2004
+ # and set this to false when splitting a filepattern into individual files.
2005
+ # However, for efficiency, a file splitter may decide to produce file subranges
2006
+ # directly from the filepattern to avoid a splitting round-trip. See
2007
+ # SourceSplitRequest for an overview of the splitting process. This field is
2008
+ # meaningful only in the Source objects populated by the user (e.g. when filling
2009
+ # in a DerivedSource). Source objects supplied by the framework to the user don'
2010
+ # t have this field populated.
2011
+ # Corresponds to the JSON property `doesNotNeedSplitting`
2012
+ # @return [Boolean]
2013
+ attr_accessor :does_not_need_splitting
2014
+ alias_method :does_not_need_splitting?, :does_not_need_splitting
2015
+
2016
+ def initialize(**args)
2017
+ update!(**args)
2018
+ end
2019
+
2020
+ # Update properties of this object
2021
+ def update!(**args)
2022
+ @spec = args[:spec] if args.key?(:spec)
2023
+ @codec = args[:codec] if args.key?(:codec)
2024
+ @base_specs = args[:base_specs] if args.key?(:base_specs)
2025
+ @metadata = args[:metadata] if args.key?(:metadata)
2026
+ @does_not_need_splitting = args[:does_not_need_splitting] if args.key?(:does_not_need_splitting)
2027
+ end
2028
+ end
2029
+
2030
+ # Metadata about a Source useful for automatically optimizing and tuning the
2031
+ # pipeline, etc.
2032
+ class SourceMetadata
2033
+ include Google::Apis::Core::Hashable
2034
+
2035
+ # Whether this source is known to produce key/value pairs with the (encoded)
2036
+ # keys in lexicographically sorted order.
2037
+ # Corresponds to the JSON property `producesSortedKeys`
2038
+ # @return [Boolean]
2039
+ attr_accessor :produces_sorted_keys
2040
+ alias_method :produces_sorted_keys?, :produces_sorted_keys
2041
+
2042
+ # Specifies that the size of this source is known to be infinite (this is a
2043
+ # streaming source).
2044
+ # Corresponds to the JSON property `infinite`
2045
+ # @return [Boolean]
2046
+ attr_accessor :infinite
2047
+ alias_method :infinite?, :infinite
2048
+
2049
+ # An estimate of the total size (in bytes) of the data that would be read from
2050
+ # this source. This estimate is in terms of external storage size, before any
2051
+ # decompression or other processing done by the reader.
2052
+ # Corresponds to the JSON property `estimatedSizeBytes`
2053
+ # @return [String]
2054
+ attr_accessor :estimated_size_bytes
2055
+
2056
+ def initialize(**args)
2057
+ update!(**args)
2058
+ end
2059
+
2060
+ # Update properties of this object
2061
+ def update!(**args)
2062
+ @produces_sorted_keys = args[:produces_sorted_keys] if args.key?(:produces_sorted_keys)
2063
+ @infinite = args[:infinite] if args.key?(:infinite)
2064
+ @estimated_size_bytes = args[:estimated_size_bytes] if args.key?(:estimated_size_bytes)
2065
+ end
2066
+ end
2067
+
2068
+ # The result of a SourceOperationRequest, specified in
2069
+ # ReportWorkItemStatusRequest.source_operation when the work item is completed.
2070
+ class SourceOperationResponse
2071
+ include Google::Apis::Core::Hashable
2072
+
2073
+ # The response to a SourceSplitRequest.
2074
+ # Corresponds to the JSON property `split`
2075
+ # @return [Google::Apis::DataflowV1b3::SourceSplitResponse]
2076
+ attr_accessor :split
2077
+
2078
+ # The result of a SourceGetMetadataOperation.
2079
+ # Corresponds to the JSON property `getMetadata`
2080
+ # @return [Google::Apis::DataflowV1b3::SourceGetMetadataResponse]
2081
+ attr_accessor :get_metadata
2082
+
2083
+ def initialize(**args)
2084
+ update!(**args)
2085
+ end
2086
+
2087
+ # Update properties of this object
2088
+ def update!(**args)
2089
+ @split = args[:split] if args.key?(:split)
2090
+ @get_metadata = args[:get_metadata] if args.key?(:get_metadata)
2091
+ end
2092
+ end
2093
+
2094
+ # The response to a SourceSplitRequest.
2095
+ class SourceSplitResponse
2096
+ include Google::Apis::Core::Hashable
2097
+
2098
+ # Indicates whether splitting happened and produced a list of bundles. If this
2099
+ # is USE_CURRENT_SOURCE_AS_IS, the current source should be processed "as is"
2100
+ # without splitting. "bundles" is ignored in this case. If this is
2101
+ # SPLITTING_HAPPENED, then "bundles" contains a list of bundles into which the
2102
+ # source was split.
2103
+ # Corresponds to the JSON property `outcome`
2104
+ # @return [String]
2105
+ attr_accessor :outcome
2106
+
2107
+ # If outcome is SPLITTING_HAPPENED, then this is a list of bundles into which
2108
+ # the source was split. Otherwise this field is ignored. This list can be empty,
2109
+ # which means the source represents an empty input.
2110
+ # Corresponds to the JSON property `bundles`
2111
+ # @return [Array<Google::Apis::DataflowV1b3::DerivedSource>]
2112
+ attr_accessor :bundles
2113
+
2114
+ # DEPRECATED in favor of bundles.
2115
+ # Corresponds to the JSON property `shards`
2116
+ # @return [Array<Google::Apis::DataflowV1b3::SourceSplitShard>]
2117
+ attr_accessor :shards
2118
+
2119
+ def initialize(**args)
2120
+ update!(**args)
2121
+ end
2122
+
2123
+ # Update properties of this object
2124
+ def update!(**args)
2125
+ @outcome = args[:outcome] if args.key?(:outcome)
2126
+ @bundles = args[:bundles] if args.key?(:bundles)
2127
+ @shards = args[:shards] if args.key?(:shards)
2128
+ end
2129
+ end
2130
+
2131
+ # DEPRECATED in favor of DerivedSource.
2132
+ class SourceSplitShard
2133
+ include Google::Apis::Core::Hashable
2134
+
2135
+ # A source that records can be read and decoded from.
2136
+ # Corresponds to the JSON property `source`
2137
+ # @return [Google::Apis::DataflowV1b3::Source]
2138
+ attr_accessor :source
2139
+
2140
+ # DEPRECATED
2141
+ # Corresponds to the JSON property `derivationMode`
2142
+ # @return [String]
2143
+ attr_accessor :derivation_mode
2144
+
2145
+ def initialize(**args)
2146
+ update!(**args)
2147
+ end
2148
+
2149
+ # Update properties of this object
2150
+ def update!(**args)
2151
+ @source = args[:source] if args.key?(:source)
2152
+ @derivation_mode = args[:derivation_mode] if args.key?(:derivation_mode)
2153
+ end
2154
+ end
2155
+
2156
+ # The result of a SourceGetMetadataOperation.
2157
+ class SourceGetMetadataResponse
2158
+ include Google::Apis::Core::Hashable
2159
+
2160
+ # Metadata about a Source useful for automatically optimizing and tuning the
2161
+ # pipeline, etc.
2162
+ # Corresponds to the JSON property `metadata`
2163
+ # @return [Google::Apis::DataflowV1b3::SourceMetadata]
2164
+ attr_accessor :metadata
2165
+
2166
+ def initialize(**args)
2167
+ update!(**args)
2168
+ end
2169
+
2170
+ # Update properties of this object
2171
+ def update!(**args)
2172
+ @metadata = args[:metadata] if args.key?(:metadata)
2173
+ end
2174
+ end
2175
+
2176
+ # DEPRECATED in favor of DynamicSourceSplit.
2177
+ class SourceFork
2178
+ include Google::Apis::Core::Hashable
2179
+
2180
+ # DEPRECATED in favor of DerivedSource.
2181
+ # Corresponds to the JSON property `primary`
2182
+ # @return [Google::Apis::DataflowV1b3::SourceSplitShard]
2183
+ attr_accessor :primary
2184
+
2185
+ # DEPRECATED in favor of DerivedSource.
2186
+ # Corresponds to the JSON property `residual`
2187
+ # @return [Google::Apis::DataflowV1b3::SourceSplitShard]
2188
+ attr_accessor :residual
2189
+
2190
+ # Specification of one of the bundles produced as a result of splitting a Source
2191
+ # (e.g. when executing a SourceSplitRequest, or when splitting an active task
2192
+ # using WorkItemStatus.dynamic_source_split), relative to the source being split.
2193
+ # Corresponds to the JSON property `primarySource`
2194
+ # @return [Google::Apis::DataflowV1b3::DerivedSource]
2195
+ attr_accessor :primary_source
2196
+
2197
+ # Specification of one of the bundles produced as a result of splitting a Source
2198
+ # (e.g. when executing a SourceSplitRequest, or when splitting an active task
2199
+ # using WorkItemStatus.dynamic_source_split), relative to the source being split.
2200
+ # Corresponds to the JSON property `residualSource`
2201
+ # @return [Google::Apis::DataflowV1b3::DerivedSource]
2202
+ attr_accessor :residual_source
2203
+
2204
+ def initialize(**args)
2205
+ update!(**args)
2206
+ end
2207
+
2208
+ # Update properties of this object
2209
+ def update!(**args)
2210
+ @primary = args[:primary] if args.key?(:primary)
2211
+ @residual = args[:residual] if args.key?(:residual)
2212
+ @primary_source = args[:primary_source] if args.key?(:primary_source)
2213
+ @residual_source = args[:residual_source] if args.key?(:residual_source)
2214
+ end
2215
+ end
2216
+
2217
+ # Obsolete in favor of ApproximateReportedProgress and ApproximateSplitRequest.
2218
+ class ApproximateProgress
2219
+ include Google::Apis::Core::Hashable
2220
+
2221
+ # Position defines a position within a collection of data. The value can be
2222
+ # either the end position, a key (used with ordered collections), a byte offset,
2223
+ # or a record index.
2224
+ # Corresponds to the JSON property `position`
2225
+ # @return [Google::Apis::DataflowV1b3::Position]
2226
+ attr_accessor :position
2227
+
2228
+ # Obsolete.
2229
+ # Corresponds to the JSON property `percentComplete`
2230
+ # @return [Float]
2231
+ attr_accessor :percent_complete
2232
+
2233
+ # Obsolete.
2234
+ # Corresponds to the JSON property `remainingTime`
2235
+ # @return [String]
2236
+ attr_accessor :remaining_time
2237
+
2238
+ def initialize(**args)
2239
+ update!(**args)
2240
+ end
2241
+
2242
+ # Update properties of this object
2243
+ def update!(**args)
2244
+ @position = args[:position] if args.key?(:position)
2245
+ @percent_complete = args[:percent_complete] if args.key?(:percent_complete)
2246
+ @remaining_time = args[:remaining_time] if args.key?(:remaining_time)
2247
+ end
2248
+ end
2249
+
2250
+ # Response from a request to report the status of WorkItems.
2251
+ class ReportWorkItemStatusResponse
2252
+ include Google::Apis::Core::Hashable
2253
+
2254
+ # A set of messages indicating the service-side state for each WorkItem whose
2255
+ # status was reported, in the same order as the WorkItemStatus messages in the
2256
+ # ReportWorkItemStatusRequest which resulting in this response.
2257
+ # Corresponds to the JSON property `workItemServiceStates`
2258
+ # @return [Array<Google::Apis::DataflowV1b3::WorkItemServiceState>]
2259
+ attr_accessor :work_item_service_states
2260
+
2261
+ def initialize(**args)
2262
+ update!(**args)
2263
+ end
2264
+
2265
+ # Update properties of this object
2266
+ def update!(**args)
2267
+ @work_item_service_states = args[:work_item_service_states] if args.key?(:work_item_service_states)
2268
+ end
2269
+ end
2270
+
2271
+ # The Dataflow service's idea of the current state of a WorkItem being processed
2272
+ # by a worker.
2273
+ class WorkItemServiceState
2274
+ include Google::Apis::Core::Hashable
2275
+
2276
+ # A suggestion by the service to the worker to dynamically split the WorkItem.
2277
+ # Corresponds to the JSON property `splitRequest`
2278
+ # @return [Google::Apis::DataflowV1b3::ApproximateSplitRequest]
2279
+ attr_accessor :split_request
2280
+
2281
+ # Time at which the current lease will expire.
2282
+ # Corresponds to the JSON property `leaseExpireTime`
2283
+ # @return [String]
2284
+ attr_accessor :lease_expire_time
2285
+
2286
+ # New recommended reporting interval.
2287
+ # Corresponds to the JSON property `reportStatusInterval`
2288
+ # @return [String]
2289
+ attr_accessor :report_status_interval
2290
+
2291
+ # Other data returned by the service, specific to the particular worker harness.
2292
+ # Corresponds to the JSON property `harnessData`
2293
+ # @return [Hash<String,Object>]
2294
+ attr_accessor :harness_data
2295
+
2296
+ # The index value to use for the next report sent by the worker. Note: If the
2297
+ # report call fails for whatever reason, the worker should reuse this index for
2298
+ # subsequent report attempts.
2299
+ # Corresponds to the JSON property `nextReportIndex`
2300
+ # @return [String]
2301
+ attr_accessor :next_report_index
2302
+
2303
+ # The short ids that workers should use in subsequent metric updates. Workers
2304
+ # should strive to use short ids whenever possible, but it is ok to request the
2305
+ # short_id again if a worker lost track of it (e.g. if the worker is recovering
2306
+ # from a crash). NOTE: it is possible that the response may have short ids for a
2307
+ # subset of the metrics.
2308
+ # Corresponds to the JSON property `metricShortId`
2309
+ # @return [Array<Google::Apis::DataflowV1b3::MetricShortId>]
2310
+ attr_accessor :metric_short_id
2311
+
2312
+ # Position defines a position within a collection of data. The value can be
2313
+ # either the end position, a key (used with ordered collections), a byte offset,
2314
+ # or a record index.
2315
+ # Corresponds to the JSON property `suggestedStopPosition`
2316
+ # @return [Google::Apis::DataflowV1b3::Position]
2317
+ attr_accessor :suggested_stop_position
2318
+
2319
+ # Obsolete in favor of ApproximateReportedProgress and ApproximateSplitRequest.
2320
+ # Corresponds to the JSON property `suggestedStopPoint`
2321
+ # @return [Google::Apis::DataflowV1b3::ApproximateProgress]
2322
+ attr_accessor :suggested_stop_point
2323
+
2324
+ def initialize(**args)
2325
+ update!(**args)
2326
+ end
2327
+
2328
+ # Update properties of this object
2329
+ def update!(**args)
2330
+ @split_request = args[:split_request] if args.key?(:split_request)
2331
+ @lease_expire_time = args[:lease_expire_time] if args.key?(:lease_expire_time)
2332
+ @report_status_interval = args[:report_status_interval] if args.key?(:report_status_interval)
2333
+ @harness_data = args[:harness_data] if args.key?(:harness_data)
2334
+ @next_report_index = args[:next_report_index] if args.key?(:next_report_index)
2335
+ @metric_short_id = args[:metric_short_id] if args.key?(:metric_short_id)
2336
+ @suggested_stop_position = args[:suggested_stop_position] if args.key?(:suggested_stop_position)
2337
+ @suggested_stop_point = args[:suggested_stop_point] if args.key?(:suggested_stop_point)
2338
+ end
2339
+ end
2340
+
2341
+ # A suggestion by the service to the worker to dynamically split the WorkItem.
2342
+ class ApproximateSplitRequest
2343
+ include Google::Apis::Core::Hashable
2344
+
2345
+ # Position defines a position within a collection of data. The value can be
2346
+ # either the end position, a key (used with ordered collections), a byte offset,
2347
+ # or a record index.
2348
+ # Corresponds to the JSON property `position`
2349
+ # @return [Google::Apis::DataflowV1b3::Position]
2350
+ attr_accessor :position
2351
+
2352
+ # A fraction at which to split the work item, from 0.0 (beginning of the input)
2353
+ # to 1.0 (end of the input).
2354
+ # Corresponds to the JSON property `fractionConsumed`
2355
+ # @return [Float]
2356
+ attr_accessor :fraction_consumed
2357
+
2358
+ def initialize(**args)
2359
+ update!(**args)
2360
+ end
2361
+
2362
+ # Update properties of this object
2363
+ def update!(**args)
2364
+ @position = args[:position] if args.key?(:position)
2365
+ @fraction_consumed = args[:fraction_consumed] if args.key?(:fraction_consumed)
2366
+ end
2367
+ end
2368
+
2369
+ # The metric short id is returned to the user alongside an offset into
2370
+ # ReportWorkItemStatusRequest
2371
+ class MetricShortId
2372
+ include Google::Apis::Core::Hashable
2373
+
2374
+ # The index of the corresponding metric in the ReportWorkItemStatusRequest.
2375
+ # Required.
2376
+ # Corresponds to the JSON property `metricIndex`
2377
+ # @return [Fixnum]
2378
+ attr_accessor :metric_index
2379
+
2380
+ # The service-generated short identifier for the metric.
2381
+ # Corresponds to the JSON property `shortId`
2382
+ # @return [String]
2383
+ attr_accessor :short_id
2384
+
2385
+ def initialize(**args)
2386
+ update!(**args)
2387
+ end
2388
+
2389
+ # Update properties of this object
2390
+ def update!(**args)
2391
+ @metric_index = args[:metric_index] if args.key?(:metric_index)
2392
+ @short_id = args[:short_id] if args.key?(:short_id)
2393
+ end
2394
+ end
2395
+
2396
+ # Request to lease WorkItems.
2397
+ class LeaseWorkItemRequest
2398
+ include Google::Apis::Core::Hashable
2399
+
2400
+ # Filter for WorkItem type.
2401
+ # Corresponds to the JSON property `workItemTypes`
2402
+ # @return [Array<String>]
2403
+ attr_accessor :work_item_types
2404
+
2405
+ # Worker capabilities. WorkItems might be limited to workers with specific
2406
+ # capabilities.
2407
+ # Corresponds to the JSON property `workerCapabilities`
2408
+ # @return [Array<String>]
2409
+ attr_accessor :worker_capabilities
2410
+
2411
+ # The initial lease period.
2412
+ # Corresponds to the JSON property `requestedLeaseDuration`
2413
+ # @return [String]
2414
+ attr_accessor :requested_lease_duration
2415
+
2416
+ # The current timestamp at the worker.
2417
+ # Corresponds to the JSON property `currentWorkerTime`
2418
+ # @return [String]
2419
+ attr_accessor :current_worker_time
2420
+
2421
+ # Identifies the worker leasing work -- typically the ID of the virtual machine
2422
+ # running the worker.
2423
+ # Corresponds to the JSON property `workerId`
2424
+ # @return [String]
2425
+ attr_accessor :worker_id
2426
+
2427
+ def initialize(**args)
2428
+ update!(**args)
2429
+ end
2430
+
2431
+ # Update properties of this object
2432
+ def update!(**args)
2433
+ @work_item_types = args[:work_item_types] if args.key?(:work_item_types)
2434
+ @worker_capabilities = args[:worker_capabilities] if args.key?(:worker_capabilities)
2435
+ @requested_lease_duration = args[:requested_lease_duration] if args.key?(:requested_lease_duration)
2436
+ @current_worker_time = args[:current_worker_time] if args.key?(:current_worker_time)
2437
+ @worker_id = args[:worker_id] if args.key?(:worker_id)
2438
+ end
2439
+ end
2440
+
2441
+ # Response to a request to lease WorkItems.
2442
+ class LeaseWorkItemResponse
2443
+ include Google::Apis::Core::Hashable
2444
+
2445
+ # A list of the leased WorkItems.
2446
+ # Corresponds to the JSON property `workItems`
2447
+ # @return [Array<Google::Apis::DataflowV1b3::WorkItem>]
2448
+ attr_accessor :work_items
2449
+
2450
+ def initialize(**args)
2451
+ update!(**args)
2452
+ end
2453
+
2454
+ # Update properties of this object
2455
+ def update!(**args)
2456
+ @work_items = args[:work_items] if args.key?(:work_items)
2457
+ end
2458
+ end
2459
+
2460
+ # WorkItem represents basic information about a WorkItem to be executed in the
2461
+ # cloud.
2462
+ class WorkItem
2463
+ include Google::Apis::Core::Hashable
2464
+
2465
+ # Identifies this WorkItem.
2466
+ # Corresponds to the JSON property `id`
2467
+ # @return [String]
2468
+ attr_accessor :id
2469
+
2470
+ # Identifies the cloud project this WorkItem belongs to.
2471
+ # Corresponds to the JSON property `projectId`
2472
+ # @return [String]
2473
+ attr_accessor :project_id
2474
+
2475
+ # Identifies the workflow job this WorkItem belongs to.
2476
+ # Corresponds to the JSON property `jobId`
2477
+ # @return [String]
2478
+ attr_accessor :job_id
2479
+
2480
+ # Any required packages that need to be fetched in order to execute this
2481
+ # WorkItem.
2482
+ # Corresponds to the JSON property `packages`
2483
+ # @return [Array<Google::Apis::DataflowV1b3::Package>]
2484
+ attr_accessor :packages
2485
+
2486
+ # MapTask consists of an ordered set of instructions, each of which describes
2487
+ # one particular low-level operation for the worker to perform in order to
2488
+ # accomplish the MapTask's WorkItem. Each instruction must appear in the list
2489
+ # before any instructions which depends on its output.
2490
+ # Corresponds to the JSON property `mapTask`
2491
+ # @return [Google::Apis::DataflowV1b3::MapTask]
2492
+ attr_accessor :map_task
2493
+
2494
+ # Describes a particular function to invoke.
2495
+ # Corresponds to the JSON property `seqMapTask`
2496
+ # @return [Google::Apis::DataflowV1b3::SeqMapTask]
2497
+ attr_accessor :seq_map_task
2498
+
2499
+ # A task which consists of a shell command for the worker to execute.
2500
+ # Corresponds to the JSON property `shellTask`
2501
+ # @return [Google::Apis::DataflowV1b3::ShellTask]
2502
+ attr_accessor :shell_task
2503
+
2504
+ # A task which initializes part of a streaming Dataflow job.
2505
+ # Corresponds to the JSON property `streamingSetupTask`
2506
+ # @return [Google::Apis::DataflowV1b3::StreamingSetupTask]
2507
+ attr_accessor :streaming_setup_task
2508
+
2509
+ # A work item that represents the different operations that can be performed on
2510
+ # a user-defined Source specification.
2511
+ # Corresponds to the JSON property `sourceOperationTask`
2512
+ # @return [Google::Apis::DataflowV1b3::SourceOperationRequest]
2513
+ attr_accessor :source_operation_task
2514
+
2515
+ # A task which describes what action should be performed for the specified
2516
+ # streaming computation ranges.
2517
+ # Corresponds to the JSON property `streamingComputationTask`
2518
+ # @return [Google::Apis::DataflowV1b3::StreamingComputationTask]
2519
+ attr_accessor :streaming_computation_task
2520
+
2521
+ # A task that carries configuration information for streaming computations.
2522
+ # Corresponds to the JSON property `streamingConfigTask`
2523
+ # @return [Google::Apis::DataflowV1b3::StreamingConfigTask]
2524
+ attr_accessor :streaming_config_task
2525
+
2526
+ # Recommended reporting interval.
2527
+ # Corresponds to the JSON property `reportStatusInterval`
2528
+ # @return [String]
2529
+ attr_accessor :report_status_interval
2530
+
2531
+ # Time when the lease on this Work will expire.
2532
+ # Corresponds to the JSON property `leaseExpireTime`
2533
+ # @return [String]
2534
+ attr_accessor :lease_expire_time
2535
+
2536
+ # Work item-specific configuration as an opaque blob.
2537
+ # Corresponds to the JSON property `configuration`
2538
+ # @return [String]
2539
+ attr_accessor :configuration
2540
+
2541
+ # The initial index to use when reporting the status of the WorkItem.
2542
+ # Corresponds to the JSON property `initialReportIndex`
2543
+ # @return [String]
2544
+ attr_accessor :initial_report_index
2545
+
2546
+ def initialize(**args)
2547
+ update!(**args)
2548
+ end
2549
+
2550
+ # Update properties of this object
2551
+ def update!(**args)
2552
+ @id = args[:id] if args.key?(:id)
2553
+ @project_id = args[:project_id] if args.key?(:project_id)
2554
+ @job_id = args[:job_id] if args.key?(:job_id)
2555
+ @packages = args[:packages] if args.key?(:packages)
2556
+ @map_task = args[:map_task] if args.key?(:map_task)
2557
+ @seq_map_task = args[:seq_map_task] if args.key?(:seq_map_task)
2558
+ @shell_task = args[:shell_task] if args.key?(:shell_task)
2559
+ @streaming_setup_task = args[:streaming_setup_task] if args.key?(:streaming_setup_task)
2560
+ @source_operation_task = args[:source_operation_task] if args.key?(:source_operation_task)
2561
+ @streaming_computation_task = args[:streaming_computation_task] if args.key?(:streaming_computation_task)
2562
+ @streaming_config_task = args[:streaming_config_task] if args.key?(:streaming_config_task)
2563
+ @report_status_interval = args[:report_status_interval] if args.key?(:report_status_interval)
2564
+ @lease_expire_time = args[:lease_expire_time] if args.key?(:lease_expire_time)
2565
+ @configuration = args[:configuration] if args.key?(:configuration)
2566
+ @initial_report_index = args[:initial_report_index] if args.key?(:initial_report_index)
2567
+ end
2568
+ end
2569
+
2570
+ # MapTask consists of an ordered set of instructions, each of which describes
2571
+ # one particular low-level operation for the worker to perform in order to
2572
+ # accomplish the MapTask's WorkItem. Each instruction must appear in the list
2573
+ # before any instructions which depends on its output.
2574
+ class MapTask
2575
+ include Google::Apis::Core::Hashable
2576
+
2577
+ # The instructions in the MapTask.
2578
+ # Corresponds to the JSON property `instructions`
2579
+ # @return [Array<Google::Apis::DataflowV1b3::ParallelInstruction>]
2580
+ attr_accessor :instructions
2581
+
2582
+ # System-defined name of this MapTask. Unique across the workflow.
2583
+ # Corresponds to the JSON property `systemName`
2584
+ # @return [String]
2585
+ attr_accessor :system_name
2586
+
2587
+ # System-defined name of the stage containing this MapTask. Unique across the
2588
+ # workflow.
2589
+ # Corresponds to the JSON property `stageName`
2590
+ # @return [String]
2591
+ attr_accessor :stage_name
2592
+
2593
+ def initialize(**args)
2594
+ update!(**args)
2595
+ end
2596
+
2597
+ # Update properties of this object
2598
+ def update!(**args)
2599
+ @instructions = args[:instructions] if args.key?(:instructions)
2600
+ @system_name = args[:system_name] if args.key?(:system_name)
2601
+ @stage_name = args[:stage_name] if args.key?(:stage_name)
2602
+ end
2603
+ end
2604
+
2605
+ # Describes a particular operation comprising a MapTask.
2606
+ class ParallelInstruction
2607
+ include Google::Apis::Core::Hashable
2608
+
2609
+ # System-defined name of this operation. Unique across the workflow.
2610
+ # Corresponds to the JSON property `systemName`
2611
+ # @return [String]
2612
+ attr_accessor :system_name
2613
+
2614
+ # User-provided name of this operation.
2615
+ # Corresponds to the JSON property `name`
2616
+ # @return [String]
2617
+ attr_accessor :name
2618
+
2619
+ # System-defined name for the operation in the original workflow graph.
2620
+ # Corresponds to the JSON property `originalName`
2621
+ # @return [String]
2622
+ attr_accessor :original_name
2623
+
2624
+ # An instruction that reads records. Takes no inputs, produces one output.
2625
+ # Corresponds to the JSON property `read`
2626
+ # @return [Google::Apis::DataflowV1b3::ReadInstruction]
2627
+ attr_accessor :read
2628
+
2629
+ # An instruction that writes records. Takes one input, produces no outputs.
2630
+ # Corresponds to the JSON property `write`
2631
+ # @return [Google::Apis::DataflowV1b3::WriteInstruction]
2632
+ attr_accessor :write
2633
+
2634
+ # An instruction that does a ParDo operation. Takes one main input and zero or
2635
+ # more side inputs, and produces zero or more outputs. Runs user code.
2636
+ # Corresponds to the JSON property `parDo`
2637
+ # @return [Google::Apis::DataflowV1b3::ParDoInstruction]
2638
+ attr_accessor :par_do
2639
+
2640
+ # An instruction that does a partial group-by-key. One input and one output.
2641
+ # Corresponds to the JSON property `partialGroupByKey`
2642
+ # @return [Google::Apis::DataflowV1b3::PartialGroupByKeyInstruction]
2643
+ attr_accessor :partial_group_by_key
2644
+
2645
+ # An instruction that copies its inputs (zero or more) to its (single) output.
2646
+ # Corresponds to the JSON property `flatten`
2647
+ # @return [Google::Apis::DataflowV1b3::FlattenInstruction]
2648
+ attr_accessor :flatten
2649
+
2650
+ # Describes the outputs of the instruction.
2651
+ # Corresponds to the JSON property `outputs`
2652
+ # @return [Array<Google::Apis::DataflowV1b3::InstructionOutput>]
2653
+ attr_accessor :outputs
2654
+
2655
+ def initialize(**args)
2656
+ update!(**args)
2657
+ end
2658
+
2659
+ # Update properties of this object
2660
+ def update!(**args)
2661
+ @system_name = args[:system_name] if args.key?(:system_name)
2662
+ @name = args[:name] if args.key?(:name)
2663
+ @original_name = args[:original_name] if args.key?(:original_name)
2664
+ @read = args[:read] if args.key?(:read)
2665
+ @write = args[:write] if args.key?(:write)
2666
+ @par_do = args[:par_do] if args.key?(:par_do)
2667
+ @partial_group_by_key = args[:partial_group_by_key] if args.key?(:partial_group_by_key)
2668
+ @flatten = args[:flatten] if args.key?(:flatten)
2669
+ @outputs = args[:outputs] if args.key?(:outputs)
2670
+ end
2671
+ end
2672
+
2673
+ # An instruction that reads records. Takes no inputs, produces one output.
2674
+ class ReadInstruction
2675
+ include Google::Apis::Core::Hashable
2676
+
2677
+ # A source that records can be read and decoded from.
2678
+ # Corresponds to the JSON property `source`
2679
+ # @return [Google::Apis::DataflowV1b3::Source]
2680
+ attr_accessor :source
2681
+
2682
+ def initialize(**args)
2683
+ update!(**args)
2684
+ end
2685
+
2686
+ # Update properties of this object
2687
+ def update!(**args)
2688
+ @source = args[:source] if args.key?(:source)
2689
+ end
2690
+ end
2691
+
2692
+ # An instruction that writes records. Takes one input, produces no outputs.
2693
+ class WriteInstruction
2694
+ include Google::Apis::Core::Hashable
2695
+
2696
+ # An input of an instruction, as a reference to an output of a producer
2697
+ # instruction.
2698
+ # Corresponds to the JSON property `input`
2699
+ # @return [Google::Apis::DataflowV1b3::InstructionInput]
2700
+ attr_accessor :input
2701
+
2702
+ # A sink that records can be encoded and written to.
2703
+ # Corresponds to the JSON property `sink`
2704
+ # @return [Google::Apis::DataflowV1b3::Sink]
2705
+ attr_accessor :sink
2706
+
2707
+ def initialize(**args)
2708
+ update!(**args)
2709
+ end
2710
+
2711
+ # Update properties of this object
2712
+ def update!(**args)
2713
+ @input = args[:input] if args.key?(:input)
2714
+ @sink = args[:sink] if args.key?(:sink)
2715
+ end
2716
+ end
2717
+
2718
+ # An input of an instruction, as a reference to an output of a producer
2719
+ # instruction.
2720
+ class InstructionInput
2721
+ include Google::Apis::Core::Hashable
2722
+
2723
+ # The index (origin zero) of the parallel instruction that produces the output
2724
+ # to be consumed by this input. This index is relative to the list of
2725
+ # instructions in this input's instruction's containing MapTask.
2726
+ # Corresponds to the JSON property `producerInstructionIndex`
2727
+ # @return [Fixnum]
2728
+ attr_accessor :producer_instruction_index
2729
+
2730
+ # The output index (origin zero) within the producer.
2731
+ # Corresponds to the JSON property `outputNum`
2732
+ # @return [Fixnum]
2733
+ attr_accessor :output_num
2734
+
2735
+ def initialize(**args)
2736
+ update!(**args)
2737
+ end
2738
+
2739
+ # Update properties of this object
2740
+ def update!(**args)
2741
+ @producer_instruction_index = args[:producer_instruction_index] if args.key?(:producer_instruction_index)
2742
+ @output_num = args[:output_num] if args.key?(:output_num)
2743
+ end
2744
+ end
2745
+
2746
+ # A sink that records can be encoded and written to.
2747
+ class Sink
2748
+ include Google::Apis::Core::Hashable
2749
+
2750
+ # The sink to write to, plus its parameters.
2751
+ # Corresponds to the JSON property `spec`
2752
+ # @return [Hash<String,Object>]
2753
+ attr_accessor :spec
2754
+
2755
+ # The codec to use to encode data written to the sink.
2756
+ # Corresponds to the JSON property `codec`
2757
+ # @return [Hash<String,Object>]
2758
+ attr_accessor :codec
2759
+
2760
+ def initialize(**args)
2761
+ update!(**args)
2762
+ end
2763
+
2764
+ # Update properties of this object
2765
+ def update!(**args)
2766
+ @spec = args[:spec] if args.key?(:spec)
2767
+ @codec = args[:codec] if args.key?(:codec)
2768
+ end
2769
+ end
2770
+
2771
+ # An instruction that does a ParDo operation. Takes one main input and zero or
2772
+ # more side inputs, and produces zero or more outputs. Runs user code.
2773
+ class ParDoInstruction
2774
+ include Google::Apis::Core::Hashable
2775
+
2776
+ # An input of an instruction, as a reference to an output of a producer
2777
+ # instruction.
2778
+ # Corresponds to the JSON property `input`
2779
+ # @return [Google::Apis::DataflowV1b3::InstructionInput]
2780
+ attr_accessor :input
2781
+
2782
+ # Zero or more side inputs.
2783
+ # Corresponds to the JSON property `sideInputs`
2784
+ # @return [Array<Google::Apis::DataflowV1b3::SideInputInfo>]
2785
+ attr_accessor :side_inputs
2786
+
2787
+ # The user function to invoke.
2788
+ # Corresponds to the JSON property `userFn`
2789
+ # @return [Hash<String,Object>]
2790
+ attr_accessor :user_fn
2791
+
2792
+ # The number of outputs.
2793
+ # Corresponds to the JSON property `numOutputs`
2794
+ # @return [Fixnum]
2795
+ attr_accessor :num_outputs
2796
+
2797
+ # Information about each of the outputs, if user_fn is a MultiDoFn.
2798
+ # Corresponds to the JSON property `multiOutputInfos`
2799
+ # @return [Array<Google::Apis::DataflowV1b3::MultiOutputInfo>]
2800
+ attr_accessor :multi_output_infos
2801
+
2802
+ def initialize(**args)
2803
+ update!(**args)
2804
+ end
2805
+
2806
+ # Update properties of this object
2807
+ def update!(**args)
2808
+ @input = args[:input] if args.key?(:input)
2809
+ @side_inputs = args[:side_inputs] if args.key?(:side_inputs)
2810
+ @user_fn = args[:user_fn] if args.key?(:user_fn)
2811
+ @num_outputs = args[:num_outputs] if args.key?(:num_outputs)
2812
+ @multi_output_infos = args[:multi_output_infos] if args.key?(:multi_output_infos)
2813
+ end
2814
+ end
2815
+
2816
+ # Information about a side input of a DoFn or an input of a SeqDoFn.
2817
+ class SideInputInfo
2818
+ include Google::Apis::Core::Hashable
2819
+
2820
+ # The source(s) to read element(s) from to get the value of this side input. If
2821
+ # more than one source, then the elements are taken from the sources, in the
2822
+ # specified order if order matters. At least one source is required.
2823
+ # Corresponds to the JSON property `sources`
2824
+ # @return [Array<Google::Apis::DataflowV1b3::Source>]
2825
+ attr_accessor :sources
2826
+
2827
+ # How to interpret the source element(s) as a side input value.
2828
+ # Corresponds to the JSON property `kind`
2829
+ # @return [Hash<String,Object>]
2830
+ attr_accessor :kind
2831
+
2832
+ # The id of the tag the user code will access this side input by; this should
2833
+ # correspond to the tag of some MultiOutputInfo.
2834
+ # Corresponds to the JSON property `tag`
2835
+ # @return [String]
2836
+ attr_accessor :tag
2837
+
2838
+ def initialize(**args)
2839
+ update!(**args)
2840
+ end
2841
+
2842
+ # Update properties of this object
2843
+ def update!(**args)
2844
+ @sources = args[:sources] if args.key?(:sources)
2845
+ @kind = args[:kind] if args.key?(:kind)
2846
+ @tag = args[:tag] if args.key?(:tag)
2847
+ end
2848
+ end
2849
+
2850
+ # Information about an output of a multi-output DoFn.
2851
+ class MultiOutputInfo
2852
+ include Google::Apis::Core::Hashable
2853
+
2854
+ # The id of the tag the user code will emit to this output by; this should
2855
+ # correspond to the tag of some SideInputInfo.
2856
+ # Corresponds to the JSON property `tag`
2857
+ # @return [String]
2858
+ attr_accessor :tag
2859
+
2860
+ def initialize(**args)
2861
+ update!(**args)
2862
+ end
2863
+
2864
+ # Update properties of this object
2865
+ def update!(**args)
2866
+ @tag = args[:tag] if args.key?(:tag)
2867
+ end
2868
+ end
2869
+
2870
+ # An instruction that does a partial group-by-key. One input and one output.
2871
+ class PartialGroupByKeyInstruction
2872
+ include Google::Apis::Core::Hashable
2873
+
2874
+ # An input of an instruction, as a reference to an output of a producer
2875
+ # instruction.
2876
+ # Corresponds to the JSON property `input`
2877
+ # @return [Google::Apis::DataflowV1b3::InstructionInput]
2878
+ attr_accessor :input
2879
+
2880
+ # The codec to use for interpreting an element in the input PTable.
2881
+ # Corresponds to the JSON property `inputElementCodec`
2882
+ # @return [Hash<String,Object>]
2883
+ attr_accessor :input_element_codec
2884
+
2885
+ # The value combining function to invoke.
2886
+ # Corresponds to the JSON property `valueCombiningFn`
2887
+ # @return [Hash<String,Object>]
2888
+ attr_accessor :value_combining_fn
2889
+
2890
+ # Zero or more side inputs.
2891
+ # Corresponds to the JSON property `sideInputs`
2892
+ # @return [Array<Google::Apis::DataflowV1b3::SideInputInfo>]
2893
+ attr_accessor :side_inputs
2894
+
2895
+ # If this instruction includes a combining function, this is the name of the
2896
+ # CombineValues instruction lifted into this instruction.
2897
+ # Corresponds to the JSON property `originalCombineValuesStepName`
2898
+ # @return [String]
2899
+ attr_accessor :original_combine_values_step_name
2900
+
2901
+ # If this instruction includes a combining function this is the name of the
2902
+ # intermediate store between the GBK and the CombineValues.
2903
+ # Corresponds to the JSON property `originalCombineValuesInputStoreName`
2904
+ # @return [String]
2905
+ attr_accessor :original_combine_values_input_store_name
2906
+
2907
+ def initialize(**args)
2908
+ update!(**args)
2909
+ end
2910
+
2911
+ # Update properties of this object
2912
+ def update!(**args)
2913
+ @input = args[:input] if args.key?(:input)
2914
+ @input_element_codec = args[:input_element_codec] if args.key?(:input_element_codec)
2915
+ @value_combining_fn = args[:value_combining_fn] if args.key?(:value_combining_fn)
2916
+ @side_inputs = args[:side_inputs] if args.key?(:side_inputs)
2917
+ @original_combine_values_step_name = args[:original_combine_values_step_name] if args.key?(:original_combine_values_step_name)
2918
+ @original_combine_values_input_store_name = args[:original_combine_values_input_store_name] if args.key?(:original_combine_values_input_store_name)
2919
+ end
2920
+ end
2921
+
2922
+ # An instruction that copies its inputs (zero or more) to its (single) output.
2923
+ class FlattenInstruction
2924
+ include Google::Apis::Core::Hashable
2925
+
2926
+ # Describes the inputs to the flatten instruction.
2927
+ # Corresponds to the JSON property `inputs`
2928
+ # @return [Array<Google::Apis::DataflowV1b3::InstructionInput>]
2929
+ attr_accessor :inputs
2930
+
2931
+ def initialize(**args)
2932
+ update!(**args)
2933
+ end
2934
+
2935
+ # Update properties of this object
2936
+ def update!(**args)
2937
+ @inputs = args[:inputs] if args.key?(:inputs)
2938
+ end
2939
+ end
2940
+
2941
+ # An output of an instruction.
2942
+ class InstructionOutput
2943
+ include Google::Apis::Core::Hashable
2944
+
2945
+ # The user-provided name of this output.
2946
+ # Corresponds to the JSON property `name`
2947
+ # @return [String]
2948
+ attr_accessor :name
2949
+
2950
+ # System-defined name of this output. Unique across the workflow.
2951
+ # Corresponds to the JSON property `systemName`
2952
+ # @return [String]
2953
+ attr_accessor :system_name
2954
+
2955
+ # System-defined name for this output in the original workflow graph. Outputs
2956
+ # that do not contribute to an original instruction do not set this.
2957
+ # Corresponds to the JSON property `originalName`
2958
+ # @return [String]
2959
+ attr_accessor :original_name
2960
+
2961
+ # The codec to use to encode data being written via this output.
2962
+ # Corresponds to the JSON property `codec`
2963
+ # @return [Hash<String,Object>]
2964
+ attr_accessor :codec
2965
+
2966
+ # For system-generated byte and mean byte metrics, certain instructions should
2967
+ # only report the key size.
2968
+ # Corresponds to the JSON property `onlyCountKeyBytes`
2969
+ # @return [Boolean]
2970
+ attr_accessor :only_count_key_bytes
2971
+ alias_method :only_count_key_bytes?, :only_count_key_bytes
2972
+
2973
+ # For system-generated byte and mean byte metrics, certain instructions should
2974
+ # only report the value size.
2975
+ # Corresponds to the JSON property `onlyCountValueBytes`
2976
+ # @return [Boolean]
2977
+ attr_accessor :only_count_value_bytes
2978
+ alias_method :only_count_value_bytes?, :only_count_value_bytes
2979
+
2980
+ def initialize(**args)
2981
+ update!(**args)
2982
+ end
2983
+
2984
+ # Update properties of this object
2985
+ def update!(**args)
2986
+ @name = args[:name] if args.key?(:name)
2987
+ @system_name = args[:system_name] if args.key?(:system_name)
2988
+ @original_name = args[:original_name] if args.key?(:original_name)
2989
+ @codec = args[:codec] if args.key?(:codec)
2990
+ @only_count_key_bytes = args[:only_count_key_bytes] if args.key?(:only_count_key_bytes)
2991
+ @only_count_value_bytes = args[:only_count_value_bytes] if args.key?(:only_count_value_bytes)
2992
+ end
2993
+ end
2994
+
2995
+ # Describes a particular function to invoke.
2996
+ class SeqMapTask
2997
+ include Google::Apis::Core::Hashable
2998
+
2999
+ # Information about each of the inputs.
3000
+ # Corresponds to the JSON property `inputs`
3001
+ # @return [Array<Google::Apis::DataflowV1b3::SideInputInfo>]
3002
+ attr_accessor :inputs
3003
+
3004
+ # The user function to invoke.
3005
+ # Corresponds to the JSON property `userFn`
3006
+ # @return [Hash<String,Object>]
3007
+ attr_accessor :user_fn
3008
+
3009
+ # Information about each of the outputs.
3010
+ # Corresponds to the JSON property `outputInfos`
3011
+ # @return [Array<Google::Apis::DataflowV1b3::SeqMapTaskOutputInfo>]
3012
+ attr_accessor :output_infos
3013
+
3014
+ # The user-provided name of the SeqDo operation.
3015
+ # Corresponds to the JSON property `name`
3016
+ # @return [String]
3017
+ attr_accessor :name
3018
+
3019
+ # System-defined name of the SeqDo operation. Unique across the workflow.
3020
+ # Corresponds to the JSON property `systemName`
3021
+ # @return [String]
3022
+ attr_accessor :system_name
3023
+
3024
+ # System-defined name of the stage containing the SeqDo operation. Unique across
3025
+ # the workflow.
3026
+ # Corresponds to the JSON property `stageName`
3027
+ # @return [String]
3028
+ attr_accessor :stage_name
3029
+
3030
+ def initialize(**args)
3031
+ update!(**args)
3032
+ end
3033
+
3034
+ # Update properties of this object
3035
+ def update!(**args)
3036
+ @inputs = args[:inputs] if args.key?(:inputs)
3037
+ @user_fn = args[:user_fn] if args.key?(:user_fn)
3038
+ @output_infos = args[:output_infos] if args.key?(:output_infos)
3039
+ @name = args[:name] if args.key?(:name)
3040
+ @system_name = args[:system_name] if args.key?(:system_name)
3041
+ @stage_name = args[:stage_name] if args.key?(:stage_name)
3042
+ end
3043
+ end
3044
+
3045
+ # Information about an output of a SeqMapTask.
3046
+ class SeqMapTaskOutputInfo
3047
+ include Google::Apis::Core::Hashable
3048
+
3049
+ # The id of the TupleTag the user code will tag the output value by.
3050
+ # Corresponds to the JSON property `tag`
3051
+ # @return [String]
3052
+ attr_accessor :tag
3053
+
3054
+ # A sink that records can be encoded and written to.
3055
+ # Corresponds to the JSON property `sink`
3056
+ # @return [Google::Apis::DataflowV1b3::Sink]
3057
+ attr_accessor :sink
3058
+
3059
+ def initialize(**args)
3060
+ update!(**args)
3061
+ end
3062
+
3063
+ # Update properties of this object
3064
+ def update!(**args)
3065
+ @tag = args[:tag] if args.key?(:tag)
3066
+ @sink = args[:sink] if args.key?(:sink)
3067
+ end
3068
+ end
3069
+
3070
+ # A task which consists of a shell command for the worker to execute.
3071
+ class ShellTask
3072
+ include Google::Apis::Core::Hashable
3073
+
3074
+ # The shell command to run.
3075
+ # Corresponds to the JSON property `command`
3076
+ # @return [String]
3077
+ attr_accessor :command
3078
+
3079
+ # Exit code for the task.
3080
+ # Corresponds to the JSON property `exitCode`
3081
+ # @return [Fixnum]
3082
+ attr_accessor :exit_code
3083
+
3084
+ def initialize(**args)
3085
+ update!(**args)
3086
+ end
3087
+
3088
+ # Update properties of this object
3089
+ def update!(**args)
3090
+ @command = args[:command] if args.key?(:command)
3091
+ @exit_code = args[:exit_code] if args.key?(:exit_code)
3092
+ end
3093
+ end
3094
+
3095
+ # A task which initializes part of a streaming Dataflow job.
3096
+ class StreamingSetupTask
3097
+ include Google::Apis::Core::Hashable
3098
+
3099
+ # The TCP port on which the worker should listen for messages from other
3100
+ # streaming computation workers.
3101
+ # Corresponds to the JSON property `receiveWorkPort`
3102
+ # @return [Fixnum]
3103
+ attr_accessor :receive_work_port
3104
+
3105
+ # The TCP port used by the worker to communicate with the Dataflow worker
3106
+ # harness.
3107
+ # Corresponds to the JSON property `workerHarnessPort`
3108
+ # @return [Fixnum]
3109
+ attr_accessor :worker_harness_port
3110
+
3111
+ # Global topology of the streaming Dataflow job, including all computations and
3112
+ # their sharded locations.
3113
+ # Corresponds to the JSON property `streamingComputationTopology`
3114
+ # @return [Google::Apis::DataflowV1b3::TopologyConfig]
3115
+ attr_accessor :streaming_computation_topology
3116
+
3117
+ # The user has requested drain.
3118
+ # Corresponds to the JSON property `drain`
3119
+ # @return [Boolean]
3120
+ attr_accessor :drain
3121
+ alias_method :drain?, :drain
3122
+
3123
+ def initialize(**args)
3124
+ update!(**args)
3125
+ end
3126
+
3127
+ # Update properties of this object
3128
+ def update!(**args)
3129
+ @receive_work_port = args[:receive_work_port] if args.key?(:receive_work_port)
3130
+ @worker_harness_port = args[:worker_harness_port] if args.key?(:worker_harness_port)
3131
+ @streaming_computation_topology = args[:streaming_computation_topology] if args.key?(:streaming_computation_topology)
3132
+ @drain = args[:drain] if args.key?(:drain)
3133
+ end
3134
+ end
3135
+
3136
+ # Global topology of the streaming Dataflow job, including all computations and
3137
+ # their sharded locations.
3138
+ class TopologyConfig
3139
+ include Google::Apis::Core::Hashable
3140
+
3141
+ # The computations associated with a streaming Dataflow job.
3142
+ # Corresponds to the JSON property `computations`
3143
+ # @return [Array<Google::Apis::DataflowV1b3::ComputationTopology>]
3144
+ attr_accessor :computations
3145
+
3146
+ # The disks assigned to a streaming Dataflow job.
3147
+ # Corresponds to the JSON property `dataDiskAssignments`
3148
+ # @return [Array<Google::Apis::DataflowV1b3::DataDiskAssignment>]
3149
+ attr_accessor :data_disk_assignments
3150
+
3151
+ # Maps user stage names to stable computation names.
3152
+ # Corresponds to the JSON property `userStageToComputationNameMap`
3153
+ # @return [Hash<String,String>]
3154
+ attr_accessor :user_stage_to_computation_name_map
3155
+
3156
+ # The size (in bits) of keys that will be assigned to source messages.
3157
+ # Corresponds to the JSON property `forwardingKeyBits`
3158
+ # @return [Fixnum]
3159
+ attr_accessor :forwarding_key_bits
3160
+
3161
+ # Version number for persistent state.
3162
+ # Corresponds to the JSON property `persistentStateVersion`
3163
+ # @return [Fixnum]
3164
+ attr_accessor :persistent_state_version
3165
+
3166
+ def initialize(**args)
3167
+ update!(**args)
3168
+ end
3169
+
3170
+ # Update properties of this object
3171
+ def update!(**args)
3172
+ @computations = args[:computations] if args.key?(:computations)
3173
+ @data_disk_assignments = args[:data_disk_assignments] if args.key?(:data_disk_assignments)
3174
+ @user_stage_to_computation_name_map = args[:user_stage_to_computation_name_map] if args.key?(:user_stage_to_computation_name_map)
3175
+ @forwarding_key_bits = args[:forwarding_key_bits] if args.key?(:forwarding_key_bits)
3176
+ @persistent_state_version = args[:persistent_state_version] if args.key?(:persistent_state_version)
3177
+ end
3178
+ end
3179
+
3180
+ # All configuration data for a particular Computation.
3181
+ class ComputationTopology
3182
+ include Google::Apis::Core::Hashable
3183
+
3184
+ # The system stage name.
3185
+ # Corresponds to the JSON property `systemStageName`
3186
+ # @return [String]
3187
+ attr_accessor :system_stage_name
3188
+
3189
+ # The ID of the computation.
3190
+ # Corresponds to the JSON property `computationId`
3191
+ # @return [String]
3192
+ attr_accessor :computation_id
3193
+
3194
+ # The user stage name.
3195
+ # Corresponds to the JSON property `userStageName`
3196
+ # @return [String]
3197
+ attr_accessor :user_stage_name
3198
+
3199
+ # The key ranges processed by the computation.
3200
+ # Corresponds to the JSON property `keyRanges`
3201
+ # @return [Array<Google::Apis::DataflowV1b3::KeyRangeLocation>]
3202
+ attr_accessor :key_ranges
3203
+
3204
+ # The inputs to the computation.
3205
+ # Corresponds to the JSON property `inputs`
3206
+ # @return [Array<Google::Apis::DataflowV1b3::StreamLocation>]
3207
+ attr_accessor :inputs
3208
+
3209
+ # The outputs from the computation.
3210
+ # Corresponds to the JSON property `outputs`
3211
+ # @return [Array<Google::Apis::DataflowV1b3::StreamLocation>]
3212
+ attr_accessor :outputs
3213
+
3214
+ # The state family values.
3215
+ # Corresponds to the JSON property `stateFamilies`
3216
+ # @return [Array<Google::Apis::DataflowV1b3::StateFamilyConfig>]
3217
+ attr_accessor :state_families
3218
+
3219
+ def initialize(**args)
3220
+ update!(**args)
3221
+ end
3222
+
3223
+ # Update properties of this object
3224
+ def update!(**args)
3225
+ @system_stage_name = args[:system_stage_name] if args.key?(:system_stage_name)
3226
+ @computation_id = args[:computation_id] if args.key?(:computation_id)
3227
+ @user_stage_name = args[:user_stage_name] if args.key?(:user_stage_name)
3228
+ @key_ranges = args[:key_ranges] if args.key?(:key_ranges)
3229
+ @inputs = args[:inputs] if args.key?(:inputs)
3230
+ @outputs = args[:outputs] if args.key?(:outputs)
3231
+ @state_families = args[:state_families] if args.key?(:state_families)
3232
+ end
3233
+ end
3234
+
3235
+ # Location information for a specific key-range of a sharded computation.
3236
+ # Currently we only support UTF-8 character splits to simplify encoding into
3237
+ # JSON.
3238
+ class KeyRangeLocation
3239
+ include Google::Apis::Core::Hashable
3240
+
3241
+ # The start (inclusive) of the key range.
3242
+ # Corresponds to the JSON property `start`
3243
+ # @return [String]
3244
+ attr_accessor :start
3245
+
3246
+ # The end (exclusive) of the key range.
3247
+ # Corresponds to the JSON property `end`
3248
+ # @return [String]
3249
+ attr_accessor :end
3250
+
3251
+ # The physical location of this range assignment to be used for streaming
3252
+ # computation cross-worker message delivery.
3253
+ # Corresponds to the JSON property `deliveryEndpoint`
3254
+ # @return [String]
3255
+ attr_accessor :delivery_endpoint
3256
+
3257
+ # The location of the persistent state for this range, as a persistent directory
3258
+ # in the worker local filesystem.
3259
+ # Corresponds to the JSON property `persistentDirectory`
3260
+ # @return [String]
3261
+ attr_accessor :persistent_directory
3262
+
3263
+ # The name of the data disk where data for this range is stored. This name is
3264
+ # local to the Google Cloud Platform project and uniquely identifies the disk
3265
+ # within that project, for example "myproject-1014-104817-4c2-harness-0-disk-1".
3266
+ # Corresponds to the JSON property `dataDisk`
3267
+ # @return [String]
3268
+ attr_accessor :data_disk
3269
+
3270
+ def initialize(**args)
3271
+ update!(**args)
3272
+ end
3273
+
3274
+ # Update properties of this object
3275
+ def update!(**args)
3276
+ @start = args[:start] if args.key?(:start)
3277
+ @end = args[:end] if args.key?(:end)
3278
+ @delivery_endpoint = args[:delivery_endpoint] if args.key?(:delivery_endpoint)
3279
+ @persistent_directory = args[:persistent_directory] if args.key?(:persistent_directory)
3280
+ @data_disk = args[:data_disk] if args.key?(:data_disk)
3281
+ end
3282
+ end
3283
+
3284
+ # Describes a stream of data, either as input to be processed or as output of a
3285
+ # streaming Dataflow job.
3286
+ class StreamLocation
3287
+ include Google::Apis::Core::Hashable
3288
+
3289
+ # Identifies the location of a streaming computation stage, for stage-to-stage
3290
+ # communication.
3291
+ # Corresponds to the JSON property `streamingStageLocation`
3292
+ # @return [Google::Apis::DataflowV1b3::StreamingStageLocation]
3293
+ attr_accessor :streaming_stage_location
3294
+
3295
+ # Identifies a pubsub location to use for transferring data into or out of a
3296
+ # streaming Dataflow job.
3297
+ # Corresponds to the JSON property `pubsubLocation`
3298
+ # @return [Google::Apis::DataflowV1b3::PubsubLocation]
3299
+ attr_accessor :pubsub_location
3300
+
3301
+ # Identifies the location of a streaming side input.
3302
+ # Corresponds to the JSON property `sideInputLocation`
3303
+ # @return [Google::Apis::DataflowV1b3::StreamingSideInputLocation]
3304
+ attr_accessor :side_input_location
3305
+
3306
+ # Identifies the location of a custom souce.
3307
+ # Corresponds to the JSON property `customSourceLocation`
3308
+ # @return [Google::Apis::DataflowV1b3::CustomSourceLocation]
3309
+ attr_accessor :custom_source_location
3310
+
3311
+ def initialize(**args)
3312
+ update!(**args)
3313
+ end
3314
+
3315
+ # Update properties of this object
3316
+ def update!(**args)
3317
+ @streaming_stage_location = args[:streaming_stage_location] if args.key?(:streaming_stage_location)
3318
+ @pubsub_location = args[:pubsub_location] if args.key?(:pubsub_location)
3319
+ @side_input_location = args[:side_input_location] if args.key?(:side_input_location)
3320
+ @custom_source_location = args[:custom_source_location] if args.key?(:custom_source_location)
3321
+ end
3322
+ end
3323
+
3324
+ # Identifies the location of a streaming computation stage, for stage-to-stage
3325
+ # communication.
3326
+ class StreamingStageLocation
3327
+ include Google::Apis::Core::Hashable
3328
+
3329
+ # Identifies the particular stream within the streaming Dataflow job.
3330
+ # Corresponds to the JSON property `streamId`
3331
+ # @return [String]
3332
+ attr_accessor :stream_id
3333
+
3334
+ def initialize(**args)
3335
+ update!(**args)
3336
+ end
3337
+
3338
+ # Update properties of this object
3339
+ def update!(**args)
3340
+ @stream_id = args[:stream_id] if args.key?(:stream_id)
3341
+ end
3342
+ end
3343
+
3344
+ # Identifies a pubsub location to use for transferring data into or out of a
3345
+ # streaming Dataflow job.
3346
+ class PubsubLocation
3347
+ include Google::Apis::Core::Hashable
3348
+
3349
+ # A pubsub topic, in the form of "pubsub.googleapis.com/topics/
3350
+ # /"
3351
+ # Corresponds to the JSON property `topic`
3352
+ # @return [String]
3353
+ attr_accessor :topic
3354
+
3355
+ # A pubsub subscription, in the form of "pubsub.googleapis.com/subscriptions/
3356
+ # /"
3357
+ # Corresponds to the JSON property `subscription`
3358
+ # @return [String]
3359
+ attr_accessor :subscription
3360
+
3361
+ # If set, contains a pubsub label from which to extract record timestamps. If
3362
+ # left empty, record timestamps will be generated upon arrival.
3363
+ # Corresponds to the JSON property `timestampLabel`
3364
+ # @return [String]
3365
+ attr_accessor :timestamp_label
3366
+
3367
+ # If set, contains a pubsub label from which to extract record ids. If left
3368
+ # empty, record deduplication will be strictly best effort.
3369
+ # Corresponds to the JSON property `idLabel`
3370
+ # @return [String]
3371
+ attr_accessor :id_label
3372
+
3373
+ # Indicates whether the pipeline allows late-arriving data.
3374
+ # Corresponds to the JSON property `dropLateData`
3375
+ # @return [Boolean]
3376
+ attr_accessor :drop_late_data
3377
+ alias_method :drop_late_data?, :drop_late_data
3378
+
3379
+ # If set, specifies the pubsub subscription that will be used for tracking
3380
+ # custom time timestamps for watermark estimation.
3381
+ # Corresponds to the JSON property `trackingSubscription`
3382
+ # @return [String]
3383
+ attr_accessor :tracking_subscription
3384
+
3385
+ def initialize(**args)
3386
+ update!(**args)
3387
+ end
3388
+
3389
+ # Update properties of this object
3390
+ def update!(**args)
3391
+ @topic = args[:topic] if args.key?(:topic)
3392
+ @subscription = args[:subscription] if args.key?(:subscription)
3393
+ @timestamp_label = args[:timestamp_label] if args.key?(:timestamp_label)
3394
+ @id_label = args[:id_label] if args.key?(:id_label)
3395
+ @drop_late_data = args[:drop_late_data] if args.key?(:drop_late_data)
3396
+ @tracking_subscription = args[:tracking_subscription] if args.key?(:tracking_subscription)
3397
+ end
3398
+ end
3399
+
3400
+ # Identifies the location of a streaming side input.
3401
+ class StreamingSideInputLocation
3402
+ include Google::Apis::Core::Hashable
3403
+
3404
+ # Identifies the particular side input within the streaming Dataflow job.
3405
+ # Corresponds to the JSON property `tag`
3406
+ # @return [String]
3407
+ attr_accessor :tag
3408
+
3409
+ # Identifies the state family where this side input is stored.
3410
+ # Corresponds to the JSON property `stateFamily`
3411
+ # @return [String]
3412
+ attr_accessor :state_family
3413
+
3414
+ def initialize(**args)
3415
+ update!(**args)
3416
+ end
3417
+
3418
+ # Update properties of this object
3419
+ def update!(**args)
3420
+ @tag = args[:tag] if args.key?(:tag)
3421
+ @state_family = args[:state_family] if args.key?(:state_family)
3422
+ end
3423
+ end
3424
+
3425
+ # Identifies the location of a custom souce.
3426
+ class CustomSourceLocation
3427
+ include Google::Apis::Core::Hashable
3428
+
3429
+ # Whether this source is stateful.
3430
+ # Corresponds to the JSON property `stateful`
3431
+ # @return [Boolean]
3432
+ attr_accessor :stateful
3433
+ alias_method :stateful?, :stateful
3434
+
3435
+ def initialize(**args)
3436
+ update!(**args)
3437
+ end
3438
+
3439
+ # Update properties of this object
3440
+ def update!(**args)
3441
+ @stateful = args[:stateful] if args.key?(:stateful)
3442
+ end
3443
+ end
3444
+
3445
+ # State family configuration.
3446
+ class StateFamilyConfig
3447
+ include Google::Apis::Core::Hashable
3448
+
3449
+ # The state family value.
3450
+ # Corresponds to the JSON property `stateFamily`
3451
+ # @return [String]
3452
+ attr_accessor :state_family
3453
+
3454
+ # If true, this family corresponds to a read operation.
3455
+ # Corresponds to the JSON property `isRead`
3456
+ # @return [Boolean]
3457
+ attr_accessor :is_read
3458
+ alias_method :is_read?, :is_read
3459
+
3460
+ def initialize(**args)
3461
+ update!(**args)
3462
+ end
3463
+
3464
+ # Update properties of this object
3465
+ def update!(**args)
3466
+ @state_family = args[:state_family] if args.key?(:state_family)
3467
+ @is_read = args[:is_read] if args.key?(:is_read)
3468
+ end
3469
+ end
3470
+
3471
+ # Data disk assignment for a given VM instance.
3472
+ class DataDiskAssignment
3473
+ include Google::Apis::Core::Hashable
3474
+
3475
+ # VM instance name the data disks mounted to, for example "myproject-1014-104817-
3476
+ # 4c2-harness-0".
3477
+ # Corresponds to the JSON property `vmInstance`
3478
+ # @return [String]
3479
+ attr_accessor :vm_instance
3480
+
3481
+ # Mounted data disks. The order is important a data disk's 0-based index in this
3482
+ # list defines which persistent directory the disk is mounted to, for example
3483
+ # the list of ` "myproject-1014-104817-4c2-harness-0-disk-0" `, ` "myproject-
3484
+ # 1014-104817-4c2-harness-0-disk-1" `.
3485
+ # Corresponds to the JSON property `dataDisks`
3486
+ # @return [Array<String>]
3487
+ attr_accessor :data_disks
3488
+
3489
+ def initialize(**args)
3490
+ update!(**args)
3491
+ end
3492
+
3493
+ # Update properties of this object
3494
+ def update!(**args)
3495
+ @vm_instance = args[:vm_instance] if args.key?(:vm_instance)
3496
+ @data_disks = args[:data_disks] if args.key?(:data_disks)
3497
+ end
3498
+ end
3499
+
3500
+ # A work item that represents the different operations that can be performed on
3501
+ # a user-defined Source specification.
3502
+ class SourceOperationRequest
3503
+ include Google::Apis::Core::Hashable
3504
+
3505
+ # Represents the operation to split a high-level Source specification into
3506
+ # bundles (parts for parallel processing). At a high level, splitting of a
3507
+ # source into bundles happens as follows: SourceSplitRequest is applied to the
3508
+ # source. If it returns SOURCE_SPLIT_OUTCOME_USE_CURRENT, no further splitting
3509
+ # happens and the source is used "as is". Otherwise, splitting is applied
3510
+ # recursively to each produced DerivedSource. As an optimization, for any Source,
3511
+ # if its does_not_need_splitting is true, the framework assumes that splitting
3512
+ # this source would return SOURCE_SPLIT_OUTCOME_USE_CURRENT, and doesn't
3513
+ # initiate a SourceSplitRequest. This applies both to the initial source being
3514
+ # split and to bundles produced from it.
3515
+ # Corresponds to the JSON property `split`
3516
+ # @return [Google::Apis::DataflowV1b3::SourceSplitRequest]
3517
+ attr_accessor :split
3518
+
3519
+ # A request to compute the SourceMetadata of a Source.
3520
+ # Corresponds to the JSON property `getMetadata`
3521
+ # @return [Google::Apis::DataflowV1b3::SourceGetMetadataRequest]
3522
+ attr_accessor :get_metadata
3523
+
3524
+ def initialize(**args)
3525
+ update!(**args)
3526
+ end
3527
+
3528
+ # Update properties of this object
3529
+ def update!(**args)
3530
+ @split = args[:split] if args.key?(:split)
3531
+ @get_metadata = args[:get_metadata] if args.key?(:get_metadata)
3532
+ end
3533
+ end
3534
+
3535
+ # Represents the operation to split a high-level Source specification into
3536
+ # bundles (parts for parallel processing). At a high level, splitting of a
3537
+ # source into bundles happens as follows: SourceSplitRequest is applied to the
3538
+ # source. If it returns SOURCE_SPLIT_OUTCOME_USE_CURRENT, no further splitting
3539
+ # happens and the source is used "as is". Otherwise, splitting is applied
3540
+ # recursively to each produced DerivedSource. As an optimization, for any Source,
3541
+ # if its does_not_need_splitting is true, the framework assumes that splitting
3542
+ # this source would return SOURCE_SPLIT_OUTCOME_USE_CURRENT, and doesn't
3543
+ # initiate a SourceSplitRequest. This applies both to the initial source being
3544
+ # split and to bundles produced from it.
3545
+ class SourceSplitRequest
3546
+ include Google::Apis::Core::Hashable
3547
+
3548
+ # A source that records can be read and decoded from.
3549
+ # Corresponds to the JSON property `source`
3550
+ # @return [Google::Apis::DataflowV1b3::Source]
3551
+ attr_accessor :source
3552
+
3553
+ # Hints for splitting a Source into bundles (parts for parallel processing)
3554
+ # using SourceSplitRequest.
3555
+ # Corresponds to the JSON property `options`
3556
+ # @return [Google::Apis::DataflowV1b3::SourceSplitOptions]
3557
+ attr_accessor :options
3558
+
3559
+ def initialize(**args)
3560
+ update!(**args)
3561
+ end
3562
+
3563
+ # Update properties of this object
3564
+ def update!(**args)
3565
+ @source = args[:source] if args.key?(:source)
3566
+ @options = args[:options] if args.key?(:options)
3567
+ end
3568
+ end
3569
+
3570
+ # Hints for splitting a Source into bundles (parts for parallel processing)
3571
+ # using SourceSplitRequest.
3572
+ class SourceSplitOptions
3573
+ include Google::Apis::Core::Hashable
3574
+
3575
+ # The source should be split into a set of bundles where the estimated size of
3576
+ # each is approximately this many bytes.
3577
+ # Corresponds to the JSON property `desiredBundleSizeBytes`
3578
+ # @return [String]
3579
+ attr_accessor :desired_bundle_size_bytes
3580
+
3581
+ # DEPRECATED in favor of desired_bundle_size_bytes.
3582
+ # Corresponds to the JSON property `desiredShardSizeBytes`
3583
+ # @return [String]
3584
+ attr_accessor :desired_shard_size_bytes
3585
+
3586
+ def initialize(**args)
3587
+ update!(**args)
3588
+ end
3589
+
3590
+ # Update properties of this object
3591
+ def update!(**args)
3592
+ @desired_bundle_size_bytes = args[:desired_bundle_size_bytes] if args.key?(:desired_bundle_size_bytes)
3593
+ @desired_shard_size_bytes = args[:desired_shard_size_bytes] if args.key?(:desired_shard_size_bytes)
3594
+ end
3595
+ end
3596
+
3597
+ # A request to compute the SourceMetadata of a Source.
3598
+ class SourceGetMetadataRequest
3599
+ include Google::Apis::Core::Hashable
3600
+
3601
+ # A source that records can be read and decoded from.
3602
+ # Corresponds to the JSON property `source`
3603
+ # @return [Google::Apis::DataflowV1b3::Source]
3604
+ attr_accessor :source
3605
+
3606
+ def initialize(**args)
3607
+ update!(**args)
3608
+ end
3609
+
3610
+ # Update properties of this object
3611
+ def update!(**args)
3612
+ @source = args[:source] if args.key?(:source)
3613
+ end
3614
+ end
3615
+
3616
+ # A task which describes what action should be performed for the specified
3617
+ # streaming computation ranges.
3618
+ class StreamingComputationTask
3619
+ include Google::Apis::Core::Hashable
3620
+
3621
+ # A type of streaming computation task.
3622
+ # Corresponds to the JSON property `taskType`
3623
+ # @return [String]
3624
+ attr_accessor :task_type
3625
+
3626
+ # Describes the set of data disks this task should apply to.
3627
+ # Corresponds to the JSON property `dataDisks`
3628
+ # @return [Array<Google::Apis::DataflowV1b3::MountedDataDisk>]
3629
+ attr_accessor :data_disks
3630
+
3631
+ # Contains ranges of a streaming computation this task should apply to.
3632
+ # Corresponds to the JSON property `computationRanges`
3633
+ # @return [Array<Google::Apis::DataflowV1b3::StreamingComputationRanges>]
3634
+ attr_accessor :computation_ranges
3635
+
3636
+ def initialize(**args)
3637
+ update!(**args)
3638
+ end
3639
+
3640
+ # Update properties of this object
3641
+ def update!(**args)
3642
+ @task_type = args[:task_type] if args.key?(:task_type)
3643
+ @data_disks = args[:data_disks] if args.key?(:data_disks)
3644
+ @computation_ranges = args[:computation_ranges] if args.key?(:computation_ranges)
3645
+ end
3646
+ end
3647
+
3648
+ # Describes mounted data disk.
3649
+ class MountedDataDisk
3650
+ include Google::Apis::Core::Hashable
3651
+
3652
+ # The name of the data disk. This name is local to the Google Cloud Platform
3653
+ # project and uniquely identifies the disk within that project, for example "
3654
+ # myproject-1014-104817-4c2-harness-0-disk-1".
3655
+ # Corresponds to the JSON property `dataDisk`
3656
+ # @return [String]
3657
+ attr_accessor :data_disk
3658
+
3659
+ def initialize(**args)
3660
+ update!(**args)
3661
+ end
3662
+
3663
+ # Update properties of this object
3664
+ def update!(**args)
3665
+ @data_disk = args[:data_disk] if args.key?(:data_disk)
3666
+ end
3667
+ end
3668
+
3669
+ # Describes full or partial data disk assignment information of the computation
3670
+ # ranges.
3671
+ class StreamingComputationRanges
3672
+ include Google::Apis::Core::Hashable
3673
+
3674
+ # The ID of the computation.
3675
+ # Corresponds to the JSON property `computationId`
3676
+ # @return [String]
3677
+ attr_accessor :computation_id
3678
+
3679
+ # Data disk assignments for ranges from this computation.
3680
+ # Corresponds to the JSON property `rangeAssignments`
3681
+ # @return [Array<Google::Apis::DataflowV1b3::KeyRangeDataDiskAssignment>]
3682
+ attr_accessor :range_assignments
3683
+
3684
+ def initialize(**args)
3685
+ update!(**args)
3686
+ end
3687
+
3688
+ # Update properties of this object
3689
+ def update!(**args)
3690
+ @computation_id = args[:computation_id] if args.key?(:computation_id)
3691
+ @range_assignments = args[:range_assignments] if args.key?(:range_assignments)
3692
+ end
3693
+ end
3694
+
3695
+ # Data disk assignment information for a specific key-range of a sharded
3696
+ # computation. Currently we only support UTF-8 character splits to simplify
3697
+ # encoding into JSON.
3698
+ class KeyRangeDataDiskAssignment
3699
+ include Google::Apis::Core::Hashable
3700
+
3701
+ # The start (inclusive) of the key range.
3702
+ # Corresponds to the JSON property `start`
3703
+ # @return [String]
3704
+ attr_accessor :start
3705
+
3706
+ # The end (exclusive) of the key range.
3707
+ # Corresponds to the JSON property `end`
3708
+ # @return [String]
3709
+ attr_accessor :end
3710
+
3711
+ # The name of the data disk where data for this range is stored. This name is
3712
+ # local to the Google Cloud Platform project and uniquely identifies the disk
3713
+ # within that project, for example "myproject-1014-104817-4c2-harness-0-disk-1".
3714
+ # Corresponds to the JSON property `dataDisk`
3715
+ # @return [String]
3716
+ attr_accessor :data_disk
3717
+
3718
+ def initialize(**args)
3719
+ update!(**args)
3720
+ end
3721
+
3722
+ # Update properties of this object
3723
+ def update!(**args)
3724
+ @start = args[:start] if args.key?(:start)
3725
+ @end = args[:end] if args.key?(:end)
3726
+ @data_disk = args[:data_disk] if args.key?(:data_disk)
3727
+ end
3728
+ end
3729
+
3730
+ # A task that carries configuration information for streaming computations.
3731
+ class StreamingConfigTask
3732
+ include Google::Apis::Core::Hashable
3733
+
3734
+ # Set of computation configuration information.
3735
+ # Corresponds to the JSON property `streamingComputationConfigs`
3736
+ # @return [Array<Google::Apis::DataflowV1b3::StreamingComputationConfig>]
3737
+ attr_accessor :streaming_computation_configs
3738
+
3739
+ # Map from user step names to state families.
3740
+ # Corresponds to the JSON property `userStepToStateFamilyNameMap`
3741
+ # @return [Hash<String,String>]
3742
+ attr_accessor :user_step_to_state_family_name_map
3743
+
3744
+ def initialize(**args)
3745
+ update!(**args)
3746
+ end
3747
+
3748
+ # Update properties of this object
3749
+ def update!(**args)
3750
+ @streaming_computation_configs = args[:streaming_computation_configs] if args.key?(:streaming_computation_configs)
3751
+ @user_step_to_state_family_name_map = args[:user_step_to_state_family_name_map] if args.key?(:user_step_to_state_family_name_map)
3752
+ end
3753
+ end
3754
+
3755
+ # Configuration information for a single streaming computation.
3756
+ class StreamingComputationConfig
3757
+ include Google::Apis::Core::Hashable
3758
+
3759
+ # Unique identifier for this computation.
3760
+ # Corresponds to the JSON property `computationId`
3761
+ # @return [String]
3762
+ attr_accessor :computation_id
3763
+
3764
+ # System defined name for this computation.
3765
+ # Corresponds to the JSON property `systemName`
3766
+ # @return [String]
3767
+ attr_accessor :system_name
3768
+
3769
+ # Stage name of this computation.
3770
+ # Corresponds to the JSON property `stageName`
3771
+ # @return [String]
3772
+ attr_accessor :stage_name
3773
+
3774
+ # Instructions that comprise the computation.
3775
+ # Corresponds to the JSON property `instructions`
3776
+ # @return [Array<Google::Apis::DataflowV1b3::ParallelInstruction>]
3777
+ attr_accessor :instructions
3778
+
3779
+ def initialize(**args)
3780
+ update!(**args)
3781
+ end
3782
+
3783
+ # Update properties of this object
3784
+ def update!(**args)
3785
+ @computation_id = args[:computation_id] if args.key?(:computation_id)
3786
+ @system_name = args[:system_name] if args.key?(:system_name)
3787
+ @stage_name = args[:stage_name] if args.key?(:stage_name)
3788
+ @instructions = args[:instructions] if args.key?(:instructions)
3789
+ end
3790
+ end
3791
+
3792
+ # A request for sending worker messages to the service.
3793
+ class SendWorkerMessagesRequest
3794
+ include Google::Apis::Core::Hashable
3795
+
3796
+ # The WorkerMessages to send.
3797
+ # Corresponds to the JSON property `workerMessages`
3798
+ # @return [Array<Google::Apis::DataflowV1b3::WorkerMessage>]
3799
+ attr_accessor :worker_messages
3800
+
3801
+ def initialize(**args)
3802
+ update!(**args)
3803
+ end
3804
+
3805
+ # Update properties of this object
3806
+ def update!(**args)
3807
+ @worker_messages = args[:worker_messages] if args.key?(:worker_messages)
3808
+ end
3809
+ end
3810
+
3811
+ # WorkerMessage provides information to the backend about a worker.
3812
+ class WorkerMessage
3813
+ include Google::Apis::Core::Hashable
3814
+
3815
+ # Labels are used to group WorkerMessages. For example, a worker_message about a
3816
+ # particular container might have the labels: ` "JOB_ID": "2015-04-22", "
3817
+ # WORKER_ID": "wordcount-vm-2015…" "CONTAINER_TYPE": "worker", "CONTAINER_ID": "
3818
+ # ac1234def"` Label tags typically correspond to Label enum values. However, for
3819
+ # ease of development other strings can be used as tags. LABEL_UNSPECIFIED
3820
+ # should not be used here.
3821
+ # Corresponds to the JSON property `labels`
3822
+ # @return [Hash<String,String>]
3823
+ attr_accessor :labels
3824
+
3825
+ # The timestamp of the worker_message.
3826
+ # Corresponds to the JSON property `time`
3827
+ # @return [String]
3828
+ attr_accessor :time
3829
+
3830
+ # WorkerHealthReport contains information about the health of a worker. The VM
3831
+ # should be identified by the labels attached to the WorkerMessage that this
3832
+ # health ping belongs to.
3833
+ # Corresponds to the JSON property `workerHealthReport`
3834
+ # @return [Google::Apis::DataflowV1b3::WorkerHealthReport]
3835
+ attr_accessor :worker_health_report
3836
+
3837
+ # A message code is used to report status and error messages to the service. The
3838
+ # message codes are intended to be machine readable. The service will take care
3839
+ # of translating these into user understandable messages if necessary. Example
3840
+ # use cases: 1. Worker processes reporting successful startup. 2. Worker
3841
+ # processes reporting specific errors (e.g. package staging failure).
3842
+ # Corresponds to the JSON property `workerMessageCode`
3843
+ # @return [Google::Apis::DataflowV1b3::WorkerMessageCode]
3844
+ attr_accessor :worker_message_code
3845
+
3846
+ def initialize(**args)
3847
+ update!(**args)
3848
+ end
3849
+
3850
+ # Update properties of this object
3851
+ def update!(**args)
3852
+ @labels = args[:labels] if args.key?(:labels)
3853
+ @time = args[:time] if args.key?(:time)
3854
+ @worker_health_report = args[:worker_health_report] if args.key?(:worker_health_report)
3855
+ @worker_message_code = args[:worker_message_code] if args.key?(:worker_message_code)
3856
+ end
3857
+ end
3858
+
3859
+ # WorkerHealthReport contains information about the health of a worker. The VM
3860
+ # should be identified by the labels attached to the WorkerMessage that this
3861
+ # health ping belongs to.
3862
+ class WorkerHealthReport
3863
+ include Google::Apis::Core::Hashable
3864
+
3865
+ # Whether the VM is healthy.
3866
+ # Corresponds to the JSON property `vmIsHealthy`
3867
+ # @return [Boolean]
3868
+ attr_accessor :vm_is_healthy
3869
+ alias_method :vm_is_healthy?, :vm_is_healthy
3870
+
3871
+ # The time the VM was booted.
3872
+ # Corresponds to the JSON property `vmStartupTime`
3873
+ # @return [String]
3874
+ attr_accessor :vm_startup_time
3875
+
3876
+ # The interval at which the worker is sending health reports. The default value
3877
+ # of 0 should be interpreted as the field is not being explicitly set by the
3878
+ # worker.
3879
+ # Corresponds to the JSON property `reportInterval`
3880
+ # @return [String]
3881
+ attr_accessor :report_interval
3882
+
3883
+ # The pods running on the worker. See: http://kubernetes.io/v1.1/docs/api-
3884
+ # reference/v1/definitions.html#_v1_pod This field is used by the worker to send
3885
+ # the status of the indvidual containers running on each worker.
3886
+ # Corresponds to the JSON property `pods`
3887
+ # @return [Array<Hash<String,Object>>]
3888
+ attr_accessor :pods
3889
+
3890
+ def initialize(**args)
3891
+ update!(**args)
3892
+ end
3893
+
3894
+ # Update properties of this object
3895
+ def update!(**args)
3896
+ @vm_is_healthy = args[:vm_is_healthy] if args.key?(:vm_is_healthy)
3897
+ @vm_startup_time = args[:vm_startup_time] if args.key?(:vm_startup_time)
3898
+ @report_interval = args[:report_interval] if args.key?(:report_interval)
3899
+ @pods = args[:pods] if args.key?(:pods)
3900
+ end
3901
+ end
3902
+
3903
+ # A message code is used to report status and error messages to the service. The
3904
+ # message codes are intended to be machine readable. The service will take care
3905
+ # of translating these into user understandable messages if necessary. Example
3906
+ # use cases: 1. Worker processes reporting successful startup. 2. Worker
3907
+ # processes reporting specific errors (e.g. package staging failure).
3908
+ class WorkerMessageCode
3909
+ include Google::Apis::Core::Hashable
3910
+
3911
+ # The code is a string intended for consumption by a machine that identifies the
3912
+ # type of message being sent. Examples: 1. "HARNESS_STARTED" might be used to
3913
+ # indicate the worker harness has started. 2. "GCS_DOWNLOAD_ERROR" might be used
3914
+ # to indicate an error downloading a GCS file as part of the boot process of one
3915
+ # of the worker containers. This is a string and not an enum to make it easy to
3916
+ # add new codes without waiting for an API change.
3917
+ # Corresponds to the JSON property `code`
3918
+ # @return [String]
3919
+ attr_accessor :code
3920
+
3921
+ # Parameters contains specific information about the code. This is a struct to
3922
+ # allow parameters of different types. Examples: 1. For a "HARNESS_STARTED"
3923
+ # message parameters might provide the name of the worker and additional data
3924
+ # like timing information. 2. For a "GCS_DOWNLOAD_ERROR" parameters might
3925
+ # contain fields listing the GCS objects being downloaded and fields containing
3926
+ # errors. In general complex data structures should be avoided. If a worker
3927
+ # needs to send a specific and complicated data structure then please consider
3928
+ # defining a new proto and adding it to the data oneof in WorkerMessageResponse.
3929
+ # Conventions: Parameters should only be used for information that isn't
3930
+ # typically passed as a label. hostname and other worker identifiers should
3931
+ # almost always be passed as labels since they will be included on most messages.
3932
+ # Corresponds to the JSON property `parameters`
3933
+ # @return [Hash<String,Object>]
3934
+ attr_accessor :parameters
3935
+
3936
+ def initialize(**args)
3937
+ update!(**args)
3938
+ end
3939
+
3940
+ # Update properties of this object
3941
+ def update!(**args)
3942
+ @code = args[:code] if args.key?(:code)
3943
+ @parameters = args[:parameters] if args.key?(:parameters)
3944
+ end
3945
+ end
3946
+
3947
+ # The response to the worker messages.
3948
+ class SendWorkerMessagesResponse
3949
+ include Google::Apis::Core::Hashable
3950
+
3951
+ # The servers response to the worker messages.
3952
+ # Corresponds to the JSON property `workerMessageResponses`
3953
+ # @return [Array<Google::Apis::DataflowV1b3::WorkerMessageResponse>]
3954
+ attr_accessor :worker_message_responses
3955
+
3956
+ def initialize(**args)
3957
+ update!(**args)
3958
+ end
3959
+
3960
+ # Update properties of this object
3961
+ def update!(**args)
3962
+ @worker_message_responses = args[:worker_message_responses] if args.key?(:worker_message_responses)
3963
+ end
3964
+ end
3965
+
3966
+ # A worker_message response allows the server to pass information to the sender.
3967
+ class WorkerMessageResponse
3968
+ include Google::Apis::Core::Hashable
3969
+
3970
+ # WorkerHealthReportResponse contains information returned to the worker in
3971
+ # response to a health ping.
3972
+ # Corresponds to the JSON property `workerHealthReportResponse`
3973
+ # @return [Google::Apis::DataflowV1b3::WorkerHealthReportResponse]
3974
+ attr_accessor :worker_health_report_response
3975
+
3976
+ def initialize(**args)
3977
+ update!(**args)
3978
+ end
3979
+
3980
+ # Update properties of this object
3981
+ def update!(**args)
3982
+ @worker_health_report_response = args[:worker_health_report_response] if args.key?(:worker_health_report_response)
3983
+ end
3984
+ end
3985
+
3986
+ # WorkerHealthReportResponse contains information returned to the worker in
3987
+ # response to a health ping.
3988
+ class WorkerHealthReportResponse
3989
+ include Google::Apis::Core::Hashable
3990
+
3991
+ # A positive value indicates the worker should change its reporting interval to
3992
+ # the specified value. The default value of zero means no change in report rate
3993
+ # is requested by the server.
3994
+ # Corresponds to the JSON property `reportInterval`
3995
+ # @return [String]
3996
+ attr_accessor :report_interval
3997
+
3998
+ def initialize(**args)
3999
+ update!(**args)
4000
+ end
4001
+
4002
+ # Update properties of this object
4003
+ def update!(**args)
4004
+ @report_interval = args[:report_interval] if args.key?(:report_interval)
4005
+ end
4006
+ end
4007
+ end
4008
+ end
4009
+ end