google-api-client 0.10.3 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +12 -18
  3. data/CHANGELOG.md +22 -2
  4. data/Gemfile +5 -7
  5. data/MIGRATING.md +33 -0
  6. data/README.md +10 -2
  7. data/Rakefile +1 -0
  8. data/bin/generate-api +7 -1
  9. data/dl.rb +0 -0
  10. data/generated/google/apis/acceleratedmobilepageurl_v1/classes.rb +6 -6
  11. data/generated/google/apis/acceleratedmobilepageurl_v1/representations.rb +1 -1
  12. data/generated/google/apis/acceleratedmobilepageurl_v1/service.rb +1 -0
  13. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +1 -1
  14. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +759 -759
  15. data/generated/google/apis/adexchangebuyer2_v2beta1/representations.rb +152 -152
  16. data/generated/google/apis/adexchangebuyer2_v2beta1/service.rb +376 -375
  17. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +58 -58
  18. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +45 -45
  19. data/generated/google/apis/adexchangebuyer_v1_4/service.rb +22 -21
  20. data/generated/google/apis/adexchangeseller_v2_0/classes.rb +5 -5
  21. data/generated/google/apis/adexchangeseller_v2_0/representations.rb +5 -5
  22. data/generated/google/apis/adexchangeseller_v2_0/service.rb +1 -0
  23. data/generated/google/apis/admin_datatransfer_v1/classes.rb +2 -2
  24. data/generated/google/apis/admin_datatransfer_v1/representations.rb +2 -2
  25. data/generated/google/apis/admin_datatransfer_v1/service.rb +2 -1
  26. data/generated/google/apis/admin_directory_v1/classes.rb +11 -11
  27. data/generated/google/apis/admin_directory_v1/representations.rb +11 -11
  28. data/generated/google/apis/admin_directory_v1/service.rb +1 -0
  29. data/generated/google/apis/admin_reports_v1/classes.rb +5 -5
  30. data/generated/google/apis/admin_reports_v1/representations.rb +4 -4
  31. data/generated/google/apis/admin_reports_v1/service.rb +1 -0
  32. data/generated/google/apis/adsense_v1_4.rb +1 -1
  33. data/generated/google/apis/adsense_v1_4/classes.rb +2 -2
  34. data/generated/google/apis/adsense_v1_4/representations.rb +2 -2
  35. data/generated/google/apis/adsense_v1_4/service.rb +1 -0
  36. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  37. data/generated/google/apis/adsensehost_v4_1/classes.rb +1 -1
  38. data/generated/google/apis/adsensehost_v4_1/representations.rb +1 -1
  39. data/generated/google/apis/adsensehost_v4_1/service.rb +1 -0
  40. data/generated/google/apis/analytics_v3/classes.rb +10 -10
  41. data/generated/google/apis/analytics_v3/representations.rb +10 -10
  42. data/generated/google/apis/analytics_v3/service.rb +1 -0
  43. data/generated/google/apis/analyticsreporting_v4/classes.rb +933 -933
  44. data/generated/google/apis/analyticsreporting_v4/representations.rb +197 -197
  45. data/generated/google/apis/analyticsreporting_v4/service.rb +5 -4
  46. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  47. data/generated/google/apis/androidenterprise_v1/classes.rb +1 -1
  48. data/generated/google/apis/androidenterprise_v1/representations.rb +1 -1
  49. data/generated/google/apis/androidenterprise_v1/service.rb +1 -0
  50. data/generated/google/apis/androidpublisher_v2/classes.rb +13 -13
  51. data/generated/google/apis/androidpublisher_v2/representations.rb +13 -13
  52. data/generated/google/apis/androidpublisher_v2/service.rb +3 -2
  53. data/generated/google/apis/appengine_v1/classes.rb +2 -2
  54. data/generated/google/apis/appengine_v1/representations.rb +2 -2
  55. data/generated/google/apis/appengine_v1/service.rb +1 -0
  56. data/generated/google/apis/appsactivity_v1/classes.rb +1 -1
  57. data/generated/google/apis/appsactivity_v1/representations.rb +1 -1
  58. data/generated/google/apis/appsactivity_v1/service.rb +1 -0
  59. data/generated/google/apis/appsmarket_v2.rb +35 -0
  60. data/generated/google/apis/appsmarket_v2/classes.rb +396 -0
  61. data/generated/google/apis/appsmarket_v2/representations.rb +180 -0
  62. data/generated/google/apis/appsmarket_v2/service.rb +187 -0
  63. data/generated/google/apis/appstate_v1.rb +1 -1
  64. data/generated/google/apis/appstate_v1/service.rb +1 -0
  65. data/generated/google/apis/bigquery_v2/classes.rb +39 -39
  66. data/generated/google/apis/bigquery_v2/representations.rb +38 -38
  67. data/generated/google/apis/bigquery_v2/service.rb +3 -2
  68. data/generated/google/apis/blogger_v3/classes.rb +2 -2
  69. data/generated/google/apis/blogger_v3/representations.rb +2 -2
  70. data/generated/google/apis/blogger_v3/service.rb +1 -0
  71. data/generated/google/apis/books_v1/classes.rb +5 -5
  72. data/generated/google/apis/books_v1/representations.rb +4 -4
  73. data/generated/google/apis/books_v1/service.rb +1 -0
  74. data/generated/google/apis/calendar_v3/classes.rb +1 -1
  75. data/generated/google/apis/calendar_v3/representations.rb +1 -1
  76. data/generated/google/apis/calendar_v3/service.rb +1 -0
  77. data/generated/google/apis/civicinfo_v2/classes.rb +6 -6
  78. data/generated/google/apis/civicinfo_v2/representations.rb +6 -6
  79. data/generated/google/apis/civicinfo_v2/service.rb +2 -1
  80. data/generated/google/apis/classroom_v1/service.rb +1 -0
  81. data/generated/google/apis/cloudbilling_v1/service.rb +1 -0
  82. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  83. data/generated/google/apis/cloudbuild_v1/classes.rb +626 -626
  84. data/generated/google/apis/cloudbuild_v1/representations.rb +109 -109
  85. data/generated/google/apis/cloudbuild_v1/service.rb +159 -158
  86. data/generated/google/apis/clouddebugger_v2/classes.rb +358 -358
  87. data/generated/google/apis/clouddebugger_v2/representations.rb +99 -99
  88. data/generated/google/apis/clouddebugger_v2/service.rb +42 -41
  89. data/generated/google/apis/clouderrorreporting_v1beta1.rb +1 -1
  90. data/generated/google/apis/clouderrorreporting_v1beta1/classes.rb +220 -220
  91. data/generated/google/apis/clouderrorreporting_v1beta1/representations.rb +52 -52
  92. data/generated/google/apis/clouderrorreporting_v1beta1/service.rb +59 -58
  93. data/generated/google/apis/cloudfunctions_v1/classes.rb +7 -7
  94. data/generated/google/apis/cloudfunctions_v1/representations.rb +1 -1
  95. data/generated/google/apis/cloudfunctions_v1/service.rb +5 -4
  96. data/generated/google/apis/cloudkms_v1/classes.rb +311 -311
  97. data/generated/google/apis/cloudkms_v1/representations.rb +87 -87
  98. data/generated/google/apis/cloudkms_v1/service.rb +168 -167
  99. data/generated/google/apis/cloudmonitoring_v2beta2/classes.rb +4 -4
  100. data/generated/google/apis/cloudmonitoring_v2beta2/representations.rb +4 -4
  101. data/generated/google/apis/cloudmonitoring_v2beta2/service.rb +1 -0
  102. data/generated/google/apis/cloudresourcemanager_v1.rb +3 -3
  103. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +341 -341
  104. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +62 -62
  105. data/generated/google/apis/cloudresourcemanager_v1/service.rb +458 -457
  106. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +327 -327
  107. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +71 -71
  108. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +237 -236
  109. data/generated/google/apis/cloudtrace_v1.rb +3 -3
  110. data/generated/google/apis/cloudtrace_v1/classes.rb +38 -38
  111. data/generated/google/apis/cloudtrace_v1/representations.rb +13 -13
  112. data/generated/google/apis/cloudtrace_v1/service.rb +14 -13
  113. data/generated/google/apis/clouduseraccounts_beta/classes.rb +4 -4
  114. data/generated/google/apis/clouduseraccounts_beta/representations.rb +4 -4
  115. data/generated/google/apis/clouduseraccounts_beta/service.rb +1 -0
  116. data/generated/google/apis/compute_beta/classes.rb +52 -52
  117. data/generated/google/apis/compute_beta/representations.rb +52 -52
  118. data/generated/google/apis/compute_beta/service.rb +2 -1
  119. data/generated/google/apis/compute_v1/classes.rb +48 -48
  120. data/generated/google/apis/compute_v1/representations.rb +48 -48
  121. data/generated/google/apis/compute_v1/service.rb +2 -1
  122. data/generated/google/apis/container_v1/service.rb +1 -0
  123. data/generated/google/apis/content_v2.rb +1 -1
  124. data/generated/google/apis/content_v2/classes.rb +38 -660
  125. data/generated/google/apis/content_v2/representations.rb +37 -303
  126. data/generated/google/apis/content_v2/service.rb +63 -279
  127. data/generated/google/apis/customsearch_v1/classes.rb +2 -2
  128. data/generated/google/apis/customsearch_v1/representations.rb +2 -2
  129. data/generated/google/apis/customsearch_v1/service.rb +1 -0
  130. data/generated/google/apis/dataflow_v1b3/classes.rb +3281 -3281
  131. data/generated/google/apis/dataflow_v1b3/representations.rb +777 -777
  132. data/generated/google/apis/dataflow_v1b3/service.rb +106 -105
  133. data/generated/google/apis/dataproc_v1/classes.rb +395 -395
  134. data/generated/google/apis/dataproc_v1/representations.rb +91 -91
  135. data/generated/google/apis/dataproc_v1/service.rb +356 -355
  136. data/generated/google/apis/datastore_v1/classes.rb +506 -506
  137. data/generated/google/apis/datastore_v1/representations.rb +147 -147
  138. data/generated/google/apis/datastore_v1/service.rb +46 -45
  139. data/generated/google/apis/deploymentmanager_v2/classes.rb +6 -6
  140. data/generated/google/apis/deploymentmanager_v2/representations.rb +6 -6
  141. data/generated/google/apis/deploymentmanager_v2/service.rb +1 -0
  142. data/generated/google/apis/dfareporting_v2_6/classes.rb +280 -280
  143. data/generated/google/apis/dfareporting_v2_6/representations.rb +266 -266
  144. data/generated/google/apis/dfareporting_v2_6/service.rb +421 -420
  145. data/generated/google/apis/dfareporting_v2_7/classes.rb +280 -280
  146. data/generated/google/apis/dfareporting_v2_7/representations.rb +266 -266
  147. data/generated/google/apis/dfareporting_v2_7/service.rb +423 -422
  148. data/generated/google/apis/discovery_v1/service.rb +1 -0
  149. data/generated/google/apis/dns_v1/classes.rb +2 -2
  150. data/generated/google/apis/dns_v1/representations.rb +2 -2
  151. data/generated/google/apis/dns_v1/service.rb +1 -0
  152. data/generated/google/apis/dns_v2beta1/classes.rb +2 -2
  153. data/generated/google/apis/dns_v2beta1/representations.rb +2 -2
  154. data/generated/google/apis/dns_v2beta1/service.rb +1 -0
  155. data/generated/google/apis/doubleclickbidmanager_v1/classes.rb +15 -15
  156. data/generated/google/apis/doubleclickbidmanager_v1/representations.rb +13 -13
  157. data/generated/google/apis/doubleclickbidmanager_v1/service.rb +5 -4
  158. data/generated/google/apis/doubleclicksearch_v2/classes.rb +28 -28
  159. data/generated/google/apis/doubleclicksearch_v2/representations.rb +28 -28
  160. data/generated/google/apis/doubleclicksearch_v2/service.rb +13 -12
  161. data/generated/google/apis/drive_v2/classes.rb +17 -17
  162. data/generated/google/apis/drive_v2/representations.rb +17 -17
  163. data/generated/google/apis/drive_v2/service.rb +5 -4
  164. data/generated/google/apis/drive_v3/classes.rb +13 -13
  165. data/generated/google/apis/drive_v3/representations.rb +12 -12
  166. data/generated/google/apis/drive_v3/service.rb +1 -0
  167. data/generated/google/apis/firebasedynamiclinks_v1.rb +1 -1
  168. data/generated/google/apis/firebasedynamiclinks_v1/classes.rb +81 -81
  169. data/generated/google/apis/firebasedynamiclinks_v1/representations.rb +24 -24
  170. data/generated/google/apis/firebasedynamiclinks_v1/service.rb +1 -0
  171. data/generated/google/apis/firebaserules_v1/classes.rb +201 -201
  172. data/generated/google/apis/firebaserules_v1/representations.rb +61 -61
  173. data/generated/google/apis/firebaserules_v1/service.rb +1 -0
  174. data/generated/google/apis/fitness_v1/classes.rb +18 -18
  175. data/generated/google/apis/fitness_v1/representations.rb +18 -18
  176. data/generated/google/apis/fitness_v1/service.rb +6 -5
  177. data/generated/google/apis/fusiontables_v2/classes.rb +2 -2
  178. data/generated/google/apis/fusiontables_v2/representations.rb +2 -2
  179. data/generated/google/apis/fusiontables_v2/service.rb +1 -0
  180. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  181. data/generated/google/apis/games_configuration_v1configuration/classes.rb +2 -2
  182. data/generated/google/apis/games_configuration_v1configuration/representations.rb +2 -2
  183. data/generated/google/apis/games_configuration_v1configuration/service.rb +1 -0
  184. data/generated/google/apis/games_management_v1management.rb +1 -1
  185. data/generated/google/apis/games_management_v1management/classes.rb +6 -6
  186. data/generated/google/apis/games_management_v1management/representations.rb +6 -6
  187. data/generated/google/apis/games_management_v1management/service.rb +1 -0
  188. data/generated/google/apis/games_v1.rb +1 -1
  189. data/generated/google/apis/games_v1/classes.rb +47 -47
  190. data/generated/google/apis/games_v1/representations.rb +47 -47
  191. data/generated/google/apis/games_v1/service.rb +58 -57
  192. data/generated/google/apis/genomics_v1.rb +6 -6
  193. data/generated/google/apis/genomics_v1/classes.rb +2354 -2354
  194. data/generated/google/apis/genomics_v1/representations.rb +487 -487
  195. data/generated/google/apis/genomics_v1/service.rb +1188 -1187
  196. data/generated/google/apis/gmail_v1/classes.rb +11 -11
  197. data/generated/google/apis/gmail_v1/representations.rb +11 -11
  198. data/generated/google/apis/gmail_v1/service.rb +2 -1
  199. data/generated/google/apis/groupsmigration_v1/service.rb +1 -0
  200. data/generated/google/apis/groupssettings_v1/service.rb +1 -0
  201. data/generated/google/apis/iam_v1/classes.rb +437 -437
  202. data/generated/google/apis/iam_v1/representations.rb +95 -95
  203. data/generated/google/apis/iam_v1/service.rb +87 -86
  204. data/generated/google/apis/identitytoolkit_v3/classes.rb +20 -20
  205. data/generated/google/apis/identitytoolkit_v3/representations.rb +20 -20
  206. data/generated/google/apis/identitytoolkit_v3/service.rb +1 -0
  207. data/generated/google/apis/kgsearch_v1/service.rb +9 -8
  208. data/generated/google/apis/language_v1.rb +1 -1
  209. data/generated/google/apis/language_v1/classes.rb +245 -245
  210. data/generated/google/apis/language_v1/representations.rb +65 -65
  211. data/generated/google/apis/language_v1/service.rb +1 -0
  212. data/generated/google/apis/language_v1beta1.rb +1 -1
  213. data/generated/google/apis/language_v1beta1/classes.rb +277 -277
  214. data/generated/google/apis/language_v1beta1/representations.rb +83 -83
  215. data/generated/google/apis/language_v1beta1/service.rb +31 -30
  216. data/generated/google/apis/licensing_v1/service.rb +1 -0
  217. data/generated/google/apis/logging_v2/classes.rb +408 -408
  218. data/generated/google/apis/logging_v2/representations.rb +93 -93
  219. data/generated/google/apis/logging_v2/service.rb +408 -407
  220. data/generated/google/apis/logging_v2beta1.rb +3 -3
  221. data/generated/google/apis/logging_v2beta1/classes.rb +892 -892
  222. data/generated/google/apis/logging_v2beta1/representations.rb +128 -128
  223. data/generated/google/apis/logging_v2beta1/service.rb +89 -88
  224. data/generated/google/apis/manufacturers_v1/classes.rb +309 -309
  225. data/generated/google/apis/manufacturers_v1/representations.rb +64 -64
  226. data/generated/google/apis/manufacturers_v1/service.rb +1 -0
  227. data/generated/google/apis/mirror_v1/service.rb +1 -0
  228. data/generated/google/apis/ml_v1/classes.rb +1185 -1185
  229. data/generated/google/apis/ml_v1/representations.rb +171 -171
  230. data/generated/google/apis/ml_v1/service.rb +282 -281
  231. data/generated/google/apis/monitoring_v3.rb +3 -3
  232. data/generated/google/apis/monitoring_v3/classes.rb +334 -334
  233. data/generated/google/apis/monitoring_v3/representations.rb +86 -86
  234. data/generated/google/apis/monitoring_v3/service.rb +344 -343
  235. data/generated/google/apis/mybusiness_v3/service.rb +1 -0
  236. data/generated/google/apis/oauth2_v2/service.rb +1 -0
  237. data/generated/google/apis/pagespeedonline_v2/classes.rb +8 -8
  238. data/generated/google/apis/pagespeedonline_v2/representations.rb +8 -8
  239. data/generated/google/apis/pagespeedonline_v2/service.rb +1 -0
  240. data/generated/google/apis/partners_v2/classes.rb +1466 -1466
  241. data/generated/google/apis/partners_v2/representations.rb +371 -371
  242. data/generated/google/apis/partners_v2/service.rb +530 -529
  243. data/generated/google/apis/people_v1.rb +4 -4
  244. data/generated/google/apis/people_v1/classes.rb +1009 -1009
  245. data/generated/google/apis/people_v1/representations.rb +249 -249
  246. data/generated/google/apis/people_v1/service.rb +13 -12
  247. data/generated/google/apis/plus_domains_v1/classes.rb +2 -2
  248. data/generated/google/apis/plus_domains_v1/representations.rb +2 -2
  249. data/generated/google/apis/plus_domains_v1/service.rb +1 -0
  250. data/generated/google/apis/plus_v1/service.rb +1 -0
  251. data/generated/google/apis/prediction_v1_6/classes.rb +9 -9
  252. data/generated/google/apis/prediction_v1_6/representations.rb +9 -9
  253. data/generated/google/apis/prediction_v1_6/service.rb +1 -0
  254. data/generated/google/apis/proximitybeacon_v1beta1/classes.rb +221 -221
  255. data/generated/google/apis/proximitybeacon_v1beta1/representations.rb +55 -55
  256. data/generated/google/apis/proximitybeacon_v1beta1/service.rb +378 -377
  257. data/generated/google/apis/pubsub_v1/classes.rb +99 -99
  258. data/generated/google/apis/pubsub_v1/representations.rb +25 -25
  259. data/generated/google/apis/pubsub_v1/service.rb +236 -235
  260. data/generated/google/apis/qpx_express_v1/service.rb +1 -0
  261. data/generated/google/apis/replicapool_v1beta2/classes.rb +3 -3
  262. data/generated/google/apis/replicapool_v1beta2/representations.rb +3 -3
  263. data/generated/google/apis/replicapool_v1beta2/service.rb +1 -0
  264. data/generated/google/apis/replicapoolupdater_v1beta1/classes.rb +2 -2
  265. data/generated/google/apis/replicapoolupdater_v1beta1/representations.rb +2 -2
  266. data/generated/google/apis/replicapoolupdater_v1beta1/service.rb +1 -0
  267. data/generated/google/apis/reseller_v1/classes.rb +5 -5
  268. data/generated/google/apis/reseller_v1/representations.rb +5 -5
  269. data/generated/google/apis/reseller_v1/service.rb +1 -0
  270. data/generated/google/apis/resourceviews_v1beta2/classes.rb +2 -2
  271. data/generated/google/apis/resourceviews_v1beta2/representations.rb +2 -2
  272. data/generated/google/apis/resourceviews_v1beta2/service.rb +1 -0
  273. data/generated/google/apis/runtimeconfig_v1.rb +3 -3
  274. data/generated/google/apis/runtimeconfig_v1/classes.rb +28 -28
  275. data/generated/google/apis/runtimeconfig_v1/representations.rb +3 -3
  276. data/generated/google/apis/runtimeconfig_v1/service.rb +53 -52
  277. data/generated/google/apis/script_v1.rb +18 -18
  278. data/generated/google/apis/script_v1/classes.rb +84 -84
  279. data/generated/google/apis/script_v1/representations.rb +18 -18
  280. data/generated/google/apis/script_v1/service.rb +11 -10
  281. data/generated/google/apis/searchconsole_v1/classes.rb +75 -75
  282. data/generated/google/apis/searchconsole_v1/representations.rb +32 -32
  283. data/generated/google/apis/searchconsole_v1/service.rb +11 -10
  284. data/generated/google/apis/servicecontrol_v1/classes.rb +582 -582
  285. data/generated/google/apis/servicecontrol_v1/representations.rb +113 -113
  286. data/generated/google/apis/servicecontrol_v1/service.rb +71 -70
  287. data/generated/google/apis/servicemanagement_v1.rb +3 -3
  288. data/generated/google/apis/servicemanagement_v1/classes.rb +3725 -3725
  289. data/generated/google/apis/servicemanagement_v1/representations.rb +255 -255
  290. data/generated/google/apis/servicemanagement_v1/service.rb +179 -178
  291. data/generated/google/apis/serviceuser_v1.rb +3 -3
  292. data/generated/google/apis/serviceuser_v1/classes.rb +2845 -2845
  293. data/generated/google/apis/serviceuser_v1/representations.rb +228 -228
  294. data/generated/google/apis/serviceuser_v1/service.rb +47 -46
  295. data/generated/google/apis/sheets_v4.rb +1 -1
  296. data/generated/google/apis/sheets_v4/classes.rb +4456 -4456
  297. data/generated/google/apis/sheets_v4/representations.rb +859 -859
  298. data/generated/google/apis/sheets_v4/service.rb +180 -179
  299. data/generated/google/apis/site_verification_v1/service.rb +1 -0
  300. data/generated/google/apis/slides_v1.rb +1 -1
  301. data/generated/google/apis/slides_v1/classes.rb +2856 -2856
  302. data/generated/google/apis/slides_v1/representations.rb +683 -683
  303. data/generated/google/apis/slides_v1/service.rb +27 -26
  304. data/generated/google/apis/sourcerepo_v1/classes.rb +281 -281
  305. data/generated/google/apis/sourcerepo_v1/representations.rb +79 -79
  306. data/generated/google/apis/sourcerepo_v1/service.rb +112 -111
  307. data/generated/google/apis/spanner_v1/classes.rb +2177 -2177
  308. data/generated/google/apis/spanner_v1/representations.rb +325 -325
  309. data/generated/google/apis/spanner_v1/service.rb +374 -373
  310. data/generated/google/apis/speech_v1beta1/classes.rb +197 -197
  311. data/generated/google/apis/speech_v1beta1/representations.rb +36 -36
  312. data/generated/google/apis/speech_v1beta1/service.rb +27 -26
  313. data/generated/google/apis/sqladmin_v1beta4/classes.rb +14 -14
  314. data/generated/google/apis/sqladmin_v1beta4/representations.rb +14 -14
  315. data/generated/google/apis/sqladmin_v1beta4/service.rb +3 -2
  316. data/generated/google/apis/storage_v1.rb +1 -1
  317. data/generated/google/apis/storage_v1/classes.rb +11 -11
  318. data/generated/google/apis/storage_v1/representations.rb +11 -11
  319. data/generated/google/apis/storage_v1/service.rb +65 -64
  320. data/generated/google/apis/storagetransfer_v1/classes.rb +239 -239
  321. data/generated/google/apis/storagetransfer_v1/representations.rb +79 -79
  322. data/generated/google/apis/storagetransfer_v1/service.rb +133 -132
  323. data/generated/google/apis/surveys_v2/classes.rb +4 -4
  324. data/generated/google/apis/surveys_v2/representations.rb +4 -4
  325. data/generated/google/apis/surveys_v2/service.rb +1 -0
  326. data/generated/google/apis/tagmanager_v1/classes.rb +7 -7
  327. data/generated/google/apis/tagmanager_v1/representations.rb +7 -7
  328. data/generated/google/apis/tagmanager_v1/service.rb +1 -0
  329. data/generated/google/apis/tagmanager_v2/classes.rb +6 -6
  330. data/generated/google/apis/tagmanager_v2/representations.rb +6 -6
  331. data/generated/google/apis/tagmanager_v2/service.rb +1 -0
  332. data/generated/google/apis/taskqueue_v1beta2/classes.rb +5 -5
  333. data/generated/google/apis/taskqueue_v1beta2/representations.rb +5 -5
  334. data/generated/google/apis/taskqueue_v1beta2/service.rb +1 -0
  335. data/generated/google/apis/tasks_v1/service.rb +3 -2
  336. data/generated/google/apis/toolresults_v1beta3.rb +1 -1
  337. data/generated/google/apis/toolresults_v1beta3/classes.rb +4 -4
  338. data/generated/google/apis/toolresults_v1beta3/representations.rb +4 -4
  339. data/generated/google/apis/toolresults_v1beta3/service.rb +1 -0
  340. data/generated/google/apis/tracing_v1/classes.rb +421 -421
  341. data/generated/google/apis/tracing_v1/representations.rb +86 -86
  342. data/generated/google/apis/tracing_v1/service.rb +60 -59
  343. data/generated/google/apis/translate_v2/service.rb +1 -0
  344. data/generated/google/apis/urlshortener_v1/classes.rb +3 -3
  345. data/generated/google/apis/urlshortener_v1/representations.rb +3 -3
  346. data/generated/google/apis/urlshortener_v1/service.rb +1 -0
  347. data/generated/google/apis/vision_v1/classes.rb +1290 -1290
  348. data/generated/google/apis/vision_v1/representations.rb +184 -184
  349. data/generated/google/apis/vision_v1/service.rb +11 -10
  350. data/generated/google/apis/webfonts_v1/service.rb +1 -0
  351. data/generated/google/apis/webmasters_v3/classes.rb +5 -5
  352. data/generated/google/apis/webmasters_v3/representations.rb +5 -5
  353. data/generated/google/apis/webmasters_v3/service.rb +1 -0
  354. data/generated/google/apis/youtube_analytics_v1/classes.rb +1 -1
  355. data/generated/google/apis/youtube_analytics_v1/representations.rb +1 -1
  356. data/generated/google/apis/youtube_analytics_v1/service.rb +1 -0
  357. data/generated/google/apis/youtube_partner_v1/classes.rb +13 -13
  358. data/generated/google/apis/youtube_partner_v1/representations.rb +13 -13
  359. data/generated/google/apis/youtube_partner_v1/service.rb +1 -0
  360. data/generated/google/apis/youtube_v3/classes.rb +31 -31
  361. data/generated/google/apis/youtube_v3/representations.rb +31 -31
  362. data/generated/google/apis/youtube_v3/service.rb +2 -1
  363. data/generated/google/apis/youtubereporting_v1.rb +4 -4
  364. data/generated/google/apis/youtubereporting_v1/classes.rb +73 -73
  365. data/generated/google/apis/youtubereporting_v1/representations.rb +18 -18
  366. data/generated/google/apis/youtubereporting_v1/service.rb +77 -76
  367. data/google-api-client.gemspec +4 -6
  368. data/lib/google/apis/core/api_command.rb +8 -3
  369. data/lib/google/apis/core/base_service.rb +47 -18
  370. data/lib/google/apis/core/batch.rb +13 -18
  371. data/lib/google/apis/core/composite_io.rb +97 -0
  372. data/lib/google/apis/core/download.rb +24 -20
  373. data/lib/google/apis/core/http_command.rb +49 -38
  374. data/lib/google/apis/core/json_representation.rb +5 -1
  375. data/lib/google/apis/core/multipart.rb +43 -95
  376. data/lib/google/apis/core/upload.rb +59 -84
  377. data/lib/google/apis/generator/model.rb +2 -0
  378. data/lib/google/apis/generator/templates/_representation.tmpl +1 -1
  379. data/lib/google/apis/generator/templates/service.rb.tmpl +1 -0
  380. data/lib/google/apis/options.rb +24 -12
  381. data/lib/google/apis/version.rb +1 -1
  382. data/samples/web/Gemfile +0 -1
  383. metadata +39 -37
  384. data/lib/google/apis/core/http_client_adapter.rb +0 -82
  385. data/third_party/hurley_patches.rb +0 -103
