google-api-client 0.51.0 → 0.53.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (418) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +0 -14
  3. data/CHANGELOG.md +106 -0
  4. data/OVERVIEW.md +36 -27
  5. data/generated/google/apis/accesscontextmanager_v1/classes.rb +326 -0
  6. data/generated/google/apis/accesscontextmanager_v1/representations.rb +139 -0
  7. data/generated/google/apis/accesscontextmanager_v1.rb +1 -1
  8. data/generated/google/apis/admin_datatransfer_v1/classes.rb +6 -16
  9. data/generated/google/apis/admin_datatransfer_v1/service.rb +3 -3
  10. data/generated/google/apis/admin_datatransfer_v1.rb +2 -2
  11. data/generated/google/apis/admin_directory_v1/classes.rb +453 -321
  12. data/generated/google/apis/admin_directory_v1/representations.rb +15 -15
  13. data/generated/google/apis/admin_directory_v1/service.rb +325 -185
  14. data/generated/google/apis/admin_directory_v1.rb +2 -2
  15. data/generated/google/apis/admin_reports_v1/classes.rb +48 -43
  16. data/generated/google/apis/admin_reports_v1/service.rb +198 -179
  17. data/generated/google/apis/admin_reports_v1.rb +2 -2
  18. data/generated/google/apis/alertcenter_v1beta1.rb +1 -1
  19. data/generated/google/apis/analytics_v3/service.rb +1 -1
  20. data/generated/google/apis/analyticsadmin_v1alpha/classes.rb +10 -2
  21. data/generated/google/apis/analyticsadmin_v1alpha/representations.rb +1 -0
  22. data/generated/google/apis/analyticsadmin_v1alpha/service.rb +17 -13
  23. data/generated/google/apis/analyticsadmin_v1alpha.rb +2 -2
  24. data/generated/google/apis/analyticsdata_v1alpha/classes.rb +11 -11
  25. data/generated/google/apis/analyticsdata_v1alpha.rb +1 -1
  26. data/generated/google/apis/androidmanagement_v1.rb +1 -1
  27. data/generated/google/apis/apigateway_v1/classes.rb +1116 -0
  28. data/generated/google/apis/apigateway_v1/representations.rb +442 -0
  29. data/generated/google/apis/apigateway_v1/service.rb +1172 -0
  30. data/{lib/google/apis/generator/templates/classes.rb.tmpl → generated/google/apis/apigateway_v1.rb} +14 -9
  31. data/generated/google/apis/apigateway_v1beta/classes.rb +22 -17
  32. data/generated/google/apis/apigateway_v1beta/representations.rb +1 -1
  33. data/generated/google/apis/apigateway_v1beta.rb +1 -1
  34. data/generated/google/apis/apigee_v1/classes.rb +95 -22
  35. data/generated/google/apis/apigee_v1/representations.rb +42 -0
  36. data/generated/google/apis/apigee_v1/service.rb +256 -48
  37. data/generated/google/apis/apigee_v1.rb +1 -1
  38. data/generated/google/apis/appengine_v1/classes.rb +7 -0
  39. data/generated/google/apis/appengine_v1/representations.rb +1 -0
  40. data/generated/google/apis/appengine_v1.rb +1 -1
  41. data/generated/google/apis/artifactregistry_v1/classes.rb +242 -0
  42. data/generated/google/apis/artifactregistry_v1/representations.rb +116 -0
  43. data/generated/google/apis/artifactregistry_v1/service.rb +210 -0
  44. data/generated/google/apis/artifactregistry_v1.rb +38 -0
  45. data/generated/google/apis/artifactregistry_v1beta1/classes.rb +0 -120
  46. data/generated/google/apis/artifactregistry_v1beta1/representations.rb +0 -62
  47. data/generated/google/apis/artifactregistry_v1beta1/service.rb +4 -1
  48. data/generated/google/apis/artifactregistry_v1beta1.rb +1 -1
  49. data/generated/google/apis/artifactregistry_v1beta2/classes.rb +0 -120
  50. data/generated/google/apis/artifactregistry_v1beta2/representations.rb +0 -62
  51. data/generated/google/apis/artifactregistry_v1beta2/service.rb +4 -1
  52. data/generated/google/apis/artifactregistry_v1beta2.rb +1 -1
  53. data/generated/google/apis/chat_v1/service.rb +132 -0
  54. data/generated/google/apis/chat_v1.rb +1 -1
  55. data/generated/google/apis/cloudasset_v1/classes.rb +326 -0
  56. data/generated/google/apis/cloudasset_v1/representations.rb +139 -0
  57. data/generated/google/apis/cloudasset_v1.rb +1 -1
  58. data/generated/google/apis/cloudasset_v1beta1/classes.rb +326 -0
  59. data/generated/google/apis/cloudasset_v1beta1/representations.rb +139 -0
  60. data/generated/google/apis/cloudasset_v1beta1.rb +1 -1
  61. data/generated/google/apis/cloudasset_v1p5beta1/classes.rb +326 -0
  62. data/generated/google/apis/cloudasset_v1p5beta1/representations.rb +139 -0
  63. data/generated/google/apis/cloudasset_v1p5beta1.rb +1 -1
  64. data/generated/google/apis/cloudbuild_v1/classes.rb +3 -3
  65. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  66. data/generated/google/apis/cloudbuild_v1alpha1/classes.rb +3 -3
  67. data/generated/google/apis/cloudbuild_v1alpha1.rb +1 -1
  68. data/generated/google/apis/cloudbuild_v1alpha2/classes.rb +3 -3
  69. data/generated/google/apis/cloudbuild_v1alpha2.rb +1 -1
  70. data/generated/google/apis/cloudfunctions_v1/classes.rb +6 -0
  71. data/generated/google/apis/cloudfunctions_v1/representations.rb +1 -0
  72. data/generated/google/apis/cloudfunctions_v1.rb +1 -1
  73. data/generated/google/apis/cloudidentity_v1/classes.rb +240 -0
  74. data/generated/google/apis/cloudidentity_v1/representations.rb +125 -0
  75. data/generated/google/apis/cloudidentity_v1/service.rb +202 -2
  76. data/generated/google/apis/cloudidentity_v1.rb +1 -1
  77. data/generated/google/apis/cloudidentity_v1beta1/classes.rb +1 -1
  78. data/generated/google/apis/cloudidentity_v1beta1/service.rb +8 -2
  79. data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
  80. data/generated/google/apis/cloudkms_v1/classes.rb +0 -6
  81. data/generated/google/apis/cloudkms_v1/representations.rb +0 -1
  82. data/generated/google/apis/cloudkms_v1.rb +1 -1
  83. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +0 -26
  84. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +0 -24
  85. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  86. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +0 -26
  87. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +0 -24
  88. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  89. data/generated/google/apis/cloudresourcemanager_v2/classes.rb +0 -26
  90. data/generated/google/apis/cloudresourcemanager_v2/representations.rb +0 -24
  91. data/generated/google/apis/cloudresourcemanager_v2.rb +1 -1
  92. data/generated/google/apis/cloudresourcemanager_v2beta1/classes.rb +0 -26
  93. data/generated/google/apis/cloudresourcemanager_v2beta1/representations.rb +0 -24
  94. data/generated/google/apis/cloudresourcemanager_v2beta1.rb +1 -1
  95. data/generated/google/apis/cloudscheduler_v1beta1/classes.rb +19 -0
  96. data/generated/google/apis/cloudscheduler_v1beta1/representations.rb +2 -0
  97. data/generated/google/apis/cloudscheduler_v1beta1/service.rb +12 -2
  98. data/generated/google/apis/cloudscheduler_v1beta1.rb +1 -1
  99. data/generated/google/apis/cloudtasks_v2beta2/classes.rb +59 -0
  100. data/generated/google/apis/cloudtasks_v2beta2/representations.rb +19 -0
  101. data/generated/google/apis/cloudtasks_v2beta2.rb +1 -1
  102. data/generated/google/apis/cloudtasks_v2beta3/classes.rb +102 -0
  103. data/generated/google/apis/cloudtasks_v2beta3/representations.rb +35 -0
  104. data/generated/google/apis/cloudtasks_v2beta3/service.rb +16 -2
  105. data/generated/google/apis/cloudtasks_v2beta3.rb +1 -1
  106. data/generated/google/apis/composer_v1beta1/classes.rb +64 -0
  107. data/generated/google/apis/composer_v1beta1/representations.rb +18 -0
  108. data/generated/google/apis/composer_v1beta1.rb +1 -1
  109. data/generated/google/apis/compute_alpha/classes.rb +1071 -341
  110. data/generated/google/apis/compute_alpha/representations.rb +248 -19
  111. data/generated/google/apis/compute_alpha/service.rb +291 -15
  112. data/generated/google/apis/compute_alpha.rb +1 -1
  113. data/generated/google/apis/compute_beta/classes.rb +926 -283
  114. data/generated/google/apis/compute_beta/representations.rb +221 -18
  115. data/generated/google/apis/compute_beta/service.rb +24 -15
  116. data/generated/google/apis/compute_beta.rb +1 -1
  117. data/generated/google/apis/compute_v1/classes.rb +419 -158
  118. data/generated/google/apis/compute_v1/representations.rb +55 -0
  119. data/generated/google/apis/compute_v1/service.rb +9 -7
  120. data/generated/google/apis/compute_v1.rb +1 -1
  121. data/generated/google/apis/container_v1/classes.rb +55 -16
  122. data/generated/google/apis/container_v1/representations.rb +17 -0
  123. data/generated/google/apis/container_v1/service.rb +4 -2
  124. data/generated/google/apis/container_v1.rb +1 -1
  125. data/generated/google/apis/container_v1beta1/classes.rb +31 -20
  126. data/generated/google/apis/container_v1beta1/representations.rb +2 -0
  127. data/generated/google/apis/container_v1beta1/service.rb +6 -2
  128. data/generated/google/apis/container_v1beta1.rb +1 -1
  129. data/generated/google/apis/content_v2_1/classes.rb +450 -7
  130. data/generated/google/apis/content_v2_1/representations.rb +188 -0
  131. data/generated/google/apis/content_v2_1/service.rb +116 -0
  132. data/generated/google/apis/content_v2_1.rb +1 -1
  133. data/generated/google/apis/datacatalog_v1beta1/classes.rb +6 -0
  134. data/generated/google/apis/datacatalog_v1beta1/representations.rb +1 -0
  135. data/generated/google/apis/datacatalog_v1beta1.rb +1 -1
  136. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  137. data/generated/google/apis/datalabeling_v1beta1.rb +1 -1
  138. data/generated/google/apis/datamigration_v1beta1/classes.rb +0 -6
  139. data/generated/google/apis/datamigration_v1beta1/representations.rb +0 -1
  140. data/generated/google/apis/datamigration_v1beta1.rb +1 -1
  141. data/generated/google/apis/dataproc_v1/classes.rb +29 -1
  142. data/generated/google/apis/dataproc_v1/representations.rb +14 -0
  143. data/generated/google/apis/dataproc_v1/service.rb +42 -0
  144. data/generated/google/apis/dataproc_v1.rb +1 -1
  145. data/generated/google/apis/dataproc_v1beta2/classes.rb +29 -1
  146. data/generated/google/apis/dataproc_v1beta2/representations.rb +14 -0
  147. data/generated/google/apis/dataproc_v1beta2/service.rb +42 -0
  148. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  149. data/generated/google/apis/deploymentmanager_alpha/classes.rb +276 -644
  150. data/generated/google/apis/deploymentmanager_alpha/representations.rb +10 -143
  151. data/generated/google/apis/deploymentmanager_alpha/service.rb +247 -398
  152. data/generated/google/apis/deploymentmanager_alpha.rb +6 -5
  153. data/generated/google/apis/deploymentmanager_v2/service.rb +5 -25
  154. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  155. data/generated/google/apis/deploymentmanager_v2beta/service.rb +8 -40
  156. data/generated/google/apis/deploymentmanager_v2beta.rb +1 -1
  157. data/generated/google/apis/dialogflow_v2/classes.rb +4339 -284
  158. data/generated/google/apis/dialogflow_v2/representations.rb +2090 -211
  159. data/generated/google/apis/dialogflow_v2.rb +1 -1
  160. data/generated/google/apis/dialogflow_v2beta1/classes.rb +4341 -286
  161. data/generated/google/apis/dialogflow_v2beta1/representations.rb +2097 -218
  162. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  163. data/generated/google/apis/dialogflow_v3/classes.rb +11752 -0
  164. data/generated/google/apis/dialogflow_v3/representations.rb +5158 -0
  165. data/generated/google/apis/dialogflow_v3/service.rb +3414 -0
  166. data/generated/google/apis/{bigqueryreservation_v1alpha2.rb → dialogflow_v3.rb} +13 -12
  167. data/generated/google/apis/dialogflow_v3beta1/classes.rb +5147 -1554
  168. data/generated/google/apis/dialogflow_v3beta1/representations.rb +1966 -221
  169. data/generated/google/apis/dialogflow_v3beta1/service.rb +581 -0
  170. data/generated/google/apis/dialogflow_v3beta1.rb +1 -1
  171. data/generated/google/apis/dlp_v2/service.rb +297 -10
  172. data/generated/google/apis/dlp_v2.rb +1 -1
  173. data/generated/google/apis/dns_v1/classes.rb +65 -0
  174. data/generated/google/apis/dns_v1/representations.rb +32 -0
  175. data/generated/google/apis/dns_v1.rb +1 -1
  176. data/generated/google/apis/documentai_v1beta2/classes.rb +217 -186
  177. data/generated/google/apis/documentai_v1beta2/representations.rb +107 -24
  178. data/generated/google/apis/documentai_v1beta2.rb +1 -1
  179. data/generated/google/apis/documentai_v1beta3/classes.rb +238 -201
  180. data/generated/google/apis/documentai_v1beta3/representations.rb +107 -24
  181. data/generated/google/apis/documentai_v1beta3/service.rb +81 -2
  182. data/generated/google/apis/documentai_v1beta3.rb +1 -1
  183. data/generated/google/apis/eventarc_v1beta1/classes.rb +8 -9
  184. data/generated/google/apis/eventarc_v1beta1/service.rb +25 -5
  185. data/generated/google/apis/eventarc_v1beta1.rb +1 -1
  186. data/generated/google/apis/file_v1/classes.rb +61 -0
  187. data/generated/google/apis/file_v1/representations.rb +19 -0
  188. data/generated/google/apis/file_v1.rb +1 -1
  189. data/generated/google/apis/gameservices_v1/service.rb +14 -14
  190. data/generated/google/apis/gameservices_v1.rb +1 -1
  191. data/generated/google/apis/gameservices_v1beta/service.rb +14 -14
  192. data/generated/google/apis/gameservices_v1beta.rb +1 -1
  193. data/generated/google/apis/genomics_v2alpha1/classes.rb +11 -7
  194. data/generated/google/apis/genomics_v2alpha1.rb +1 -1
  195. data/generated/google/apis/healthcare_v1/classes.rb +0 -6
  196. data/generated/google/apis/healthcare_v1/representations.rb +0 -1
  197. data/generated/google/apis/healthcare_v1/service.rb +13 -12
  198. data/generated/google/apis/healthcare_v1.rb +1 -1
  199. data/generated/google/apis/healthcare_v1beta1/classes.rb +45 -19
  200. data/generated/google/apis/healthcare_v1beta1/representations.rb +3 -1
  201. data/generated/google/apis/healthcare_v1beta1/service.rb +37 -37
  202. data/generated/google/apis/healthcare_v1beta1.rb +1 -1
  203. data/generated/google/apis/iap_v1/classes.rb +0 -6
  204. data/generated/google/apis/iap_v1/representations.rb +0 -1
  205. data/generated/google/apis/iap_v1.rb +1 -1
  206. data/generated/google/apis/iap_v1beta1/classes.rb +0 -6
  207. data/generated/google/apis/iap_v1beta1/representations.rb +0 -1
  208. data/generated/google/apis/iap_v1beta1.rb +1 -1
  209. data/generated/google/apis/localservices_v1.rb +4 -1
  210. data/generated/google/apis/manufacturers_v1/classes.rb +2 -2
  211. data/generated/google/apis/manufacturers_v1.rb +1 -1
  212. data/generated/google/apis/metastore_v1beta/classes.rb +1151 -0
  213. data/generated/google/apis/metastore_v1beta/representations.rb +479 -0
  214. data/generated/google/apis/metastore_v1beta/service.rb +800 -0
  215. data/{lib/google/apis/core/logging.rb → generated/google/apis/metastore_v1beta.rb} +15 -10
  216. data/generated/google/apis/ml_v1/classes.rb +51 -18
  217. data/generated/google/apis/ml_v1/representations.rb +16 -0
  218. data/generated/google/apis/ml_v1.rb +1 -1
  219. data/generated/google/apis/monitoring_v3/classes.rb +10 -6
  220. data/generated/google/apis/monitoring_v3.rb +1 -1
  221. data/generated/google/apis/notebooks_v1/classes.rb +13 -0
  222. data/generated/google/apis/notebooks_v1/representations.rb +12 -0
  223. data/generated/google/apis/notebooks_v1/service.rb +34 -0
  224. data/generated/google/apis/notebooks_v1.rb +1 -1
  225. data/generated/google/apis/privateca_v1beta1/classes.rb +2 -1
  226. data/generated/google/apis/privateca_v1beta1.rb +1 -1
  227. data/generated/google/apis/prod_tt_sasportal_v1alpha1.rb +1 -1
  228. data/generated/google/apis/recommendationengine_v1beta1/service.rb +2 -1
  229. data/generated/google/apis/recommendationengine_v1beta1.rb +1 -1
  230. data/generated/google/apis/recommender_v1beta1/service.rb +317 -0
  231. data/generated/google/apis/recommender_v1beta1.rb +1 -1
  232. data/generated/google/apis/redis_v1/classes.rb +2 -2
  233. data/generated/google/apis/redis_v1.rb +1 -1
  234. data/generated/google/apis/redis_v1beta1/classes.rb +2 -2
  235. data/generated/google/apis/redis_v1beta1.rb +1 -1
  236. data/generated/google/apis/safebrowsing_v4/classes.rb +277 -277
  237. data/generated/google/apis/safebrowsing_v4/representations.rb +128 -128
  238. data/generated/google/apis/safebrowsing_v4/service.rb +44 -44
  239. data/generated/google/apis/safebrowsing_v4.rb +1 -1
  240. data/generated/google/apis/searchconsole_v1/classes.rb +7 -0
  241. data/generated/google/apis/searchconsole_v1/representations.rb +1 -0
  242. data/generated/google/apis/searchconsole_v1.rb +1 -1
  243. data/generated/google/apis/securitycenter_v1/classes.rb +18 -10
  244. data/generated/google/apis/securitycenter_v1/representations.rb +1 -0
  245. data/generated/google/apis/securitycenter_v1/service.rb +30 -30
  246. data/generated/google/apis/securitycenter_v1.rb +1 -1
  247. data/generated/google/apis/securitycenter_v1beta1/classes.rb +7 -0
  248. data/generated/google/apis/securitycenter_v1beta1/representations.rb +1 -0
  249. data/generated/google/apis/securitycenter_v1beta1.rb +1 -1
  250. data/generated/google/apis/securitycenter_v1beta2/classes.rb +7 -0
  251. data/generated/google/apis/securitycenter_v1beta2/representations.rb +1 -0
  252. data/generated/google/apis/securitycenter_v1beta2.rb +1 -1
  253. data/generated/google/apis/serviceconsumermanagement_v1beta1/classes.rb +11 -10
  254. data/generated/google/apis/serviceconsumermanagement_v1beta1.rb +1 -1
  255. data/generated/google/apis/servicecontrol_v1/service.rb +2 -2
  256. data/generated/google/apis/servicecontrol_v1.rb +3 -3
  257. data/generated/google/apis/servicecontrol_v2/service.rb +2 -2
  258. data/generated/google/apis/servicecontrol_v2.rb +3 -3
  259. data/generated/google/apis/servicedirectory_v1/classes.rb +721 -0
  260. data/generated/google/apis/servicedirectory_v1/representations.rb +304 -0
  261. data/generated/google/apis/servicedirectory_v1/service.rb +957 -0
  262. data/{lib/google/apis/generator/templates/representations.rb.tmpl → generated/google/apis/servicedirectory_v1.rb} +15 -12
  263. data/generated/google/apis/servicemanagement_v1/classes.rb +11 -10
  264. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  265. data/generated/google/apis/servicenetworking_v1/classes.rb +1 -1
  266. data/generated/google/apis/servicenetworking_v1.rb +1 -1
  267. data/generated/google/apis/servicenetworking_v1beta/classes.rb +1 -1
  268. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  269. data/generated/google/apis/serviceusage_v1/classes.rb +11 -10
  270. data/generated/google/apis/serviceusage_v1.rb +1 -1
  271. data/generated/google/apis/serviceusage_v1beta1/classes.rb +11 -10
  272. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  273. data/generated/google/apis/slides_v1/classes.rb +9 -3
  274. data/generated/google/apis/slides_v1.rb +1 -1
  275. data/generated/google/apis/speech_v1p1beta1/classes.rb +0 -22
  276. data/generated/google/apis/speech_v1p1beta1/representations.rb +0 -2
  277. data/generated/google/apis/speech_v1p1beta1.rb +1 -1
  278. data/generated/google/apis/sqladmin_v1beta4/classes.rb +7 -7
  279. data/generated/google/apis/sqladmin_v1beta4/service.rb +4 -1
  280. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  281. data/generated/google/apis/storagetransfer_v1/classes.rb +25 -0
  282. data/generated/google/apis/storagetransfer_v1/representations.rb +3 -0
  283. data/generated/google/apis/storagetransfer_v1.rb +1 -1
  284. data/generated/google/apis/testing_v1/classes.rb +1 -1
  285. data/generated/google/apis/testing_v1.rb +1 -1
  286. data/generated/google/apis/trafficdirector_v2/service.rb +1 -1
  287. data/generated/google/apis/trafficdirector_v2.rb +2 -2
  288. data/generated/google/apis/transcoder_v1beta1/classes.rb +12 -2
  289. data/generated/google/apis/transcoder_v1beta1/representations.rb +1 -0
  290. data/generated/google/apis/transcoder_v1beta1.rb +1 -1
  291. data/generated/google/apis/translate_v3/classes.rb +1 -1
  292. data/generated/google/apis/translate_v3.rb +1 -1
  293. data/generated/google/apis/translate_v3beta1/classes.rb +1 -1
  294. data/generated/google/apis/translate_v3beta1.rb +1 -1
  295. data/generated/google/apis/webmasters_v3/classes.rb +8 -0
  296. data/generated/google/apis/webmasters_v3/representations.rb +1 -0
  297. data/generated/google/apis/workflows_v1beta/classes.rb +4 -4
  298. data/generated/google/apis/workflows_v1beta.rb +1 -1
  299. data/generated/google/apis/youtube_v3/classes.rb +18 -143
  300. data/generated/google/apis/youtube_v3/representations.rb +0 -57
  301. data/generated/google/apis/youtube_v3/service.rb +0 -43
  302. data/generated/google/apis/youtube_v3.rb +1 -1
  303. data/lib/google/apis/version.rb +1 -23
  304. metadata +39 -267
  305. data/.github/CONTRIBUTING.md +0 -31
  306. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -36
  307. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -21
  308. data/.github/ISSUE_TEMPLATE/support_request.md +0 -7
  309. data/.github/workflows/autoapprove.yml +0 -49
  310. data/.github/workflows/release-please.yml +0 -79
  311. data/.gitignore +0 -23
  312. data/.kokoro/build.bat +0 -11
  313. data/.kokoro/build.sh +0 -4
  314. data/.kokoro/continuous/common.cfg +0 -25
  315. data/.kokoro/continuous/linux.cfg +0 -25
  316. data/.kokoro/continuous/osx.cfg +0 -8
  317. data/.kokoro/continuous/post.cfg +0 -30
  318. data/.kokoro/continuous/windows.cfg +0 -29
  319. data/.kokoro/osx.sh +0 -4
  320. data/.kokoro/presubmit/common.cfg +0 -24
  321. data/.kokoro/presubmit/linux.cfg +0 -24
  322. data/.kokoro/presubmit/osx.cfg +0 -8
  323. data/.kokoro/presubmit/windows.cfg +0 -29
  324. data/.kokoro/release.cfg +0 -94
  325. data/.kokoro/trampoline.bat +0 -10
  326. data/.kokoro/trampoline.sh +0 -4
  327. data/.repo-metadata.json +0 -5
  328. data/.rspec +0 -2
  329. data/.rubocop.yml +0 -12
  330. data/.rubocop_todo.yml +0 -63
  331. data/CODE_OF_CONDUCT.md +0 -43
  332. data/Gemfile +0 -55
  333. data/MIGRATING.md +0 -215
  334. data/README.md +0 -402
  335. data/Rakefile +0 -131
  336. data/api_list_config.yaml +0 -9
  337. data/api_names.yaml +0 -1082
  338. data/bin/generate-api +0 -194
  339. data/docs/api-keys.md +0 -20
  340. data/docs/auth.md +0 -53
  341. data/docs/client-secrets.md +0 -69
  342. data/docs/getting-started.md +0 -340
  343. data/docs/installation.md +0 -0
  344. data/docs/logging.md +0 -34
  345. data/docs/media-upload.md +0 -25
  346. data/docs/oauth-installed.md +0 -191
  347. data/docs/oauth-server.md +0 -133
  348. data/docs/oauth-web.md +0 -280
  349. data/docs/oauth.md +0 -268
  350. data/docs/pagination.md +0 -29
  351. data/docs/performance.md +0 -25
  352. data/generated/google/apis/bigqueryreservation_v1alpha2/classes.rb +0 -426
  353. data/generated/google/apis/bigqueryreservation_v1alpha2/representations.rb +0 -195
  354. data/generated/google/apis/bigqueryreservation_v1alpha2/service.rb +0 -622
  355. data/google-api-client.gemspec +0 -36
  356. data/lib/google/api_client/auth/installed_app.rb +0 -143
  357. data/lib/google/api_client/auth/key_utils.rb +0 -94
  358. data/lib/google/api_client/auth/storage.rb +0 -104
  359. data/lib/google/api_client/auth/storages/file_store.rb +0 -57
  360. data/lib/google/api_client/auth/storages/redis_store.rb +0 -59
  361. data/lib/google/api_client/client_secrets.rb +0 -176
  362. data/lib/google/apis/core/api_command.rb +0 -209
  363. data/lib/google/apis/core/base_service.rb +0 -447
  364. data/lib/google/apis/core/batch.rb +0 -236
  365. data/lib/google/apis/core/composite_io.rb +0 -97
  366. data/lib/google/apis/core/download.rb +0 -118
  367. data/lib/google/apis/core/hashable.rb +0 -44
  368. data/lib/google/apis/core/http_command.rb +0 -447
  369. data/lib/google/apis/core/json_representation.rb +0 -153
  370. data/lib/google/apis/core/multipart.rb +0 -135
  371. data/lib/google/apis/core/upload.rb +0 -273
  372. data/lib/google/apis/errors.rb +0 -89
  373. data/lib/google/apis/generator/annotator.rb +0 -339
  374. data/lib/google/apis/generator/helpers.rb +0 -76
  375. data/lib/google/apis/generator/model.rb +0 -187
  376. data/lib/google/apis/generator/template.rb +0 -124
  377. data/lib/google/apis/generator/templates/_class.tmpl +0 -43
  378. data/lib/google/apis/generator/templates/_method.tmpl +0 -92
  379. data/lib/google/apis/generator/templates/_representation.tmpl +0 -51
  380. data/lib/google/apis/generator/templates/_representation_stub.tmpl +0 -17
  381. data/lib/google/apis/generator/templates/_representation_type.tmpl +0 -10
  382. data/lib/google/apis/generator/templates/module.rb.tmpl +0 -40
  383. data/lib/google/apis/generator/templates/service.rb.tmpl +0 -61
  384. data/lib/google/apis/generator.rb +0 -71
  385. data/lib/google/apis/options.rb +0 -116
  386. data/lib/google/apis.rb +0 -58
  387. data/rakelib/devsite/devsite_builder.rb +0 -126
  388. data/rakelib/devsite/link_checker.rb +0 -64
  389. data/rakelib/devsite/repo_metadata.rb +0 -56
  390. data/rakelib/metrics.rake +0 -22
  391. data/rakelib/rubocop.rake +0 -10
  392. data/rakelib/spec.rake +0 -11
  393. data/rakelib/yard.rake +0 -11
  394. data/samples/cli/.env +0 -4
  395. data/samples/cli/Gemfile +0 -7
  396. data/samples/cli/README.md +0 -51
  397. data/samples/cli/google-api-samples +0 -32
  398. data/samples/cli/lib/base_cli.rb +0 -95
  399. data/samples/cli/lib/samples/adsense.rb +0 -99
  400. data/samples/cli/lib/samples/analytics.rb +0 -80
  401. data/samples/cli/lib/samples/androidpublisher.rb +0 -47
  402. data/samples/cli/lib/samples/bigquery.rb +0 -101
  403. data/samples/cli/lib/samples/calendar.rb +0 -83
  404. data/samples/cli/lib/samples/drive.rb +0 -82
  405. data/samples/cli/lib/samples/gmail.rb +0 -157
  406. data/samples/cli/lib/samples/pubsub.rb +0 -114
  407. data/samples/cli/lib/samples/sheets.rb +0 -61
  408. data/samples/cli/lib/samples/translate.rb +0 -44
  409. data/samples/cli/lib/samples/vision.rb +0 -69
  410. data/samples/cli/lib/samples/you_tube.rb +0 -47
  411. data/samples/web/Gemfile +0 -9
  412. data/samples/web/README.md +0 -44
  413. data/samples/web/app.rb +0 -120
  414. data/samples/web/views/calendar.erb +0 -34
  415. data/samples/web/views/drive.erb +0 -33
  416. data/samples/web/views/home.erb +0 -34
  417. data/samples/web/views/layout.erb +0 -40
  418. data/synth.py +0 -40
