lemboy-google-api-client 0.9.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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