@@ -55,7 +55,7 @@ module Google
55
55
  def if_fn(name)
56
56
  ivar_name = "@#{name}".to_sym
57
57
  lambda do |opts|
58
- if opts[:options][:user_options] and opts[:options][:user_options][:skip_undefined]
58
+ if opts[:user_options] && opts[:user_options][:skip_undefined]
59
59
  if respond_to?(:key?)
60
60
  self.key?(name) || instance_variable_defined?(ivar_name)
61
61
  else
@@ -72,6 +72,10 @@ module Google
72
72
  options[:render_filter] = ->(value, _doc, *_args) { value.nil? ? nil : Base64.urlsafe_encode64(value) }
73
73
  options[:parse_filter] = ->(fragment, _doc, *_args) { Base64.urlsafe_decode64(fragment) }
74
74
  end
75
+ if options[:numeric_string]
76
+ options[:render_filter] = ->(value, _doc, *_args) { value.nil? ? nil : value.to_s}
77
+ options[:parse_filter] = ->(fragment, _doc, *_args) { fragment.to_i }
78
+ end
75
79
  if options[:type] == DateTime
76
80
  options[:render_filter] = ->(value, _doc, *_args) { value.nil? ? nil : value.is_a?(DateTime) ? value.rfc3339(3) : value.to_s }