@@ -1,209 +0,0 @@
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 'addressable/uri'
16
- require 'addressable/template'
17
- require 'google/apis/core/http_command'
18
- require 'google/apis/errors'
19
- require 'json'
20
- require 'retriable'
21
-
22
- module Google
23
- module Apis
24
- module Core
25
- # Command for executing most basic API request with JSON requests/responses
26
- class ApiCommand < HttpCommand
27
- JSON_CONTENT_TYPE = 'application/json'
28
- FIELDS_PARAM = 'fields'
29
- ERROR_REASON_MAPPING = {
30
- 'rateLimitExceeded' => Google::Apis::RateLimitError,
31
- 'userRateLimitExceeded' => Google::Apis::RateLimitError,
32
- 'projectNotLinked' => Google::Apis::ProjectNotLinkedError
33
- }
34
-
35
- # JSON serializer for request objects
36
- # @return [Google::Apis::Core::JsonRepresentation]
37
- attr_accessor :request_representation
38
-
39
- # Request body to serialize
40
- # @return [Object]
41
- attr_accessor :request_object
42
-
43
- # JSON serializer for response objects
44
- # @return [Google::Apis::Core::JsonRepresentation]
45
- attr_accessor :response_representation
46
-
47
- # Class to instantiate when de-serializing responses
48
- # @return [Object]
49
- attr_accessor :response_class
50
-
51
- # Serialize the request body
52
- #
53
- # @return [void]
54
- def prepare!
55
- set_api_client_header
56
- set_user_project_header
57
- if options&.api_format_version
58
- header['X-Goog-Api-Format-Version'] = options.api_format_version.to_s
59
- end
60
- query[FIELDS_PARAM] = normalize_fields_param(query[FIELDS_PARAM]) if query.key?(FIELDS_PARAM)
61
- if request_representation && request_object
62
- header['Content-Type'] ||= JSON_CONTENT_TYPE
63
- if options && options.skip_serialization
64
- self.body = request_object
65
- else
66
- self.body = request_representation.new(request_object).to_json(user_options: { skip_undefined: true })
67
- end
68
- end
69
- super
70
- end
71
-
72
- # Deserialize the response body if present
73
- #
74
- # @param [String] content_type
75
- # Content type of body
76
- # @param [String, #read] body
77
- # Response body
78
- # @return [Object]
79
- # Response object
80
- # noinspection RubyUnusedLocalVariable
81
- def decode_response_body(content_type, body)
82
- return super unless response_representation
83
- return super if options && options.skip_deserialization
84
- return super if content_type.nil?
85
- return nil unless content_type.start_with?(JSON_CONTENT_TYPE)
86
- body = "{}" if body.empty?
87
- instance = response_class.new
88
- response_representation.new(instance).from_json(body, unwrap: response_class)
89
- instance
90
- end
91
-
92
- # Check the response and raise error if needed
93
- #
94
- # @param [Fixnum] status
95
- # HTTP status code of response
96
- # @param [Hash] header
97
- # HTTP response headers
98
- # @param [String] body
99
- # HTTP response body
100
- # @param [String] message
101
- # Error message text
102
- # @return [void]
103
- # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
104
- # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
105
- # @raise [Google::Apis::AuthorizationError] Authorization is required
106
- def check_status(status, header = nil, body = nil, message = nil)
107
- case status
108
- when 400, 402...500
109
- reason, message = parse_error(body)
110
- if reason
111
- message = sprintf('%s: %s', reason, message)
112
- raise ERROR_REASON_MAPPING[reason].new(
113
- message,
114
- status_code: status,
115
- header: header,
116
- body: body
117
- ) if ERROR_REASON_MAPPING.key?(reason)
118
- end
119
- super(status, header, body, message)
120
- else
121
- super(status, header, body, message)
122
- end
123
- end
124
-
125
- def allow_form_encoding?
126
- request_representation.nil? && super
127
- end
128
-
129
- private
130
-
131
- def set_api_client_header
132
- old_xgac = header
133
- .find_all { |k, v| k.downcase == 'x-goog-api-client' }
134
- .map { |(a, b)| b }
135
- .join(' ')
136
- .split
137
- .find_all { |s| s !~ %r{^gl-ruby/|^gdcl/} }
138
- .join(' ')
139
- xgac = "gl-ruby/#{RUBY_VERSION} gdcl/#{Google::Apis::VERSION}"
140
- xgac = old_xgac.empty? ? xgac : "#{old_xgac} #{xgac}"
141
- header.delete_if { |k, v| k.downcase == 'x-goog-api-client' }
142
- header['X-Goog-Api-Client'] = xgac
143
- end
144
-
145
- def set_user_project_header
146
- quota_project_id = options.quota_project
147
- if !quota_project_id && options&.authorization.respond_to?(:quota_project_id)
148
- quota_project_id = options.authorization.quota_project_id
149
- end
150
- header['X-Goog-User-Project'] = quota_project_id if quota_project_id
151
- end
152
-
153
- # Attempt to parse a JSON error message
154
- # @param [String] body
155
- # HTTP response body
156
- # @return [Array<(String, String)>]
157
- # Error reason and message
158
- def parse_error(body)
159
- obj = JSON.load(body)
160
- error = obj['error']
161
- if error['details']
162
- return extract_v2_error_details(error)
163
- elsif error['errors']
164
- return extract_v1_error_details(error)
165
- else
166
- fail 'Can not parse error message. No "details" or "errors" detected'
167
- end
168
- rescue
169
- return [nil, nil]
170
- end
171
-
172
- # Extracts details from a v1 error message
173
- # @param [Hash] error
174
- # Parsed JSON
175
- # @return [Array<(String, String)>]
176
- # Error reason and message
177
- def extract_v1_error_details(error)
178
- reason = error['errors'].first['reason']
179
- message = error['message']
180
- return [reason, message]
181
- end
182
-
183
- # Extracts details from a v2error message
184
- # @param [Hash] error
185
- # Parsed JSON
186
- # @return [Array<(String, String)>]
187
- # Error reason and message
188
- def extract_v2_error_details(error)
189
- reason = error['status']
190
- message = error['message']
191
- return [reason, message]
192
- end
193
-
194
- # Convert field names from ruby conventions to original names in JSON
195
- #
196
- # @param [String] fields
197
- # Value of 'fields' param
198
- # @return [String]
199
- # Updated header value
200
- def normalize_fields_param(fields)
201
- # TODO: Generate map of parameter names during code gen. Small possibility that camelization fails
202
- fields.gsub(/:/, '').gsub(/\w+/) do |str|
203
- str.gsub(/(?:^|_)([a-z])/){ Regexp.last_match.begin(0) == 0 ? $1 : $1.upcase }
204
- end
205
- end
206
- end
207
- end
208
- end
209
- end
@@ -1,447 +0,0 @@
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 'addressable/uri'
16
- require 'addressable/template'
17
- require 'google/apis/version'
18
- require 'google/apis/core/api_command'
19
- require 'google/apis/core/batch'
20
- require 'google/apis/core/upload'
21
- require 'google/apis/core/download'
22
- require 'google/apis/options'
23
- require 'googleauth'
24
- require 'httpclient'
25
-
26
- module Google
27
- module Apis
28
- module Core
29
- # Helper class for enumerating over a result set requiring multiple fetches
30
- class PagedResults
31
- include Enumerable
32
-
33
- attr_reader :last_result
34
-
35
- # @param [BaseService] service
36
- # Current service instance
37
- # @param [Fixnum] max
38
- # Maximum number of items to iterate over. Nil if no limit
39
- # @param [Boolean] cache
40
- # True (default) if results should be cached so multiple iterations can be used.
41
- # @param [Symbol] items
42
- # Name of the field in the result containing the items. Defaults to :items
43
- def initialize(service, max: nil, items: :items, cache: true, response_page_token: :next_page_token, &block)
44
- @service = service
45
- @block = block
46
- @max = max
47
- @items_field = items
48
- @response_page_token_field = response_page_token
49
- if cache
50
- @result_cache = Hash.new do |h, k|
51
- h[k] = @block.call(k, @service)
52
- end
53
- @fetch_proc = Proc.new { |token| @result_cache[token] }
54
- else
55
- @fetch_proc = Proc.new { |token| @block.call(token, @service) }
56
- end
57
- end
58
-
59
- # Iterates over result set, fetching additional pages as needed
60
- def each
61
- page_token = nil
62
- item_count = 0
63
- loop do
64
- @last_result = @fetch_proc.call(page_token)
65
- items = @last_result.send(@items_field)
66
- if items.kind_of?(Array)
67
- for item in items
68
- item_count = item_count + 1
69
- break if @max && item_count > @max
70
- yield item
71
- end
72
- elsif items.kind_of?(Hash)
73
- items.each do |key, val|
74
- item_count = item_count + 1
75
- break if @max && item_count > @max
76
- yield key, val
77
- end
78
- elsif items
79
- # yield singular non-nil items (for genomics API)
80
- yield items
81
- end
82
- break if @max && item_count >= @max
83
- next_page_token = @last_result.send(@response_page_token_field)
84
- break if next_page_token.nil? || next_page_token == page_token
85
- page_token = next_page_token
86
- end
87
- end
88
- end
89
-
90
- # Base service for all APIs. Not to be used directly.
91
- #
92
- class BaseService
93
- include Logging
94
-
95
- # Root URL (host/port) for the API
96
- # @return [Addressable::URI]
97
- attr_accessor :root_url
98
-
99
- # Additional path prefix for all API methods
100
- # @return [Addressable::URI]
101
- attr_accessor :base_path
102
-
103
- # Alternate path prefix for media uploads
104
- # @return [Addressable::URI]
105
- attr_accessor :upload_path
106
-
107
- # Alternate path prefix for all batch methods
108
- # @return [Addressable::URI]
109
- attr_accessor :batch_path
110
-
111
- # HTTP client
112
- # @return [HTTPClient]
113
- attr_accessor :client
114
-
115
- # General settings
116
- # @return [Google::Apis::ClientOptions]
117
- attr_accessor :client_options
118
-
119
- # Default options for all requests
120
- # @return [Google::Apis::RequestOptions]
121
- attr_accessor :request_options
122
-
123
- # @param [String,Addressable::URI] root_url
124
- # Root URL for the API
125
- # @param [String,Addressable::URI] base_path
126
- # Additional path prefix for all API methods
127
- # @api private
128
- def initialize(root_url, base_path)
129
- self.root_url = root_url
130
- self.base_path = base_path
131
- self.upload_path = "upload/#{base_path}"
132
- self.batch_path = 'batch'
133
- self.client_options = Google::Apis::ClientOptions.default.dup
134
- self.request_options = Google::Apis::RequestOptions.default.dup
135
- end
136
-
137
- # @!attribute [rw] authorization
138
- # @return [Signet::OAuth2::Client]
139
- # OAuth2 credentials
140
- def authorization=(authorization)
141
- request_options.authorization = authorization
142
- end
143
-
144
- def authorization
145
- request_options.authorization
146
- end
147
-
148
- # TODO: with(options) method
149
-
150
- # Perform a batch request. Calls made within the block are sent in a single network
151
- # request to the server.
152
- #
153
- # @example
154
- # service.batch do |s|
155
- # s.get_item(id1) do |res, err|
156
- # # process response for 1st call
157
- # end
158
- # # ...
159
- # s.get_item(idN) do |res, err|
160
- # # process response for Nth call
161
- # end
162
- # end
163
- #
164
- # @param [Hash, Google::Apis::RequestOptions] options
165
- # Request-specific options
166
- # @yield [self]
167
- # @return [void]
168
- def batch(options = nil)
169
- batch_command = BatchCommand.new(:post, Addressable::URI.parse(root_url + batch_path))
170
- batch_command.options = request_options.merge(options)
171
- apply_command_defaults(batch_command)
172
- begin
173
- start_batch(batch_command)
174
- yield self
175
- ensure
176
- end_batch
177
- end
178
- batch_command.execute(client)
179
- end
180
-
181
- # Perform a batch upload request. Calls made within the block are sent in a single network
182
- # request to the server. Batch uploads are useful for uploading multiple small files. For larger
183
- # files, use single requests which use a resumable upload protocol.
184
- #
185
- # @example
186
- # service.batch do |s|
187
- # s.insert_item(upload_source: 'file1.txt') do |res, err|
188
- # # process response for 1st call
189
- # end
190
- # # ...
191
- # s.insert_item(upload_source: 'fileN.txt') do |res, err|
192
- # # process response for Nth call
193
- # end
194
- # end
195
- #
196
- # @param [Hash, Google::Apis::RequestOptions] options
197
- # Request-specific options
198
- # @yield [self]
199
- # @return [void]
200
- def batch_upload(options = nil)
201
- batch_command = BatchUploadCommand.new(:put, Addressable::URI.parse(root_url + upload_path))
202
- batch_command.options = request_options.merge(options)
203
- apply_command_defaults(batch_command)
204
- begin
205
- start_batch(batch_command)
206
- yield self
207
- ensure
208
- end_batch
209
- end
210
- batch_command.execute(client)
211
- end
212
-
213
- # Get the current HTTP client
214
- # @return [HTTPClient]
215
- def client
216
- @client ||= new_client
217
- end
218
-
219
-
220
- # Simple escape hatch for making API requests directly to a given
221
- # URL. This is not intended to be used as a generic HTTP client
222
- # and should be used only in cases where no service method exists
223
- # (e.g. fetching an export link for a Google Drive file.)
224
- #
225
- # @param [Symbol] method
226
- # HTTP method as symbol (e.g. :get, :post, :put, ...)
227
- # @param [String] url
228
- # URL to call
229
- # @param [Hash<String,String>] params
230
- # Optional hash of query parameters
231
- # @param [#read] body
232
- # Optional body for POST/PUT
233
- # @param [IO, String] download_dest
234
- # IO stream or filename to receive content download
235
- # @param [Google::Apis::RequestOptions] options
236
- # Request-specific options
237
- #
238
- # @yield [result, err] Result & error if block supplied
239
- # @yieldparam result [String] HTTP response body
240
- # @yieldparam err [StandardError] error object if request failed
241
- #
242
- # @return [String] HTTP response body
243
- def http(method, url, params: nil, body: nil, download_dest: nil, options: nil, &block)
244
- if download_dest
245
- command = DownloadCommand.new(method, url, body: body)
246
- else
247
- command = HttpCommand.new(method, url, body: body)
248
- end
249
- command.options = request_options.merge(options)
250
- apply_command_defaults(command)
251
- command.query.merge(Hash(params))
252
- execute_or_queue_command(command, &block)
253
- end
254
-
255
- # Executes a given query with paging, automatically retrieving
256
- # additional pages as necessary. Requires a block that returns the
257
- # result set of a page. The current page token is supplied as an argument
258
- # to the block.
259
- #
260
- # Note: The returned enumerable also contains a `last_result` field
261
- # containing the full result of the last query executed.
262
- #
263
- # @param [Fixnum] max
264
- # Maximum number of items to iterate over. Defaults to nil -- no upper bound.
265
- # @param [Symbol] items
266
- # Name of the field in the result containing the items. Defaults to :items
267
- # @param [Boolean] cache
268
- # True (default) if results should be cached so multiple iterations can be used.
269
- # @return [Enumerble]
270
- # @yield [token, service]
271
- # Current page token & service instance
272
- # @yieldparam [String] token
273
- # Current page token to be used in the query
274
- # @yieldparam [service]
275
- # Current service instance
276
- # @since 0.9.4
277
- #
278
- # @example Retrieve all files,
279
- # file_list = service.fetch_all { |token, s| s.list_files(page_token: token) }
280
- # file_list.each { |f| ... }
281
- def fetch_all(max: nil, items: :items, cache: true, response_page_token: :next_page_token, &block)
282
- fail "fetch_all may not be used inside a batch" if batch?
283
- return PagedResults.new(self, max: max, items: items, cache: cache, response_page_token: response_page_token, &block)
284
- end
285
-
286
- protected
287
-
288
- # Create a new upload command.
289
- #
290
- # @param [symbol] method
291
- # HTTP method for uploading (typically :put or :post)
292
- # @param [String] path
293
- # Additional path to upload endpoint, appended to API base path
294
- # @param [Hash, Google::Apis::RequestOptions] options
295
- # Request-specific options
296
- # @return [Google::Apis::Core::UploadCommand]
297
- def make_upload_command(method, path, options)
298
- template = Addressable::Template.new(root_url + upload_path + path)
299
- if batch?
300
- command = MultipartUploadCommand.new(method, template)
301
- else
302
- command = ResumableUploadCommand.new(method, template)
303
- end
304
- command.options = request_options.merge(options)
305
- apply_command_defaults(command)
306
- command
307
- end
308
-
309
- # Create a new download command.
310
- #
311
- # @param [symbol] method
312
- # HTTP method for uploading (typically :get)
313
- # @param [String] path
314
- # Additional path to download endpoint, appended to API base path
315
- # @param [Hash, Google::Apis::RequestOptions] options
316
- # Request-specific options
317
- # @return [Google::Apis::Core::DownloadCommand]
318
- def make_download_command(method, path, options)
319
- template = Addressable::Template.new(root_url + base_path + path)
320
- command = DownloadCommand.new(method, template)
321
- command.options = request_options.merge(options)
322
- command.query['alt'] = 'media'
323
- apply_command_defaults(command)
324
- command
325
- end
326
-
327
- # Create a new command.
328
- #
329
- # @param [symbol] method
330
- # HTTP method (:get, :post, :delete, etc...)
331
- # @param [String] path
332
- # Additional path, appended to API base path
333
- # @param [Hash, Google::Apis::RequestOptions] options
334
- # Request-specific options
335
- # @return [Google::Apis::Core::DownloadCommand]
336
- def make_simple_command(method, path, options)
337
- full_path =
338
- if path.start_with? "/"
339
- path[1..-1]
340
- else
341
- base_path + path
342
- end
343
- template = Addressable::Template.new(root_url + full_path)
344
- command = ApiCommand.new(method, template)
345
- command.options = request_options.merge(options)
346
- apply_command_defaults(command)
347
- command
348
- end
349
-
350
- # Execute the request. If a batch is in progress, the request is added to the batch instead.
351
- #
352
- # @param [Google::Apis::Core::HttpCommand] command
353
- # Command to execute
354
- # @return [Object] response object if command executed and no callback supplied
355
- # @yield [result, err] Result & error if block supplied
356
- # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
357
- # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
358
- # @raise [Google::Apis::AuthorizationError] Authorization is required
359
- def execute_or_queue_command(command, &callback)
360
- batch_command = current_batch
361
- if batch_command
362
- fail "Can not combine services in a batch" if Thread.current[:google_api_batch_service] != self
363
- batch_command.add(command, &callback)
364
- nil
365
- else
366
- command.execute(client, &callback)
367
- end
368
- end
369
-
370
- # Update commands with service-specific options. To be implemented by subclasses
371
- # @param [Google::Apis::Core::HttpCommand] _command
372
- def apply_command_defaults(_command)
373
- end
374
-
375
- private
376
-
377
- # Get the current batch context
378
- #
379
- # @return [Google:Apis::Core::BatchRequest]
380
- def current_batch
381
- Thread.current[:google_api_batch]
382
- end
383
-
384
- # Check if a batch is in progress
385
- # @return [Boolean]
386
- def batch?
387
- !current_batch.nil?
388
- end
389
-
390
- # Start a new thread-local batch context
391
- # @param [Google::Apis::Core::BatchCommand] cmd
392
- def start_batch(cmd)
393
- fail "Batch already in progress" if batch?
394
- Thread.current[:google_api_batch] = cmd
395
- Thread.current[:google_api_batch_service] = self
396
- end
397
-
398
- # Clear thread-local batch context
399
- def end_batch
400
- Thread.current[:google_api_batch] = nil
401
- Thread.current[:google_api_batch_service] = nil
402
- end
403
-
404
- # Create a new HTTP client
405
- # @return [HTTPClient]
406
- def new_client
407
- client = ::HTTPClient.new
408
-
409
- if client_options.transparent_gzip_decompression
410
- client.transparent_gzip_decompression = client_options.transparent_gzip_decompression
411
- end
412
-
413
- client.proxy = client_options.proxy_url if client_options.proxy_url
414
-
415
- if client_options.open_timeout_sec
416
- client.connect_timeout = client_options.open_timeout_sec
417
- end
418
-
419
- if client_options.read_timeout_sec
420
- client.receive_timeout = client_options.read_timeout_sec
421
- end
422
-
423
- if client_options.send_timeout_sec
424
- client.send_timeout = client_options.send_timeout_sec
425
- end
426
-
427
- client.follow_redirect_count = 5
428
- client.default_header = { 'User-Agent' => user_agent }
429
-
430
- client.debug_dev = logger if client_options.log_http_requests
431
- client
432
- end
433
-
434
-
435
- # Build the user agent header
436
- # @return [String]
437
- def user_agent
438
- sprintf('%s/%s google-api-ruby-client/%s %s (gzip)',
439
- client_options.application_name,
440
- client_options.application_version,
441
- Google::Apis::VERSION,
442
- Google::Apis::OS_VERSION)
443
- end
444
- end
445
- end
446
- end
447
- end