google-api-client 0.49.0 → 0.53.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (669) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +0 -14
  3. data/CHANGELOG.md +314 -0
  4. data/OVERVIEW.md +36 -27
  5. data/generated/google/apis/accessapproval_v1.rb +1 -1
  6. data/generated/google/apis/accessapproval_v1/service.rb +12 -9
  7. data/generated/google/apis/accesscontextmanager_v1.rb +1 -1
  8. data/generated/google/apis/accesscontextmanager_v1/classes.rb +326 -0
  9. data/generated/google/apis/accesscontextmanager_v1/representations.rb +139 -0
  10. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +1 -1
  11. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +50 -6
  12. data/generated/google/apis/adexchangebuyer2_v2beta1/representations.rb +18 -0
  13. data/generated/google/apis/adexchangebuyer2_v2beta1/service.rb +3 -1
  14. data/generated/google/apis/admin_datatransfer_v1.rb +2 -2
  15. data/generated/google/apis/admin_datatransfer_v1/classes.rb +6 -16
  16. data/generated/google/apis/admin_datatransfer_v1/service.rb +3 -3
  17. data/generated/google/apis/admin_directory_v1.rb +2 -2
  18. data/generated/google/apis/admin_directory_v1/classes.rb +453 -321
  19. data/generated/google/apis/admin_directory_v1/representations.rb +15 -15
  20. data/generated/google/apis/admin_directory_v1/service.rb +325 -185
  21. data/generated/google/apis/admin_reports_v1.rb +2 -2
  22. data/generated/google/apis/admin_reports_v1/classes.rb +48 -43
  23. data/generated/google/apis/admin_reports_v1/service.rb +198 -179
  24. data/generated/google/apis/admob_v1.rb +4 -1
  25. data/generated/google/apis/admob_v1/service.rb +4 -0
  26. data/{lib/google/apis/generator/templates/representations.rb.tmpl → generated/google/apis/admob_v1beta.rb} +18 -12
  27. data/generated/google/apis/admob_v1beta/classes.rb +1035 -0
  28. data/generated/google/apis/admob_v1beta/representations.rb +472 -0
  29. data/generated/google/apis/admob_v1beta/service.rb +279 -0
  30. data/generated/google/apis/alertcenter_v1beta1.rb +1 -1
  31. data/generated/google/apis/analytics_v3/service.rb +1 -1
  32. data/generated/google/apis/analyticsadmin_v1alpha.rb +2 -2
  33. data/generated/google/apis/analyticsadmin_v1alpha/classes.rb +10 -2
  34. data/generated/google/apis/analyticsadmin_v1alpha/representations.rb +1 -0
  35. data/generated/google/apis/analyticsadmin_v1alpha/service.rb +41 -21
  36. data/generated/google/apis/analyticsdata_v1alpha.rb +2 -2
  37. data/generated/google/apis/analyticsdata_v1alpha/classes.rb +98 -57
  38. data/generated/google/apis/analyticsdata_v1alpha/representations.rb +2 -16
  39. data/generated/google/apis/analyticsdata_v1alpha/service.rb +7 -36
  40. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  41. data/generated/google/apis/androidenterprise_v1/classes.rb +6 -0
  42. data/generated/google/apis/androidenterprise_v1/representations.rb +1 -0
  43. data/generated/google/apis/androidenterprise_v1/service.rb +4 -1
  44. data/generated/google/apis/androidmanagement_v1.rb +1 -1
  45. data/generated/google/apis/androidmanagement_v1/classes.rb +69 -4
  46. data/generated/google/apis/androidmanagement_v1/representations.rb +19 -0
  47. data/generated/google/apis/androidpublisher_v3.rb +1 -1
  48. data/generated/google/apis/androidpublisher_v3/service.rb +4 -4
  49. data/{lib/google/apis/core/logging.rb → generated/google/apis/apigateway_v1.rb} +14 -10
  50. data/generated/google/apis/apigateway_v1/classes.rb +1116 -0
  51. data/generated/google/apis/apigateway_v1/representations.rb +442 -0
  52. data/generated/google/apis/apigateway_v1/service.rb +1172 -0
  53. data/generated/google/apis/apigateway_v1beta.rb +1 -1
  54. data/generated/google/apis/apigateway_v1beta/classes.rb +22 -17
  55. data/generated/google/apis/apigateway_v1beta/representations.rb +1 -1
  56. data/generated/google/apis/apigee_v1.rb +1 -1
  57. data/generated/google/apis/apigee_v1/classes.rb +216 -40
  58. data/generated/google/apis/apigee_v1/representations.rb +81 -1
  59. data/generated/google/apis/apigee_v1/service.rb +631 -54
  60. data/generated/google/apis/appengine_v1.rb +1 -1
  61. data/generated/google/apis/appengine_v1/classes.rb +7 -0
  62. data/generated/google/apis/appengine_v1/representations.rb +1 -0
  63. data/generated/google/apis/appengine_v1beta.rb +1 -1
  64. data/generated/google/apis/appengine_v1beta/classes.rb +8 -0
  65. data/generated/google/apis/appengine_v1beta/representations.rb +1 -0
  66. data/generated/google/apis/area120tables_v1alpha1.rb +4 -1
  67. data/generated/google/apis/artifactregistry_v1.rb +38 -0
  68. data/generated/google/apis/artifactregistry_v1/classes.rb +242 -0
  69. data/generated/google/apis/artifactregistry_v1/representations.rb +116 -0
  70. data/generated/google/apis/artifactregistry_v1/service.rb +210 -0
  71. data/generated/google/apis/artifactregistry_v1beta1.rb +1 -1
  72. data/generated/google/apis/artifactregistry_v1beta1/classes.rb +0 -126
  73. data/generated/google/apis/artifactregistry_v1beta1/representations.rb +0 -63
  74. data/generated/google/apis/artifactregistry_v1beta1/service.rb +4 -1
  75. data/generated/google/apis/artifactregistry_v1beta2.rb +38 -0
  76. data/generated/google/apis/artifactregistry_v1beta2/classes.rb +917 -0
  77. data/generated/google/apis/artifactregistry_v1beta2/representations.rb +381 -0
  78. data/generated/google/apis/artifactregistry_v1beta2/service.rb +947 -0
  79. data/generated/google/apis/{assuredworkloads_v1beta1.rb → assuredworkloads_v1.rb} +6 -6
  80. data/generated/google/apis/{assuredworkloads_v1beta1 → assuredworkloads_v1}/classes.rb +71 -147
  81. data/generated/google/apis/{assuredworkloads_v1beta1 → assuredworkloads_v1}/representations.rb +29 -87
  82. data/generated/google/apis/{assuredworkloads_v1beta1 → assuredworkloads_v1}/service.rb +47 -51
  83. data/generated/google/apis/billingbudgets_v1.rb +1 -1
  84. data/generated/google/apis/billingbudgets_v1/classes.rb +6 -6
  85. data/generated/google/apis/billingbudgets_v1beta1.rb +1 -1
  86. data/generated/google/apis/billingbudgets_v1beta1/classes.rb +6 -6
  87. data/generated/google/apis/binaryauthorization_v1.rb +1 -1
  88. data/generated/google/apis/binaryauthorization_v1/classes.rb +0 -6
  89. data/generated/google/apis/binaryauthorization_v1/representations.rb +0 -1
  90. data/generated/google/apis/binaryauthorization_v1beta1.rb +1 -1
  91. data/generated/google/apis/binaryauthorization_v1beta1/classes.rb +2 -7
  92. data/generated/google/apis/binaryauthorization_v1beta1/representations.rb +0 -1
  93. data/generated/google/apis/chat_v1.rb +1 -1
  94. data/generated/google/apis/chat_v1/service.rb +308 -0
  95. data/generated/google/apis/cloudasset_v1.rb +1 -1
  96. data/generated/google/apis/cloudasset_v1/classes.rb +757 -9
  97. data/generated/google/apis/cloudasset_v1/representations.rb +309 -1
  98. data/generated/google/apis/cloudasset_v1beta1.rb +1 -1
  99. data/generated/google/apis/cloudasset_v1beta1/classes.rb +326 -6
  100. data/generated/google/apis/cloudasset_v1beta1/representations.rb +139 -1
  101. data/generated/google/apis/cloudasset_v1p1beta1.rb +1 -1
  102. data/generated/google/apis/cloudasset_v1p1beta1/classes.rb +0 -6
  103. data/generated/google/apis/cloudasset_v1p1beta1/representations.rb +0 -1
  104. data/generated/google/apis/cloudasset_v1p4beta1.rb +1 -1
  105. data/generated/google/apis/cloudasset_v1p4beta1/classes.rb +0 -6
  106. data/generated/google/apis/cloudasset_v1p4beta1/representations.rb +0 -1
  107. data/generated/google/apis/cloudasset_v1p5beta1.rb +1 -1
  108. data/generated/google/apis/cloudasset_v1p5beta1/classes.rb +326 -6
  109. data/generated/google/apis/cloudasset_v1p5beta1/representations.rb +139 -1
  110. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  111. data/generated/google/apis/cloudbuild_v1/classes.rb +4 -4
  112. data/generated/google/apis/cloudbuild_v1/service.rb +1 -1
  113. data/generated/google/apis/cloudbuild_v1alpha1.rb +1 -1
  114. data/generated/google/apis/cloudbuild_v1alpha1/classes.rb +3 -3
  115. data/generated/google/apis/cloudbuild_v1alpha2.rb +1 -1
  116. data/generated/google/apis/cloudbuild_v1alpha2/classes.rb +3 -3
  117. data/generated/google/apis/cloudfunctions_v1.rb +1 -1
  118. data/generated/google/apis/cloudfunctions_v1/classes.rb +6 -6
  119. data/generated/google/apis/cloudfunctions_v1/representations.rb +1 -1
  120. data/generated/google/apis/cloudidentity_v1.rb +1 -1
  121. data/generated/google/apis/cloudidentity_v1/classes.rb +240 -0
  122. data/generated/google/apis/cloudidentity_v1/representations.rb +125 -0
  123. data/generated/google/apis/cloudidentity_v1/service.rb +217 -9
  124. data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
  125. data/generated/google/apis/cloudidentity_v1beta1/classes.rb +1 -1
  126. data/generated/google/apis/cloudidentity_v1beta1/service.rb +23 -9
  127. data/generated/google/apis/cloudiot_v1.rb +1 -1
  128. data/generated/google/apis/cloudiot_v1/classes.rb +0 -6
  129. data/generated/google/apis/cloudiot_v1/representations.rb +0 -1
  130. data/generated/google/apis/cloudkms_v1.rb +1 -1
  131. data/generated/google/apis/cloudkms_v1/classes.rb +0 -6
  132. data/generated/google/apis/cloudkms_v1/representations.rb +0 -1
  133. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  134. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +297 -6
  135. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +224 -1
  136. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  137. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +297 -6
  138. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +224 -1
  139. data/generated/google/apis/cloudresourcemanager_v2.rb +1 -1
  140. data/generated/google/apis/cloudresourcemanager_v2/classes.rb +297 -6
  141. data/generated/google/apis/cloudresourcemanager_v2/representations.rb +224 -1
  142. data/generated/google/apis/cloudresourcemanager_v2/service.rb +5 -5
  143. data/generated/google/apis/cloudresourcemanager_v2beta1.rb +1 -1
  144. data/generated/google/apis/cloudresourcemanager_v2beta1/classes.rb +297 -6
  145. data/generated/google/apis/cloudresourcemanager_v2beta1/representations.rb +224 -1
  146. data/generated/google/apis/cloudresourcemanager_v2beta1/service.rb +5 -5
  147. data/generated/google/apis/cloudscheduler_v1beta1.rb +1 -1
  148. data/generated/google/apis/cloudscheduler_v1beta1/classes.rb +19 -0
  149. data/generated/google/apis/cloudscheduler_v1beta1/representations.rb +2 -0
  150. data/generated/google/apis/cloudscheduler_v1beta1/service.rb +12 -2
  151. data/generated/google/apis/cloudsearch_v1.rb +1 -1
  152. data/generated/google/apis/cloudsearch_v1/classes.rb +10 -5
  153. data/generated/google/apis/cloudtasks_v2.rb +1 -1
  154. data/generated/google/apis/cloudtasks_v2/classes.rb +0 -6
  155. data/generated/google/apis/cloudtasks_v2/representations.rb +0 -1
  156. data/generated/google/apis/cloudtasks_v2beta2.rb +1 -1
  157. data/generated/google/apis/cloudtasks_v2beta2/classes.rb +59 -6
  158. data/generated/google/apis/cloudtasks_v2beta2/representations.rb +19 -1
  159. data/generated/google/apis/cloudtasks_v2beta3.rb +1 -1
  160. data/generated/google/apis/cloudtasks_v2beta3/classes.rb +102 -6
  161. data/generated/google/apis/cloudtasks_v2beta3/representations.rb +35 -1
  162. data/generated/google/apis/cloudtasks_v2beta3/service.rb +16 -2
  163. data/generated/google/apis/composer_v1.rb +1 -1
  164. data/generated/google/apis/composer_v1/classes.rb +123 -0
  165. data/generated/google/apis/composer_v1/representations.rb +49 -0
  166. data/generated/google/apis/composer_v1/service.rb +19 -15
  167. data/generated/google/apis/composer_v1beta1.rb +1 -1
  168. data/generated/google/apis/composer_v1beta1/classes.rb +173 -0
  169. data/generated/google/apis/composer_v1beta1/representations.rb +64 -0
  170. data/generated/google/apis/composer_v1beta1/service.rb +39 -1
  171. data/generated/google/apis/compute_alpha.rb +1 -1
  172. data/generated/google/apis/compute_alpha/classes.rb +1071 -341
  173. data/generated/google/apis/compute_alpha/representations.rb +248 -19
  174. data/generated/google/apis/compute_alpha/service.rb +291 -15
  175. data/generated/google/apis/compute_beta.rb +1 -1
  176. data/generated/google/apis/compute_beta/classes.rb +926 -283
  177. data/generated/google/apis/compute_beta/representations.rb +221 -18
  178. data/generated/google/apis/compute_beta/service.rb +24 -15
  179. data/generated/google/apis/compute_v1.rb +1 -1
  180. data/generated/google/apis/compute_v1/classes.rb +461 -173
  181. data/generated/google/apis/compute_v1/representations.rb +58 -0
  182. data/generated/google/apis/compute_v1/service.rb +702 -552
  183. data/generated/google/apis/container_v1.rb +1 -1
  184. data/generated/google/apis/container_v1/classes.rb +55 -16
  185. data/generated/google/apis/container_v1/representations.rb +17 -0
  186. data/generated/google/apis/container_v1/service.rb +4 -2
  187. data/generated/google/apis/container_v1beta1.rb +1 -1
  188. data/generated/google/apis/container_v1beta1/classes.rb +31 -20
  189. data/generated/google/apis/container_v1beta1/representations.rb +2 -0
  190. data/generated/google/apis/container_v1beta1/service.rb +6 -2
  191. data/generated/google/apis/containeranalysis_v1alpha1.rb +1 -1
  192. data/generated/google/apis/containeranalysis_v1alpha1/classes.rb +0 -6
  193. data/generated/google/apis/containeranalysis_v1alpha1/representations.rb +0 -1
  194. data/generated/google/apis/containeranalysis_v1beta1.rb +1 -1
  195. data/generated/google/apis/containeranalysis_v1beta1/classes.rb +2 -7
  196. data/generated/google/apis/containeranalysis_v1beta1/representations.rb +0 -1
  197. data/generated/google/apis/content_v2.rb +1 -1
  198. data/generated/google/apis/content_v2/classes.rb +4 -4
  199. data/generated/google/apis/content_v2/service.rb +3 -1
  200. data/generated/google/apis/content_v2_1.rb +1 -1
  201. data/generated/google/apis/content_v2_1/classes.rb +1081 -25
  202. data/generated/google/apis/content_v2_1/representations.rb +402 -0
  203. data/generated/google/apis/content_v2_1/service.rb +331 -1
  204. data/generated/google/apis/datacatalog_v1beta1.rb +1 -1
  205. data/generated/google/apis/datacatalog_v1beta1/classes.rb +6 -6
  206. data/generated/google/apis/datacatalog_v1beta1/representations.rb +1 -1
  207. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  208. data/generated/google/apis/dataflow_v1b3/classes.rb +17 -1
  209. data/generated/google/apis/dataflow_v1b3/representations.rb +2 -0
  210. data/generated/google/apis/datalabeling_v1beta1.rb +1 -1
  211. data/generated/google/apis/datamigration_v1beta1.rb +1 -1
  212. data/generated/google/apis/datamigration_v1beta1/classes.rb +0 -6
  213. data/generated/google/apis/datamigration_v1beta1/representations.rb +0 -1
  214. data/generated/google/apis/dataproc_v1.rb +1 -1
  215. data/generated/google/apis/dataproc_v1/classes.rb +107 -7
  216. data/generated/google/apis/dataproc_v1/representations.rb +36 -1
  217. data/generated/google/apis/dataproc_v1/service.rb +42 -0
  218. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  219. data/generated/google/apis/dataproc_v1beta2/classes.rb +75 -7
  220. data/generated/google/apis/dataproc_v1beta2/representations.rb +32 -1
  221. data/generated/google/apis/dataproc_v1beta2/service.rb +42 -0
  222. data/generated/google/apis/deploymentmanager_alpha.rb +6 -5
  223. data/generated/google/apis/deploymentmanager_alpha/classes.rb +276 -644
  224. data/generated/google/apis/deploymentmanager_alpha/representations.rb +10 -143
  225. data/generated/google/apis/deploymentmanager_alpha/service.rb +247 -398
  226. data/generated/google/apis/deploymentmanager_v2.rb +2 -2
  227. data/generated/google/apis/deploymentmanager_v2/classes.rb +0 -6
  228. data/generated/google/apis/deploymentmanager_v2/representations.rb +0 -1
  229. data/generated/google/apis/deploymentmanager_v2/service.rb +6 -26
  230. data/generated/google/apis/deploymentmanager_v2beta.rb +2 -2
  231. data/generated/google/apis/deploymentmanager_v2beta/classes.rb +0 -6
  232. data/generated/google/apis/deploymentmanager_v2beta/representations.rb +0 -1
  233. data/generated/google/apis/deploymentmanager_v2beta/service.rb +9 -41
  234. data/generated/google/apis/dialogflow_v2.rb +1 -1
  235. data/generated/google/apis/dialogflow_v2/classes.rb +4084 -692
  236. data/generated/google/apis/dialogflow_v2/representations.rb +1853 -287
  237. data/generated/google/apis/dialogflow_v2/service.rb +12 -4
  238. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  239. data/generated/google/apis/dialogflow_v2beta1/classes.rb +4080 -693
  240. data/generated/google/apis/dialogflow_v2beta1/representations.rb +1862 -296
  241. data/generated/google/apis/dialogflow_v2beta1/service.rb +508 -38
  242. data/generated/google/apis/{bigqueryreservation_v1alpha2.rb → dialogflow_v3.rb} +13 -12
  243. data/generated/google/apis/dialogflow_v3/classes.rb +11752 -0
  244. data/generated/google/apis/dialogflow_v3/representations.rb +5158 -0
  245. data/generated/google/apis/dialogflow_v3/service.rb +3414 -0
  246. data/generated/google/apis/dialogflow_v3beta1.rb +1 -1
  247. data/generated/google/apis/dialogflow_v3beta1/classes.rb +5172 -2242
  248. data/generated/google/apis/dialogflow_v3beta1/representations.rb +1782 -350
  249. data/generated/google/apis/dialogflow_v3beta1/service.rb +591 -2
  250. data/generated/google/apis/displayvideo_v1.rb +1 -1
  251. data/generated/google/apis/displayvideo_v1/classes.rb +102 -8
  252. data/generated/google/apis/displayvideo_v1/representations.rb +45 -0
  253. data/generated/google/apis/displayvideo_v1/service.rb +104 -40
  254. data/generated/google/apis/dlp_v2.rb +1 -1
  255. data/generated/google/apis/dlp_v2/classes.rb +6 -0
  256. data/generated/google/apis/dlp_v2/representations.rb +1 -0
  257. data/generated/google/apis/dlp_v2/service.rb +297 -10
  258. data/generated/google/apis/dns_v1.rb +1 -1
  259. data/generated/google/apis/dns_v1/classes.rb +71 -0
  260. data/generated/google/apis/dns_v1/representations.rb +33 -0
  261. data/generated/google/apis/dns_v1beta2.rb +1 -1
  262. data/generated/google/apis/dns_v1beta2/classes.rb +6 -0
  263. data/generated/google/apis/dns_v1beta2/representations.rb +1 -0
  264. data/generated/google/apis/documentai_v1beta2.rb +1 -1
  265. data/generated/google/apis/documentai_v1beta2/classes.rb +217 -186
  266. data/generated/google/apis/documentai_v1beta2/representations.rb +107 -24
  267. data/generated/google/apis/documentai_v1beta3.rb +1 -1
  268. data/generated/google/apis/documentai_v1beta3/classes.rb +238 -201
  269. data/generated/google/apis/documentai_v1beta3/representations.rb +107 -24
  270. data/generated/google/apis/documentai_v1beta3/service.rb +81 -2
  271. data/generated/google/apis/domains_v1alpha2.rb +1 -1
  272. data/generated/google/apis/domains_v1alpha2/classes.rb +0 -6
  273. data/generated/google/apis/domains_v1alpha2/representations.rb +0 -1
  274. data/generated/google/apis/domains_v1beta1.rb +1 -1
  275. data/generated/google/apis/domains_v1beta1/classes.rb +0 -6
  276. data/generated/google/apis/domains_v1beta1/representations.rb +0 -1
  277. data/generated/google/apis/doubleclickbidmanager_v1_1.rb +1 -1
  278. data/generated/google/apis/drive_v2.rb +1 -1
  279. data/generated/google/apis/drive_v2/classes.rb +6 -3
  280. data/generated/google/apis/drive_v2/service.rb +24 -56
  281. data/generated/google/apis/drive_v3.rb +1 -1
  282. data/generated/google/apis/drive_v3/classes.rb +6 -3
  283. data/generated/google/apis/drive_v3/service.rb +14 -30
  284. data/generated/google/apis/eventarc_v1beta1.rb +1 -1
  285. data/generated/google/apis/eventarc_v1beta1/classes.rb +8 -15
  286. data/generated/google/apis/eventarc_v1beta1/representations.rb +0 -1
  287. data/generated/google/apis/eventarc_v1beta1/service.rb +25 -5
  288. data/generated/google/apis/file_v1.rb +1 -1
  289. data/generated/google/apis/file_v1/classes.rb +61 -0
  290. data/generated/google/apis/file_v1/representations.rb +19 -0
  291. data/generated/google/apis/firebasedatabase_v1beta.rb +44 -0
  292. data/generated/google/apis/firebasedatabase_v1beta/classes.rb +130 -0
  293. data/generated/google/apis/firebasedatabase_v1beta/representations.rb +82 -0
  294. data/generated/google/apis/firebasedatabase_v1beta/service.rb +292 -0
  295. data/generated/google/apis/games_v1.rb +1 -1
  296. data/generated/google/apis/games_v1/classes.rb +67 -14
  297. data/generated/google/apis/games_v1/representations.rb +31 -2
  298. data/generated/google/apis/games_v1/service.rb +33 -0
  299. data/generated/google/apis/gameservices_v1.rb +1 -1
  300. data/generated/google/apis/gameservices_v1/service.rb +14 -14
  301. data/generated/google/apis/gameservices_v1beta.rb +1 -1
  302. data/generated/google/apis/gameservices_v1beta/service.rb +14 -14
  303. data/generated/google/apis/genomics_v2alpha1.rb +1 -1
  304. data/generated/google/apis/genomics_v2alpha1/classes.rb +11 -7
  305. data/generated/google/apis/gmailpostmastertools_v1beta1.rb +1 -1
  306. data/generated/google/apis/gmailpostmastertools_v1beta1/classes.rb +9 -0
  307. data/generated/google/apis/gmailpostmastertools_v1beta1/representations.rb +1 -0
  308. data/generated/google/apis/healthcare_v1.rb +1 -1
  309. data/generated/google/apis/healthcare_v1/classes.rb +18 -17
  310. data/generated/google/apis/healthcare_v1/service.rb +13 -12
  311. data/generated/google/apis/healthcare_v1beta1.rb +1 -1
  312. data/generated/google/apis/healthcare_v1beta1/classes.rb +69 -84
  313. data/generated/google/apis/healthcare_v1beta1/representations.rb +5 -29
  314. data/generated/google/apis/healthcare_v1beta1/service.rb +37 -37
  315. data/generated/google/apis/iam_v1.rb +1 -1
  316. data/generated/google/apis/iam_v1/classes.rb +101 -0
  317. data/generated/google/apis/iam_v1/representations.rb +33 -0
  318. data/generated/google/apis/iam_v1/service.rb +62 -0
  319. data/generated/google/apis/iap_v1.rb +1 -1
  320. data/generated/google/apis/iap_v1/classes.rb +0 -6
  321. data/generated/google/apis/iap_v1/representations.rb +0 -1
  322. data/generated/google/apis/iap_v1beta1.rb +1 -1
  323. data/generated/google/apis/iap_v1beta1/classes.rb +0 -6
  324. data/generated/google/apis/iap_v1beta1/representations.rb +0 -1
  325. data/generated/google/apis/jobs_v3.rb +1 -1
  326. data/generated/google/apis/jobs_v3/classes.rb +9 -807
  327. data/generated/google/apis/jobs_v3/representations.rb +0 -272
  328. data/generated/google/apis/jobs_v3p1beta1.rb +1 -1
  329. data/generated/google/apis/jobs_v3p1beta1/classes.rb +9 -768
  330. data/generated/google/apis/jobs_v3p1beta1/representations.rb +0 -257
  331. data/generated/google/apis/{jobs_v2.rb → jobs_v4.rb} +6 -6
  332. data/generated/google/apis/jobs_v4/classes.rb +2699 -0
  333. data/generated/google/apis/jobs_v4/representations.rb +934 -0
  334. data/generated/google/apis/jobs_v4/service.rb +903 -0
  335. data/generated/google/apis/licensing_v1.rb +1 -1
  336. data/generated/google/apis/licensing_v1/classes.rb +26 -8
  337. data/generated/google/apis/licensing_v1/representations.rb +12 -0
  338. data/generated/google/apis/licensing_v1/service.rb +32 -29
  339. data/generated/google/apis/lifesciences_v2beta.rb +1 -1
  340. data/generated/google/apis/lifesciences_v2beta/classes.rb +25 -0
  341. data/generated/google/apis/lifesciences_v2beta/representations.rb +15 -0
  342. data/generated/google/apis/localservices_v1.rb +4 -1
  343. data/generated/google/apis/logging_v2.rb +1 -1
  344. data/generated/google/apis/logging_v2/classes.rb +9 -6
  345. data/generated/google/apis/logging_v2/service.rb +20 -20
  346. data/generated/google/apis/managedidentities_v1.rb +1 -1
  347. data/generated/google/apis/managedidentities_v1/classes.rb +361 -15
  348. data/generated/google/apis/managedidentities_v1/representations.rb +149 -1
  349. data/generated/google/apis/managedidentities_v1alpha1.rb +1 -1
  350. data/generated/google/apis/managedidentities_v1alpha1/classes.rb +363 -16
  351. data/generated/google/apis/managedidentities_v1alpha1/representations.rb +149 -1
  352. data/generated/google/apis/managedidentities_v1beta1.rb +1 -1
  353. data/generated/google/apis/managedidentities_v1beta1/classes.rb +349 -11
  354. data/generated/google/apis/managedidentities_v1beta1/representations.rb +149 -1
  355. data/generated/google/apis/manufacturers_v1.rb +1 -1
  356. data/generated/google/apis/manufacturers_v1/classes.rb +2 -2
  357. data/generated/google/apis/memcache_v1beta2.rb +1 -1
  358. data/generated/google/apis/memcache_v1beta2/classes.rb +345 -4
  359. data/generated/google/apis/memcache_v1beta2/representations.rb +149 -0
  360. data/generated/google/apis/metastore_v1beta.rb +35 -0
  361. data/generated/google/apis/metastore_v1beta/classes.rb +1151 -0
  362. data/generated/google/apis/metastore_v1beta/representations.rb +479 -0
  363. data/generated/google/apis/metastore_v1beta/service.rb +800 -0
  364. data/generated/google/apis/ml_v1.rb +1 -1
  365. data/generated/google/apis/ml_v1/classes.rb +51 -24
  366. data/generated/google/apis/ml_v1/representations.rb +16 -1
  367. data/generated/google/apis/monitoring_v3.rb +1 -1
  368. data/generated/google/apis/monitoring_v3/classes.rb +15 -10
  369. data/generated/google/apis/monitoring_v3/service.rb +5 -4
  370. data/generated/google/apis/notebooks_v1.rb +34 -0
  371. data/generated/google/apis/notebooks_v1/classes.rb +1468 -0
  372. data/generated/google/apis/notebooks_v1/representations.rb +592 -0
  373. data/generated/google/apis/notebooks_v1/service.rb +1076 -0
  374. data/generated/google/apis/osconfig_v1.rb +1 -1
  375. data/generated/google/apis/osconfig_v1/classes.rb +419 -0
  376. data/generated/google/apis/osconfig_v1/representations.rb +168 -0
  377. data/generated/google/apis/osconfig_v1beta.rb +1 -1
  378. data/generated/google/apis/osconfig_v1beta/classes.rb +419 -0
  379. data/generated/google/apis/osconfig_v1beta/representations.rb +168 -0
  380. data/generated/google/apis/pagespeedonline_v5.rb +1 -1
  381. data/generated/google/apis/pagespeedonline_v5/service.rb +3 -3
  382. data/generated/google/apis/people_v1.rb +1 -1
  383. data/generated/google/apis/people_v1/classes.rb +6 -2
  384. data/generated/google/apis/people_v1/service.rb +9 -6
  385. data/generated/google/apis/policytroubleshooter_v1.rb +1 -1
  386. data/generated/google/apis/policytroubleshooter_v1/classes.rb +0 -6
  387. data/generated/google/apis/policytroubleshooter_v1/representations.rb +0 -1
  388. data/generated/google/apis/policytroubleshooter_v1beta.rb +1 -1
  389. data/generated/google/apis/policytroubleshooter_v1beta/classes.rb +0 -6
  390. data/generated/google/apis/policytroubleshooter_v1beta/representations.rb +0 -1
  391. data/generated/google/apis/privateca_v1beta1.rb +1 -1
  392. data/generated/google/apis/privateca_v1beta1/classes.rb +2 -7
  393. data/generated/google/apis/privateca_v1beta1/representations.rb +0 -1
  394. data/generated/google/apis/privateca_v1beta1/service.rb +0 -52
  395. data/generated/google/apis/prod_tt_sasportal_v1alpha1.rb +1 -1
  396. data/generated/google/apis/pubsub_v1.rb +1 -1
  397. data/generated/google/apis/pubsub_v1/classes.rb +0 -6
  398. data/generated/google/apis/pubsub_v1/representations.rb +0 -1
  399. data/generated/google/apis/pubsub_v1beta2.rb +1 -1
  400. data/generated/google/apis/pubsub_v1beta2/classes.rb +0 -6
  401. data/generated/google/apis/pubsub_v1beta2/representations.rb +0 -1
  402. data/generated/google/apis/realtimebidding_v1.rb +1 -1
  403. data/generated/google/apis/realtimebidding_v1/classes.rb +545 -0
  404. data/generated/google/apis/realtimebidding_v1/representations.rb +232 -0
  405. data/generated/google/apis/realtimebidding_v1/service.rb +450 -0
  406. data/generated/google/apis/recommendationengine_v1beta1.rb +1 -1
  407. data/generated/google/apis/recommendationengine_v1beta1/service.rb +2 -1
  408. data/generated/google/apis/recommender_v1.rb +1 -1
  409. data/generated/google/apis/recommender_v1/classes.rb +2 -2
  410. data/generated/google/apis/recommender_v1beta1.rb +1 -1
  411. data/generated/google/apis/recommender_v1beta1/classes.rb +2 -2
  412. data/generated/google/apis/recommender_v1beta1/service.rb +317 -0
  413. data/generated/google/apis/redis_v1.rb +1 -1
  414. data/generated/google/apis/redis_v1/classes.rb +58 -0
  415. data/generated/google/apis/redis_v1/representations.rb +20 -0
  416. data/generated/google/apis/redis_v1beta1.rb +1 -1
  417. data/generated/google/apis/redis_v1beta1/classes.rb +58 -0
  418. data/generated/google/apis/redis_v1beta1/representations.rb +20 -0
  419. data/generated/google/apis/remotebuildexecution_v1.rb +1 -1
  420. data/generated/google/apis/remotebuildexecution_v1/classes.rb +5 -30
  421. data/generated/google/apis/remotebuildexecution_v1/representations.rb +1 -16
  422. data/generated/google/apis/remotebuildexecution_v1alpha.rb +1 -1
  423. data/generated/google/apis/remotebuildexecution_v1alpha/classes.rb +5 -30
  424. data/generated/google/apis/remotebuildexecution_v1alpha/representations.rb +1 -16
  425. data/generated/google/apis/remotebuildexecution_v2.rb +1 -1
  426. data/generated/google/apis/remotebuildexecution_v2/classes.rb +5 -30
  427. data/generated/google/apis/remotebuildexecution_v2/representations.rb +1 -16
  428. data/generated/google/apis/reseller_v1.rb +4 -4
  429. data/generated/google/apis/reseller_v1/service.rb +5 -5
  430. data/generated/google/apis/run_v1.rb +1 -1
  431. data/generated/google/apis/run_v1/classes.rb +2 -7
  432. data/generated/google/apis/run_v1/representations.rb +0 -1
  433. data/generated/google/apis/run_v1alpha1.rb +1 -1
  434. data/generated/google/apis/run_v1alpha1/classes.rb +2 -7
  435. data/generated/google/apis/run_v1alpha1/representations.rb +0 -1
  436. data/generated/google/apis/runtimeconfig_v1beta1.rb +1 -1
  437. data/generated/google/apis/runtimeconfig_v1beta1/classes.rb +0 -6
  438. data/generated/google/apis/runtimeconfig_v1beta1/representations.rb +0 -1
  439. data/generated/google/apis/safebrowsing_v4.rb +1 -1
  440. data/generated/google/apis/safebrowsing_v4/classes.rb +277 -277
  441. data/generated/google/apis/safebrowsing_v4/representations.rb +128 -128
  442. data/generated/google/apis/safebrowsing_v4/service.rb +44 -44
  443. data/generated/google/apis/searchconsole_v1.rb +1 -1
  444. data/generated/google/apis/searchconsole_v1/classes.rb +7 -0
  445. data/generated/google/apis/searchconsole_v1/representations.rb +1 -0
  446. data/generated/google/apis/secretmanager_v1.rb +1 -1
  447. data/generated/google/apis/secretmanager_v1/classes.rb +0 -6
  448. data/generated/google/apis/secretmanager_v1/representations.rb +0 -1
  449. data/generated/google/apis/secretmanager_v1beta1.rb +1 -1
  450. data/generated/google/apis/secretmanager_v1beta1/classes.rb +0 -6
  451. data/generated/google/apis/secretmanager_v1beta1/representations.rb +0 -1
  452. data/generated/google/apis/securitycenter_v1.rb +1 -1
  453. data/generated/google/apis/securitycenter_v1/classes.rb +109 -16
  454. data/generated/google/apis/securitycenter_v1/representations.rb +38 -1
  455. data/generated/google/apis/securitycenter_v1/service.rb +1464 -430
  456. data/generated/google/apis/securitycenter_v1beta1.rb +1 -1
  457. data/generated/google/apis/securitycenter_v1beta1/classes.rb +75 -6
  458. data/generated/google/apis/securitycenter_v1beta1/representations.rb +33 -1
  459. data/generated/google/apis/securitycenter_v1beta2.rb +1 -1
  460. data/generated/google/apis/securitycenter_v1beta2/classes.rb +75 -0
  461. data/generated/google/apis/securitycenter_v1beta2/representations.rb +33 -0
  462. data/generated/google/apis/serviceconsumermanagement_v1beta1.rb +1 -1
  463. data/generated/google/apis/serviceconsumermanagement_v1beta1/classes.rb +11 -10
  464. data/generated/google/apis/servicecontrol_v1.rb +3 -3
  465. data/generated/google/apis/servicecontrol_v1/service.rb +2 -2
  466. data/generated/google/apis/servicecontrol_v2.rb +3 -3
  467. data/generated/google/apis/servicecontrol_v2/service.rb +2 -2
  468. data/generated/google/apis/servicedirectory_v1.rb +35 -0
  469. data/generated/google/apis/servicedirectory_v1/classes.rb +721 -0
  470. data/generated/google/apis/servicedirectory_v1/representations.rb +304 -0
  471. data/generated/google/apis/servicedirectory_v1/service.rb +957 -0
  472. data/generated/google/apis/servicedirectory_v1beta1.rb +1 -1
  473. data/generated/google/apis/servicedirectory_v1beta1/classes.rb +26 -12
  474. data/generated/google/apis/servicedirectory_v1beta1/representations.rb +0 -1
  475. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  476. data/generated/google/apis/servicemanagement_v1/classes.rb +12 -17
  477. data/generated/google/apis/servicemanagement_v1/representations.rb +0 -1
  478. data/generated/google/apis/servicenetworking_v1.rb +1 -1
  479. data/generated/google/apis/servicenetworking_v1/classes.rb +57 -4
  480. data/generated/google/apis/servicenetworking_v1/representations.rb +19 -1
  481. data/generated/google/apis/servicenetworking_v1/service.rb +38 -0
  482. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  483. data/generated/google/apis/servicenetworking_v1beta/classes.rb +37 -4
  484. data/generated/google/apis/servicenetworking_v1beta/representations.rb +17 -1
  485. data/generated/google/apis/serviceusage_v1.rb +1 -1
  486. data/generated/google/apis/serviceusage_v1/classes.rb +11 -10
  487. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  488. data/generated/google/apis/serviceusage_v1beta1/classes.rb +11 -10
  489. data/generated/google/apis/sheets_v4.rb +1 -1
  490. data/generated/google/apis/sheets_v4/classes.rb +309 -0
  491. data/generated/google/apis/sheets_v4/representations.rb +99 -0
  492. data/generated/google/apis/slides_v1.rb +1 -1
  493. data/generated/google/apis/slides_v1/classes.rb +9 -3
  494. data/generated/google/apis/spanner_v1.rb +1 -1
  495. data/generated/google/apis/spanner_v1/classes.rb +9 -6
  496. data/generated/google/apis/spanner_v1/representations.rb +1 -1
  497. data/generated/google/apis/speech_v1p1beta1.rb +1 -1
  498. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  499. data/generated/google/apis/sqladmin_v1beta4/classes.rb +97 -14
  500. data/generated/google/apis/sqladmin_v1beta4/representations.rb +34 -0
  501. data/generated/google/apis/sqladmin_v1beta4/service.rb +5 -2
  502. data/generated/google/apis/storage_v1.rb +1 -1
  503. data/generated/google/apis/storage_v1/classes.rb +7 -0
  504. data/generated/google/apis/storage_v1/representations.rb +1 -0
  505. data/generated/google/apis/storagetransfer_v1.rb +1 -1
  506. data/generated/google/apis/storagetransfer_v1/classes.rb +54 -16
  507. data/generated/google/apis/storagetransfer_v1/representations.rb +6 -0
  508. data/generated/google/apis/storagetransfer_v1/service.rb +3 -3
  509. data/generated/google/apis/testing_v1.rb +1 -1
  510. data/generated/google/apis/testing_v1/classes.rb +1 -1
  511. data/generated/google/apis/trafficdirector_v2.rb +2 -2
  512. data/generated/google/apis/trafficdirector_v2/service.rb +1 -1
  513. data/generated/google/apis/transcoder_v1beta1.rb +34 -0
  514. data/generated/google/apis/transcoder_v1beta1/classes.rb +1694 -0
  515. data/generated/google/apis/transcoder_v1beta1/representations.rb +757 -0
  516. data/generated/google/apis/transcoder_v1beta1/service.rb +329 -0
  517. data/generated/google/apis/translate_v3.rb +1 -1
  518. data/generated/google/apis/translate_v3/classes.rb +1 -1
  519. data/generated/google/apis/translate_v3beta1.rb +1 -1
  520. data/generated/google/apis/translate_v3beta1/classes.rb +1 -1
  521. data/generated/google/apis/vault_v1.rb +1 -1
  522. data/generated/google/apis/vault_v1/classes.rb +76 -0
  523. data/generated/google/apis/vault_v1/representations.rb +45 -0
  524. data/generated/google/apis/vectortile_v1.rb +1 -1
  525. data/generated/google/apis/vectortile_v1/classes.rb +59 -4
  526. data/generated/google/apis/vectortile_v1/representations.rb +19 -0
  527. data/generated/google/apis/videointelligence_v1.rb +1 -1
  528. data/generated/google/apis/videointelligence_v1/classes.rb +65 -0
  529. data/generated/google/apis/videointelligence_v1/representations.rb +15 -0
  530. data/generated/google/apis/videointelligence_v1beta2.rb +1 -1
  531. data/generated/google/apis/videointelligence_v1beta2/classes.rb +65 -0
  532. data/generated/google/apis/videointelligence_v1beta2/representations.rb +15 -0
  533. data/generated/google/apis/videointelligence_v1p1beta1.rb +1 -1
  534. data/generated/google/apis/videointelligence_v1p1beta1/classes.rb +65 -0
  535. data/generated/google/apis/videointelligence_v1p1beta1/representations.rb +15 -0
  536. data/generated/google/apis/videointelligence_v1p2beta1.rb +1 -1
  537. data/generated/google/apis/videointelligence_v1p2beta1/classes.rb +65 -0
  538. data/generated/google/apis/videointelligence_v1p2beta1/representations.rb +15 -0
  539. data/generated/google/apis/videointelligence_v1p3beta1.rb +1 -1
  540. data/generated/google/apis/videointelligence_v1p3beta1/classes.rb +65 -0
  541. data/generated/google/apis/videointelligence_v1p3beta1/representations.rb +15 -0
  542. data/generated/google/apis/webmasters_v3/classes.rb +8 -0
  543. data/generated/google/apis/webmasters_v3/representations.rb +1 -0
  544. data/generated/google/apis/workflows_v1beta.rb +1 -1
  545. data/generated/google/apis/workflows_v1beta/classes.rb +4 -4
  546. data/generated/google/apis/youtube_v3.rb +1 -1
  547. data/generated/google/apis/youtube_v3/classes.rb +20 -145
  548. data/generated/google/apis/youtube_v3/representations.rb +0 -57
  549. data/generated/google/apis/youtube_v3/service.rb +6 -49
  550. data/lib/google/apis/version.rb +1 -23
  551. metadata +67 -275
  552. data/.github/CONTRIBUTING.md +0 -31
  553. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -36
  554. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -21
  555. data/.github/ISSUE_TEMPLATE/support_request.md +0 -7
  556. data/.github/workflows/autoapprove.yml +0 -49
  557. data/.github/workflows/release-please.yml +0 -77
  558. data/.gitignore +0 -23
  559. data/.kokoro/build.bat +0 -11
  560. data/.kokoro/build.sh +0 -4
  561. data/.kokoro/continuous/common.cfg +0 -25
  562. data/.kokoro/continuous/linux.cfg +0 -25
  563. data/.kokoro/continuous/osx.cfg +0 -8
  564. data/.kokoro/continuous/post.cfg +0 -30
  565. data/.kokoro/continuous/windows.cfg +0 -29
  566. data/.kokoro/osx.sh +0 -4
  567. data/.kokoro/presubmit/common.cfg +0 -24
  568. data/.kokoro/presubmit/linux.cfg +0 -24
  569. data/.kokoro/presubmit/osx.cfg +0 -8
  570. data/.kokoro/presubmit/windows.cfg +0 -29
  571. data/.kokoro/release.cfg +0 -94
  572. data/.kokoro/trampoline.bat +0 -10
  573. data/.kokoro/trampoline.sh +0 -4
  574. data/.repo-metadata.json +0 -5
  575. data/.rspec +0 -2
  576. data/.rubocop.yml +0 -12
  577. data/.rubocop_todo.yml +0 -63
  578. data/CODE_OF_CONDUCT.md +0 -43
  579. data/Gemfile +0 -55
  580. data/MIGRATING.md +0 -215
  581. data/README.md +0 -402
  582. data/Rakefile +0 -131
  583. data/api_list_config.yaml +0 -9
  584. data/api_names.yaml +0 -1082
  585. data/bin/generate-api +0 -194
  586. data/docs/api-keys.md +0 -20
  587. data/docs/auth.md +0 -53
  588. data/docs/client-secrets.md +0 -69
  589. data/docs/getting-started.md +0 -340
  590. data/docs/installation.md +0 -0
  591. data/docs/logging.md +0 -34
  592. data/docs/media-upload.md +0 -25
  593. data/docs/oauth-installed.md +0 -191
  594. data/docs/oauth-server.md +0 -133
  595. data/docs/oauth-web.md +0 -280
  596. data/docs/oauth.md +0 -268
  597. data/docs/pagination.md +0 -29
  598. data/docs/performance.md +0 -25
  599. data/generated/google/apis/bigqueryreservation_v1alpha2/classes.rb +0 -426
  600. data/generated/google/apis/bigqueryreservation_v1alpha2/representations.rb +0 -195
  601. data/generated/google/apis/bigqueryreservation_v1alpha2/service.rb +0 -622
  602. data/generated/google/apis/jobs_v2/classes.rb +0 -4012
  603. data/generated/google/apis/jobs_v2/representations.rb +0 -1396
  604. data/generated/google/apis/jobs_v2/service.rb +0 -693
  605. data/google-api-client.gemspec +0 -36
  606. data/lib/google/api_client/auth/installed_app.rb +0 -143
  607. data/lib/google/api_client/auth/key_utils.rb +0 -94
  608. data/lib/google/api_client/auth/storage.rb +0 -104
  609. data/lib/google/api_client/auth/storages/file_store.rb +0 -57
  610. data/lib/google/api_client/auth/storages/redis_store.rb +0 -59
  611. data/lib/google/api_client/client_secrets.rb +0 -176
  612. data/lib/google/apis.rb +0 -58
  613. data/lib/google/apis/core/api_command.rb +0 -209
  614. data/lib/google/apis/core/base_service.rb +0 -447
  615. data/lib/google/apis/core/batch.rb +0 -236
  616. data/lib/google/apis/core/composite_io.rb +0 -97
  617. data/lib/google/apis/core/download.rb +0 -118
  618. data/lib/google/apis/core/hashable.rb +0 -44
  619. data/lib/google/apis/core/http_command.rb +0 -447
  620. data/lib/google/apis/core/json_representation.rb +0 -153
  621. data/lib/google/apis/core/multipart.rb +0 -135
  622. data/lib/google/apis/core/upload.rb +0 -273
  623. data/lib/google/apis/errors.rb +0 -89
  624. data/lib/google/apis/generator.rb +0 -71
  625. data/lib/google/apis/generator/annotator.rb +0 -339
  626. data/lib/google/apis/generator/helpers.rb +0 -76
  627. data/lib/google/apis/generator/model.rb +0 -187
  628. data/lib/google/apis/generator/template.rb +0 -124
  629. data/lib/google/apis/generator/templates/_class.tmpl +0 -43
  630. data/lib/google/apis/generator/templates/_method.tmpl +0 -92
  631. data/lib/google/apis/generator/templates/_representation.tmpl +0 -51
  632. data/lib/google/apis/generator/templates/_representation_stub.tmpl +0 -17
  633. data/lib/google/apis/generator/templates/_representation_type.tmpl +0 -10
  634. data/lib/google/apis/generator/templates/classes.rb.tmpl +0 -29
  635. data/lib/google/apis/generator/templates/module.rb.tmpl +0 -40
  636. data/lib/google/apis/generator/templates/service.rb.tmpl +0 -61
  637. data/lib/google/apis/options.rb +0 -116
  638. data/rakelib/devsite/devsite_builder.rb +0 -126
  639. data/rakelib/devsite/link_checker.rb +0 -64
  640. data/rakelib/devsite/repo_metadata.rb +0 -56
  641. data/rakelib/metrics.rake +0 -22
  642. data/rakelib/rubocop.rake +0 -10
  643. data/rakelib/spec.rake +0 -11
  644. data/rakelib/yard.rake +0 -11
  645. data/samples/cli/.env +0 -4
  646. data/samples/cli/Gemfile +0 -7
  647. data/samples/cli/README.md +0 -51
  648. data/samples/cli/google-api-samples +0 -32
  649. data/samples/cli/lib/base_cli.rb +0 -95
  650. data/samples/cli/lib/samples/adsense.rb +0 -99
  651. data/samples/cli/lib/samples/analytics.rb +0 -80
  652. data/samples/cli/lib/samples/androidpublisher.rb +0 -47
  653. data/samples/cli/lib/samples/bigquery.rb +0 -101
  654. data/samples/cli/lib/samples/calendar.rb +0 -83
  655. data/samples/cli/lib/samples/drive.rb +0 -82
  656. data/samples/cli/lib/samples/gmail.rb +0 -157
  657. data/samples/cli/lib/samples/pubsub.rb +0 -114
  658. data/samples/cli/lib/samples/sheets.rb +0 -61
  659. data/samples/cli/lib/samples/translate.rb +0 -44
  660. data/samples/cli/lib/samples/vision.rb +0 -69
  661. data/samples/cli/lib/samples/you_tube.rb +0 -47
  662. data/samples/web/Gemfile +0 -9
  663. data/samples/web/README.md +0 -44
  664. data/samples/web/app.rb +0 -120
  665. data/samples/web/views/calendar.erb +0 -34
  666. data/samples/web/views/drive.erb +0 -33
  667. data/samples/web/views/home.erb +0 -34
  668. data/samples/web/views/layout.erb +0 -40
  669. data/synth.py +0 -40