77
81
  options[:parse_filter] = ->(fragment, _doc, *_args) { DateTime.parse(fragment) }
@@ -12,7 +12,6 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require 'hurley'
16
15
 
17
16
  module Google
18
17
  module Apis
@@ -21,108 +20,60 @@ module Google
21
20
  #
22
21
  # @private
23
22
  class JsonPart
24
- include Hurley::Multipart::Part
25
23
 
26
- # @return [Fixnum]
27
- # Length of part
28
- attr_reader :length
29
-
30
- # @param [String] boundary
31
- # Multipart boundary
32
24
  # @param [String] value
33
25
  # JSON content
34
- def initialize(boundary, value, header = {})
35
- @part = build_part(boundary, value)
36
- @length = @part.bytesize
37
- @io = StringIO.new(@part)
26
+ # @param [Hash] header
27
+ # Additional headers
28
+ def initialize(value, header = {})
29
+ @value = value
30
+ @header = header
38
31
  end
39
32
 
40
- private
41
-
42
- # Format the part
43
- #
44
- # @param [String] boundary
45
- # Multipart boundary
46
- # @param [String] value
47
- # JSON content
48
- # @return [String]
49
- def build_part(boundary, value)
33
+ def to_io(boundary)
50
34
  part = ''
51
35
  part << "--#{boundary}\r\n"
