lemboy-google-api-client 0.9.26

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