google-api-client 0.9.8 → 0.9.20

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