52
36
  part << "Content-Type: application/json\r\n"
37
+ @header.each do |(k, v)|
38
+ part << "#{k}: #{v}\r\n"
39
+ end
53
40
  part << "\r\n"
54
- part << "#{value}\r\n"
41
+ part << "#{@value}\r\n"
42
+ StringIO.new(part)
55
43
  end
44
+
56
45
  end
57
46
 
58
- # Part of a multipart request for holding arbitrary content. Modified
59
- # from Hurley::Multipart::FilePart to remove Content-Disposition
47
+ # Part of a multipart request for holding arbitrary content.
60
48
  #
61
49
  # @private
62
50
  class FilePart
63
- include Hurley::Multipart::Part
64
-
65
- # @return [Fixnum]
66
- # Length of part
67
- attr_reader :length
68
-
69
- # @param [String] boundary
70
- # Multipart boundary
71
- # @param [Google::Apis::Core::UploadIO] io
51
+ # @param [IO] io
72
52
  # IO stream
73
53
  # @param [Hash] header
74
54
  # Additional headers
75
- def initialize(boundary, io, header = {})
76
- file_length = io.respond_to?(:length) ? io.length : File.size(io.local_path)
77
-
78
- @head = build_head(boundary, io.content_type, file_length,
79
- io.respond_to?(:opts) ? io.opts.merge(header) : header)
80
-
81
- @length = @head.bytesize + file_length + FOOT.length
82
- @io = Hurley::CompositeReadIO.new(@length, StringIO.new(@head), io, StringIO.new(FOOT))
55
+ def initialize(io, header = {})
56
+ @io = io
57
+ @header = header
58
+ @length = io.respond_to?(:size) ? io.size : nil
83
59
  end