@@ -1,176 +0,0 @@
1
- # Copyright 2010 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 'json'
16
- require 'googleauth'
17
-
18
-
19
- module Google
20
- class APIClient
21
- ##
22
- # Manages the persistence of client configuration data and secrets. Format
23
- # inspired by the Google API Python client.
24
- #
25
- # @see https://developers.google.com/api-client-library/python/guide/aaa_client_secrets
26
- # @deprecated Use google-auth-library-ruby instead
27
- # @example
28
- # {
29
- # "web": {
30
- # "client_id": "asdfjasdljfasdkjf",
31
- # "client_secret": "1912308409123890",
32
- # "redirect_uris": ["https://www.example.com/oauth2callback"],
33
- # "auth_uri": "https://accounts.google.com/o/oauth2/auth",
34
- # "token_uri": "https://accounts.google.com/o/oauth2/token"
35
- # }
36
- # }
37
- #
38
- # @example
39
- # {
40
- # "installed": {
41
- # "client_id": "837647042410-75ifg...usercontent.com",
42
- # "client_secret":"asdlkfjaskd",
43
- # "redirect_uris": ["http://localhost", "urn:ietf:oauth:2.0:oob"],
44
- # "auth_uri": "https://accounts.google.com/o/oauth2/auth",
45
- # "token_uri": "https://accounts.google.com/o/oauth2/token"
46
- # }
47
- # }
48
- class ClientSecrets
49
- ##
50
- # Reads client configuration from a file
51
- #
52
- # @param [String] filename
53
- # Path to file to load
54
- #
55
- # @return [Google::APIClient::ClientSecrets]
56
- # OAuth client settings
57
- def self.load(filename=nil)
58
- if filename && File.directory?(filename)
59
- search_path = File.expand_path(filename)
60
- filename = nil
61
- end
62
- while filename == nil
63
- search_path ||= File.expand_path('.')
64
- if File.exists?(File.join(search_path, 'client_secrets.json'))
65
- filename = File.join(search_path, 'client_secrets.json')
66
- elsif search_path == File.expand_path('..', search_path)
67
- raise ArgumentError,
68
- 'No client_secrets.json filename supplied ' +
69
- 'and/or could not be found in search path.'
70
- else
71
- search_path = File.expand_path(File.join(search_path, '..'))
72
- end
73
- end
74
- data = File.open(filename, 'r') { |file| JSON.load(file.read) }
75
- return self.new(data)
76
- end
77
-
78
- ##
79
- # Initialize OAuth client settings.
80
- #
81
- # @param [Hash] options
82
- # Parsed client secrets files
83
- def initialize(options={})
84
- # Client auth configuration
85
- @flow = options[:flow] || options.keys.first.to_s || 'web'
86
- fdata = options[@flow.to_sym] || options[@flow]
87
- @client_id = fdata[:client_id] || fdata["client_id"]
88
- @client_secret = fdata[:client_secret] || fdata["client_secret"]
89
- @redirect_uris = fdata[:redirect_uris] || fdata["redirect_uris"]
90
- @redirect_uris ||= [fdata[:redirect_uri] || fdata["redirect_uri"]].compact
91
- @javascript_origins = (
92
- fdata[:javascript_origins] ||
93
- fdata["javascript_origins"]
94
- )
95
- @javascript_origins ||= [fdata[:javascript_origin] || fdata["javascript_origin"]].compact
96
- @authorization_uri = fdata[:auth_uri] || fdata["auth_uri"]
97
- @authorization_uri ||= fdata[:authorization_uri]
98
- @token_credential_uri = fdata[:token_uri] || fdata["token_uri"]
99
- @token_credential_uri ||= fdata[:token_credential_uri]
100
-
101
- # Associated token info
102
- @access_token = fdata[:access_token] || fdata["access_token"]
103
- @refresh_token = fdata[:refresh_token] || fdata["refresh_token"]
104
- @id_token = fdata[:id_token] || fdata["id_token"]
105
- @expires_in = fdata[:expires_in] || fdata["expires_in"]
106
- @expires_at = fdata[:expires_at] || fdata["expires_at"]
107
- @issued_at = fdata[:issued_at] || fdata["issued_at"]
108
- end
109
-
110
- attr_reader(
111
- :flow, :client_id, :client_secret, :redirect_uris, :javascript_origins,
112
- :authorization_uri, :token_credential_uri, :access_token,
113
- :refresh_token, :id_token, :expires_in, :expires_at, :issued_at
114
- )
115
-
116
- ##
117
- # Serialize back to the original JSON form
118
- #
119
- # @return [String]
120
- # JSON
121
- def to_json
122
- return Json.dump(to_hash)
123
- end
124
-
125
- def to_hash
126
- {
127
- self.flow => ({
128
- 'client_id' => self.client_id,
129
- 'client_secret' => self.client_secret,
130
- 'redirect_uris' => self.redirect_uris,
131
- 'javascript_origins' => self.javascript_origins,
132
- 'auth_uri' => self.authorization_uri,
133
- 'token_uri' => self.token_credential_uri,
134
- 'access_token' => self.access_token,
135
- 'refresh_token' => self.refresh_token,
136
- 'id_token' => self.id_token,
137
- 'expires_in' => self.expires_in,
138
- 'expires_at' => self.expires_at,
139
- 'issued_at' => self.issued_at
140
- }).inject({}) do |accu, (k, v)|
141
- # Prunes empty values from JSON output.
142
- unless v == nil || (v.respond_to?(:empty?) && v.empty?)
143
- accu[k] = v
144
- end
145
- accu
146
- end
147
- }
148
- end
149
-
150
- def to_authorization
151
- # NOTE: Do not rely on this default value, as it may change
152
- new_authorization = Signet::OAuth2::Client.new
153
- new_authorization.client_id = self.client_id
154
- new_authorization.client_secret = self.client_secret
155
- new_authorization.authorization_uri = (
156
- self.authorization_uri ||
157
- 'https://accounts.google.com/o/oauth2/auth'
158
- )
159
- new_authorization.token_credential_uri = (
160
- self.token_credential_uri ||
161
- 'https://accounts.google.com/o/oauth2/token'
162
- )
163
- new_authorization.redirect_uri = self.redirect_uris.first
164
-
165
- # These are supported, but unlikely.
166
- new_authorization.access_token = self.access_token
167
- new_authorization.refresh_token = self.refresh_token
168
- new_authorization.id_token = self.id_token
169
- new_authorization.expires_in = self.expires_in
170
- new_authorization.issued_at = self.issued_at if self.issued_at
171
- new_authorization.expires_at = self.expires_at if self.expires_at
172
- return new_authorization
173
- end
174
- end
175
- end
176
- end
@@ -1,58 +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 'google/apis/version'
16
- require 'logger'
17
-
18
- module Google
19
- module Apis
20
- ROOT = File.expand_path('..', File.dirname(__dir__))
21
-
22
- # @!attribute [rw] logger
23
- # @return [Logger] The logger.
24
- def self.logger
25
- @logger ||= rails_logger || default_logger
26
- end
27
-
28
- class << self
29
- attr_writer :logger
30
- end
31
-
32
- private
33
-
34
- # Create and configure a logger
35
- # @return [Logger]
36
- def self.default_logger
37
- logger = Logger.new($stdout)
38
- logger.level = Logger::WARN
39
- logger
40
- end
41
-
42
- # Check to see if client is being used in a Rails environment and get the logger if present.
43
- # Setting the ENV variable 'GOOGLE_API_USE_RAILS_LOGGER' to false will force the client
44
- # to use its own logger.
45
- #
46
- # @return [Logger]
47
- def self.rails_logger
48
- if 'true' == ENV.fetch('GOOGLE_API_USE_RAILS_LOGGER', 'true') &&
49
- defined?(::Rails) &&
50
- ::Rails.respond_to?(:logger) &&
51
- !::Rails.logger.nil?
52
- ::Rails.logger
53
- else
54
- nil
55
- end
56
- end
57
- end
58
- end
@@ -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