84
60
 
85
- private
86
-
87
- # Construct the header for the part
88
- #
89
- # @param [String] boundary
90
- # Multipart boundary
91
- # @param [String] type
92
- # Content type for the part
93
- # @param [Fixnum] content_len
94
- # Length of the part
95
- # @param [Hash] header
96
- # Headers for the part
97
- def build_head(boundary, type, content_len, header)
98
- content_id = ''
99
- if header[:content_id]
100
- content_id = sprintf(CID_FORMAT, header[:content_id])
61
+ def to_io(boundary)
62
+ head = ''
63
+ head << "--#{boundary}\r\n"
64
+ @header.each do |(k, v)|
65
+ head << "#{k}: #{v}\r\n"
101
66
  end
102
- sprintf(HEAD_FORMAT,
103
- boundary,
104
- content_len.to_i,
105
- content_id,
106
- header[:content_type] || type,
107
- header[:content_transfer_encoding] || DEFAULT_TR_ENCODING)
67
+ head << "Content-Length: #{@length}\r\n" unless @length.nil?
68
+ head << "Content-Transfer-Encoding: binary\r\n"
69
+ head << "\r\n"
70
+ Google::Apis::Core::CompositeIO.new(StringIO.new(head), @io, StringIO.new("\r\n"))
108
71
  end
109
-
110
- DEFAULT_TR_ENCODING = 'binary'.freeze
111
- FOOT = "\r\n".freeze
112
- CID_FORMAT = "Content-ID: %s\r\n"
113
- HEAD_FORMAT = <<-END
114
- --%s\r
115
- Content-Length: %d\r
116
- %sContent-Type: %s\r
117
- Content-Transfer-Encoding: %s\r
118
- \r
119
- END
120
72
  end
121
73
 
122
74
  # Helper for building multipart requests
123
75
  class Multipart
124
76
  MULTIPART_RELATED = 'multipart/related'
125
- DEFAULT_BOUNDARY = 'RubyApiClientMultiPart'
126
77
 
127
78
  # @return [String]
128
79
  # Content type header
@@ -135,8 +86,8 @@ Content-Transfer-Encoding: %s\r
135
86
 
136
87
  def initialize(content_type: MULTIPART_RELATED, boundary: nil)
137
88
  @parts = []
138
- @boundary = boundary || DEFAULT_BOUNDARY
139
- @content_type = "#{content_type}; boundary=#{boundary}"
89
+ @boundary = boundary || Digest::SHA1.hexdigest(SecureRandom.random_bytes(8))
90
+ @content_type = "#{content_type}; boundary=#{@boundary}"
140
91
  end
141
92
 
142
93
  # Append JSON data part
@@ -147,23 +98,26 @@ Content-Transfer-Encoding: %s\r
147
98
  # Optional unique ID of this part
148
99
  # @return [self]
149
100
  def add_json(body, content_id: nil)
150
- header = { :content_id => content_id }
151
- @parts << Google::Apis::Core::JsonPart.new(@boundary, body, header)
101
+ header = {}
102
+ header['Content-ID'] = content_id unless content_id.nil?
103
+ @parts << Google::Apis::Core::JsonPart.new(body, header).to_io(@boundary)
152
104
  self
153
105
  end
154
106
 
155
107
  # Append arbitrary data as a part
156
108
  #
157
- # @param [Google::Apis::Core::UploadIO] upload_io
109
+ # @param [IO] upload_io
158
110
  # IO stream
159
111
  # @param [String] content_id
160
112
  # Optional unique ID of this part
161
113
  # @return [self]
162
- def add_upload(upload_io, content_id: nil)
163
- header = { :content_id => content_id }
164
- @parts << Google::Apis::Core::FilePart.new(@boundary,
165
- upload_io,
166
- header)
114
+ def add_upload(upload_io, content_type: nil, content_id: nil)
115
+ header = {
116
+ 'Content-Type' => content_type || 'application/octet-stream'
117
+ }
118
+ header['Content-Id'] = content_id unless content_id.nil?
119
+ @parts << Google::Apis::Core::FilePart.new(upload_io,
120
+ header).to_io(@boundary)
167
121
  self
168
122
  end
169
123
 
@@ -172,16 +126,10 @@ Content-Transfer-Encoding: %s\r
172
126
  # @return [IO]
173
127
  # IO stream
174
128
  def assemble
175
- @parts << Hurley::Multipart::EpiloguePart.new(@boundary)
176
- ios = []
177
- len = 0
178
- @parts.each do |part|
179
- len += part.length
180
- ios << part.to_io
181
- end
182
- Hurley::CompositeReadIO.new(len, *ios)
129
+ @parts << StringIO.new("--#{@boundary}--\r\n\r\n")
130
+ Google::Apis::Core::CompositeIO.new(*@parts)
183
131
  end
184
132
  end
185
133
  end
186
134
  end
187
- end
135
+ end
@@ -18,58 +18,18 @@ require 'google/apis/core/api_command'
18
18
  require 'google/apis/errors'
19
19
  require 'addressable/uri'
20
20
  require 'tempfile'
21
- begin
22
- require 'mime/types/columnar'
23
- rescue LoadError
24
- # Temporary until next major bump when we can tighten
25
- # dependency to mime-types >-=3.0
26
- require 'mime-types'
27
- end
21
+ require 'mime-types'
28
22
 
29
23
  module Google
30
24
  module Apis
31
25
  module Core
32
- # Extension of Hurley's UploadIO to add length accessor
33
- class UploadIO < Hurley::UploadIO
34
- OCTET_STREAM_CONTENT_TYPE = 'application/octet-stream'
35
-
36
- # Get the length of the stream
37
- # @return [Fixnum]
38
- def length
39
- io.respond_to?(:length) ? io.length : File.size(local_path)
40
- end
41
-
42
- # Create a new instance given a file path
43
- # @param [String, File] file_name
44
- # Path to file
45
- # @param [String] content_type
46
- # Optional content type. If nil, will attempt to auto-detect
47
- # @return [Google::Apis::Core::UploadIO]
48
- def self.from_file(file_name, content_type: nil)
49
- if content_type.nil?
50
- type = MIME::Types.of(file_name)
51
- content_type = type.first.content_type unless type.nil? || type.empty?
52
- end
53
- new(file_name, content_type || OCTET_STREAM_CONTENT_TYPE)
54
- end
55
-
56
- # Wraps an IO stream in UploadIO
57
- # @param [#read] io
58
- # IO to wrap
59
- # @param [String] content_type
60
- # Optional content type.
61
- # @return [Google::Apis::Core::UploadIO]
62
- def self.from_io(io, content_type: OCTET_STREAM_CONTENT_TYPE)
63
- new(io, content_type)
64
- end
65
- end
66
-
67
26
  # Base upload command. Not intended to be used directly
68
27
  # @private
69
28
  class BaseUploadCommand < ApiCommand
70
29
  UPLOAD_PROTOCOL_HEADER = 'X-Goog-Upload-Protocol'
71
30
  UPLOAD_CONTENT_TYPE_HEADER = 'X-Goog-Upload-Header-Content-Type'
72
31
  UPLOAD_CONTENT_LENGTH = 'X-Goog-Upload-Header-Content-Length'
32
+ CONTENT_TYPE_HEADER = 'Content-Type'
73
33
 
74
34
  # File name or IO containing the content to upload
75
35
  # @return [String, File, #read]
@@ -83,21 +43,29 @@ module Google
83
43
  # @return [Google::Apis::Core::UploadIO]
84
44
  attr_accessor :upload_io
85
45
 
86
- # Ensure the content is readable and wrapped in an {{Google::Apis::Core::UploadIO}} instance.
46
+ # Ensure the content is readable and wrapped in an IO instance.
87
47
  #
88
48
  # @return [void]
89
49
  # @raise [Google::Apis::ClientError] if upload source is invalid
90
50
  def prepare!
91
51
  super
92
52
  if streamable?(upload_source)
93
- self.upload_io = UploadIO.from_io(upload_source, content_type: upload_content_type)
53
+ self.upload_io = upload_source
94
54
  @close_io_on_finish = false
95
- elsif upload_source.is_a?(String)
96
- self.upload_io = UploadIO.from_file(upload_source, content_type: upload_content_type)
55
+ elsif self.upload_source.is_a?(String)
56
+ self.upload_io = File.new(upload_source, 'r')
57
+ if self.upload_content_type.nil?
58
+ type = MIME::Types.of(upload_source)
59
+ self.upload_content_type = type.first.content_type unless type.nil? || type.empty?
60
+ end
97
61
  @close_io_on_finish = true
98
62
  else
99
63
  fail Google::Apis::ClientError, 'Invalid upload source'
100
64
  end
65
+ if self.upload_content_type.nil? || self.upload_content_type.empty?
66
+ self.upload_content_type = 'application/octet-stream'
67
+ end
68
+ puts self.upload_content_type.inspect
101
69
  end
102
70
 
103
71
  # Close IO stream when command done. Only closes the stream if it was opened by the command.
@@ -124,13 +92,12 @@ module Google
124
92
  super
125
93
  self.body = upload_io
126
94
  header[UPLOAD_PROTOCOL_HEADER] = RAW_PROTOCOL
127
- header[UPLOAD_CONTENT_TYPE_HEADER] = upload_io.content_type
95
+ header[UPLOAD_CONTENT_TYPE_HEADER] = upload_content_type
128
96
  end
129
97
  end
130
98
 
131
99
  # Implementation of the multipart upload protocol
132
100
  class MultipartUploadCommand < BaseUploadCommand
133
- UPLOAD_BOUNDARY = 'RubyApiClientUpload'
134
101
  MULTIPART_PROTOCOL = 'multipart'
135
102
  MULTIPART_RELATED = 'multipart/related'
136
103
 
@@ -140,11 +107,11 @@ module Google
140
107
  # @raise [Google::Apis::ClientError] if upload source is invalid
141
108
  def prepare!
142
109
  super
143
- @multipart = Multipart.new(boundary: UPLOAD_BOUNDARY, content_type: MULTIPART_RELATED)
144
- @multipart.add_json(body)
145
- @multipart.add_upload(upload_io)
146
- self.body = @multipart.assemble
147
- header[:content_type] = @multipart.content_type
110
+ multipart = Multipart.new
111
+ multipart.add_json(body)
112
+ multipart.add_upload(upload_io, content_type: upload_content_type)
113
+ self.body = multipart.assemble
114
+ header['Content-Type'] = multipart.content_type
148
115
  header[UPLOAD_PROTOCOL_HEADER] = MULTIPART_PROTOCOL
149
116
  end
150
117
  end
@@ -179,7 +146,7 @@ module Google
179
146
  #
180
147
  # @param [Fixnum] status
181
148
  # HTTP status code of response
182
- # @param [Hurley::Header] header
149
+ # @param [HTTP::Message::Headers] header
183
150
  # Response headers
184
151
  # @param [String, #read] body
185
152
  # Response body
@@ -189,9 +156,9 @@ module Google
189
156
  # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
190
157
  # @raise [Google::Apis::AuthorizationError] Authorization is required
191
158
  def process_response(status, header, body)
192
- @offset = Integer(header[BYTES_RECEIVED_HEADER]) if header.key?(BYTES_RECEIVED_HEADER)
193
- @upload_url = header[UPLOAD_URL_HEADER] if header.key?(UPLOAD_URL_HEADER)
194
- upload_status = header[UPLOAD_STATUS_HEADER]
159
+ @offset = Integer(header[BYTES_RECEIVED_HEADER].first) unless header[BYTES_RECEIVED_HEADER].empty?
160
+ @upload_url = header[UPLOAD_URL_HEADER].first unless header[UPLOAD_URL_HEADER].empty?
161
+ upload_status = header[UPLOAD_STATUS_HEADER].first
195
162
  logger.debug { sprintf('Upload status %s', upload_status) }
196
163
  if upload_status == STATUS_ACTIVE
197
164
  @state = :active
@@ -204,61 +171,69 @@ module Google
204
171
  super(status, header, body)
205
172
  end
206
173
 
207
- # Send the start command to initiate the upload
208
- #
209
- # @param [Hurley::Client] client
210
- # HTTP client
211
- # @return [Hurley::Response]
212
- # @raise [Google::Apis::ServerError] Unable to send the request
213
174
  def send_start_command(client)
214
175
  logger.debug { sprintf('Sending upload start command to %s', url) }
215
- client.send(method, url, body) do |req|
216
- apply_request_options(req)
217
- req.header[UPLOAD_PROTOCOL_HEADER] = RESUMABLE
218
- req.header[UPLOAD_COMMAND_HEADER] = START_COMMAND
219
- req.header[UPLOAD_CONTENT_LENGTH] = upload_io.length.to_s
220
- req.header[UPLOAD_CONTENT_TYPE_HEADER] = upload_io.content_type
221
- end
176
+
177
+ request_header = header.dup
178
+ apply_request_options(request_header)
179
+ request_header[UPLOAD_PROTOCOL_HEADER] = RESUMABLE
180
+ request_header[UPLOAD_COMMAND_HEADER] = START_COMMAND
181
+ request_header[UPLOAD_CONTENT_LENGTH] = upload_io.size.to_s
182
+ request_header[UPLOAD_CONTENT_TYPE_HEADER] = upload_content_type
183
+
184
+ client.request(method.to_s.upcase,
185
+ url.to_s, query: nil,
186
+ body: body,
187
+ header: request_header,
188
+ follow_redirect: true)
222
189
  rescue => e
223
190
  raise Google::Apis::ServerError, e.message
224
191
  end
225
192
 
226
193
  # Query for the status of an incomplete upload
227
194
  #
228
- # @param [Hurley::Client] client
195
+ # @param [HTTPClient] client
229
196
  # HTTP client
230
- # @return [Hurley::Response]
197
+ # @return [HTTP::Message]
231
198
  # @raise [Google::Apis::ServerError] Unable to send the request
232
199
  def send_query_command(client)
233
200
  logger.debug { sprintf('Sending upload query command to %s', @upload_url) }
234
- client.post(@upload_url, nil) do |req|
235
- apply_request_options(req)
236
- req.header[UPLOAD_COMMAND_HEADER] = QUERY_COMMAND
237
- end
201
+
202
+ request_header = header.dup
203
+ apply_request_options(request_header)
204
+ request_header[UPLOAD_COMMAND_HEADER] = QUERY_COMMAND
205
+
206
+ client.post(@upload_url, body: '', header: request_header, follow_redirect: true)
238
207
  end
239
208
 
209
+
240
210
  # Send the actual content
241
211
  #
242
- # @param [Hurley::Client] client
212
+ # @param [HTTPClient] client
243
213
  # HTTP client
244
- # @return [Hurley::Response]
214
+ # @return [HTTP::Message]
245
215
  # @raise [Google::Apis::ServerError] Unable to send the request
246
216
  def send_upload_command(client)
247
217
  logger.debug { sprintf('Sending upload command to %s', @upload_url) }
218
+
248
219
  content = upload_io
249
220
  content.pos = @offset
250
- client.post(@upload_url, content) do |req|
251
- apply_request_options(req)
252
- req.header[UPLOAD_COMMAND_HEADER] = UPLOAD_COMMAND
253
- req.header[UPLOAD_OFFSET_HEADER] = @offset.to_s
254
- end
221
+
222
+ request_header = header.dup
223
+ apply_request_options(request_header)
224
+ request_header[UPLOAD_COMMAND_HEADER] = QUERY_COMMAND
225
+ request_header[UPLOAD_COMMAND_HEADER] = UPLOAD_COMMAND
226
+ request_header[UPLOAD_OFFSET_HEADER] = @offset.to_s
227
+ request_header[CONTENT_TYPE_HEADER] = upload_content_type
228
+
229
+ client.post(@upload_url, body: content, header: request_header, follow_redirect: true)
255
230
  end
256
231
 
257
232
  # Execute the upload request once. This will typically perform two HTTP requests -- one to initiate or query
258
233
  # for the status of the upload, the second to send the (remaining) content.
259
234
  #
260
235
  # @private
261
- # @param [Hurley::Client] client
236
+ # @param [HTTPClient] client
262
237
  # HTTP client
263
238
  # @yield [result, err] Result or error if block supplied
264
239
  # @return [Object]