google-api-client 0.50.0 → 0.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (608) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +0 -14
  3. data/CHANGELOG.md +233 -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/adexchangebuyer2_v2beta1/classes.rb +50 -6
  9. data/generated/google/apis/adexchangebuyer2_v2beta1/representations.rb +18 -0
  10. data/generated/google/apis/adexchangebuyer2_v2beta1/service.rb +3 -1
  11. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +1 -1
  12. data/generated/google/apis/admin_datatransfer_v1/classes.rb +6 -16
  13. data/generated/google/apis/admin_datatransfer_v1/service.rb +3 -3
  14. data/generated/google/apis/admin_datatransfer_v1.rb +2 -2
  15. data/generated/google/apis/admin_directory_v1/classes.rb +453 -321
  16. data/generated/google/apis/admin_directory_v1/representations.rb +15 -15
  17. data/generated/google/apis/admin_directory_v1/service.rb +325 -185
  18. data/generated/google/apis/admin_directory_v1.rb +2 -2
  19. data/generated/google/apis/admin_reports_v1/classes.rb +48 -43
  20. data/generated/google/apis/admin_reports_v1/service.rb +198 -179
  21. data/generated/google/apis/admin_reports_v1.rb +2 -2
  22. data/generated/google/apis/admob_v1.rb +1 -1
  23. data/generated/google/apis/admob_v1beta.rb +1 -1
  24. data/generated/google/apis/alertcenter_v1beta1.rb +1 -1
  25. data/generated/google/apis/analytics_v3/service.rb +1 -1
  26. data/generated/google/apis/analyticsadmin_v1alpha/classes.rb +10 -2
  27. data/generated/google/apis/analyticsadmin_v1alpha/representations.rb +1 -0
  28. data/generated/google/apis/analyticsadmin_v1alpha/service.rb +41 -21
  29. data/generated/google/apis/analyticsadmin_v1alpha.rb +2 -2
  30. data/generated/google/apis/analyticsdata_v1alpha/classes.rb +93 -28
  31. data/generated/google/apis/analyticsdata_v1alpha/representations.rb +2 -0
  32. data/generated/google/apis/analyticsdata_v1alpha/service.rb +5 -5
  33. data/generated/google/apis/analyticsdata_v1alpha.rb +2 -2
  34. data/generated/google/apis/androidenterprise_v1/service.rb +4 -1
  35. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  36. data/generated/google/apis/androidmanagement_v1/classes.rb +69 -4
  37. data/generated/google/apis/androidmanagement_v1/representations.rb +19 -0
  38. data/generated/google/apis/androidmanagement_v1.rb +1 -1
  39. data/generated/google/apis/androidpublisher_v3/service.rb +4 -4
  40. data/generated/google/apis/androidpublisher_v3.rb +1 -1
  41. data/generated/google/apis/apigateway_v1/classes.rb +1116 -0
  42. data/generated/google/apis/apigateway_v1/representations.rb +442 -0
  43. data/generated/google/apis/apigateway_v1/service.rb +1172 -0
  44. data/{lib/google/apis/core/logging.rb → generated/google/apis/apigateway_v1.rb} +14 -10
  45. data/generated/google/apis/apigateway_v1beta/classes.rb +22 -17
  46. data/generated/google/apis/apigateway_v1beta/representations.rb +1 -1
  47. data/generated/google/apis/apigateway_v1beta.rb +1 -1
  48. data/generated/google/apis/apigee_v1/classes.rb +102 -29
  49. data/generated/google/apis/apigee_v1/representations.rb +42 -0
  50. data/generated/google/apis/apigee_v1/service.rb +264 -55
  51. data/generated/google/apis/apigee_v1.rb +1 -1
  52. data/generated/google/apis/appengine_v1/classes.rb +7 -0
  53. data/generated/google/apis/appengine_v1/representations.rb +1 -0
  54. data/generated/google/apis/appengine_v1.rb +1 -1
  55. data/generated/google/apis/appengine_v1beta/classes.rb +8 -0
  56. data/generated/google/apis/appengine_v1beta/representations.rb +1 -0
  57. data/generated/google/apis/appengine_v1beta.rb +1 -1
  58. data/generated/google/apis/area120tables_v1alpha1.rb +4 -1
  59. data/generated/google/apis/artifactregistry_v1/classes.rb +242 -0
  60. data/generated/google/apis/artifactregistry_v1/representations.rb +116 -0
  61. data/generated/google/apis/artifactregistry_v1/service.rb +210 -0
  62. data/generated/google/apis/artifactregistry_v1.rb +38 -0
  63. data/generated/google/apis/artifactregistry_v1beta1/classes.rb +0 -120
  64. data/generated/google/apis/artifactregistry_v1beta1/representations.rb +0 -62
  65. data/generated/google/apis/artifactregistry_v1beta1/service.rb +4 -1
  66. data/generated/google/apis/artifactregistry_v1beta1.rb +1 -1
  67. data/generated/google/apis/artifactregistry_v1beta2/classes.rb +917 -0
  68. data/generated/google/apis/artifactregistry_v1beta2/representations.rb +381 -0
  69. data/generated/google/apis/artifactregistry_v1beta2/service.rb +947 -0
  70. data/generated/google/apis/artifactregistry_v1beta2.rb +38 -0
  71. data/generated/google/apis/{assuredworkloads_v1beta1 → assuredworkloads_v1}/classes.rb +49 -137
  72. data/generated/google/apis/{assuredworkloads_v1beta1 → assuredworkloads_v1}/representations.rb +27 -87
  73. data/generated/google/apis/{assuredworkloads_v1beta1 → assuredworkloads_v1}/service.rb +46 -46
  74. data/generated/google/apis/{assuredworkloads_v1beta1.rb → assuredworkloads_v1.rb} +6 -6
  75. data/generated/google/apis/binaryauthorization_v1/classes.rb +0 -6
  76. data/generated/google/apis/binaryauthorization_v1/representations.rb +0 -1
  77. data/generated/google/apis/binaryauthorization_v1.rb +1 -1
  78. data/generated/google/apis/binaryauthorization_v1beta1/classes.rb +2 -7
  79. data/generated/google/apis/binaryauthorization_v1beta1/representations.rb +0 -1
  80. data/generated/google/apis/binaryauthorization_v1beta1.rb +1 -1
  81. data/generated/google/apis/chat_v1/service.rb +308 -0
  82. data/generated/google/apis/chat_v1.rb +1 -1
  83. data/generated/google/apis/cloudasset_v1/classes.rb +332 -3
  84. data/generated/google/apis/cloudasset_v1/representations.rb +139 -0
  85. data/generated/google/apis/cloudasset_v1.rb +1 -1
  86. data/generated/google/apis/cloudasset_v1beta1/classes.rb +326 -0
  87. data/generated/google/apis/cloudasset_v1beta1/representations.rb +139 -0
  88. data/generated/google/apis/cloudasset_v1beta1.rb +1 -1
  89. data/generated/google/apis/cloudasset_v1p5beta1/classes.rb +326 -0
  90. data/generated/google/apis/cloudasset_v1p5beta1/representations.rb +139 -0
  91. data/generated/google/apis/cloudasset_v1p5beta1.rb +1 -1
  92. data/generated/google/apis/cloudbuild_v1/classes.rb +4 -4
  93. data/generated/google/apis/cloudbuild_v1/service.rb +1 -1
  94. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  95. data/generated/google/apis/cloudbuild_v1alpha1/classes.rb +3 -3
  96. data/generated/google/apis/cloudbuild_v1alpha1.rb +1 -1
  97. data/generated/google/apis/cloudbuild_v1alpha2/classes.rb +3 -3
  98. data/generated/google/apis/cloudbuild_v1alpha2.rb +1 -1
  99. data/generated/google/apis/cloudfunctions_v1/classes.rb +6 -0
  100. data/generated/google/apis/cloudfunctions_v1/representations.rb +1 -0
  101. data/generated/google/apis/cloudfunctions_v1.rb +1 -1
  102. data/generated/google/apis/cloudidentity_v1/classes.rb +240 -0
  103. data/generated/google/apis/cloudidentity_v1/representations.rb +125 -0
  104. data/generated/google/apis/cloudidentity_v1/service.rb +210 -6
  105. data/generated/google/apis/cloudidentity_v1.rb +1 -1
  106. data/generated/google/apis/cloudidentity_v1beta1/classes.rb +1 -1
  107. data/generated/google/apis/cloudidentity_v1beta1/service.rb +16 -6
  108. data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
  109. data/generated/google/apis/cloudiot_v1/classes.rb +0 -6
  110. data/generated/google/apis/cloudiot_v1/representations.rb +0 -1
  111. data/generated/google/apis/cloudiot_v1.rb +1 -1
  112. data/generated/google/apis/cloudkms_v1/classes.rb +0 -6
  113. data/generated/google/apis/cloudkms_v1/representations.rb +0 -1
  114. data/generated/google/apis/cloudkms_v1.rb +1 -1
  115. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +0 -26
  116. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +0 -24
  117. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  118. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +0 -26
  119. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +0 -24
  120. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  121. data/generated/google/apis/cloudresourcemanager_v2/classes.rb +0 -26
  122. data/generated/google/apis/cloudresourcemanager_v2/representations.rb +0 -24
  123. data/generated/google/apis/cloudresourcemanager_v2.rb +1 -1
  124. data/generated/google/apis/cloudresourcemanager_v2beta1/classes.rb +0 -26
  125. data/generated/google/apis/cloudresourcemanager_v2beta1/representations.rb +0 -24
  126. data/generated/google/apis/cloudresourcemanager_v2beta1.rb +1 -1
  127. data/generated/google/apis/cloudscheduler_v1beta1/classes.rb +19 -0
  128. data/generated/google/apis/cloudscheduler_v1beta1/representations.rb +2 -0
  129. data/generated/google/apis/cloudscheduler_v1beta1/service.rb +12 -2
  130. data/generated/google/apis/cloudscheduler_v1beta1.rb +1 -1
  131. data/generated/google/apis/cloudsearch_v1/classes.rb +10 -5
  132. data/generated/google/apis/cloudsearch_v1.rb +1 -1
  133. data/generated/google/apis/cloudtasks_v2/classes.rb +0 -6
  134. data/generated/google/apis/cloudtasks_v2/representations.rb +0 -1
  135. data/generated/google/apis/cloudtasks_v2.rb +1 -1
  136. data/generated/google/apis/cloudtasks_v2beta2/classes.rb +59 -6
  137. data/generated/google/apis/cloudtasks_v2beta2/representations.rb +19 -1
  138. data/generated/google/apis/cloudtasks_v2beta2.rb +1 -1
  139. data/generated/google/apis/cloudtasks_v2beta3/classes.rb +102 -6
  140. data/generated/google/apis/cloudtasks_v2beta3/representations.rb +35 -1
  141. data/generated/google/apis/cloudtasks_v2beta3/service.rb +16 -2
  142. data/generated/google/apis/cloudtasks_v2beta3.rb +1 -1
  143. data/generated/google/apis/composer_v1/classes.rb +123 -0
  144. data/generated/google/apis/composer_v1/representations.rb +49 -0
  145. data/generated/google/apis/composer_v1/service.rb +19 -15
  146. data/generated/google/apis/composer_v1.rb +1 -1
  147. data/generated/google/apis/composer_v1beta1/classes.rb +173 -0
  148. data/generated/google/apis/composer_v1beta1/representations.rb +64 -0
  149. data/generated/google/apis/composer_v1beta1/service.rb +39 -1
  150. data/generated/google/apis/composer_v1beta1.rb +1 -1
  151. data/generated/google/apis/compute_alpha/classes.rb +1071 -341
  152. data/generated/google/apis/compute_alpha/representations.rb +248 -19
  153. data/generated/google/apis/compute_alpha/service.rb +291 -15
  154. data/generated/google/apis/compute_alpha.rb +1 -1
  155. data/generated/google/apis/compute_beta/classes.rb +926 -283
  156. data/generated/google/apis/compute_beta/representations.rb +221 -18
  157. data/generated/google/apis/compute_beta/service.rb +24 -15
  158. data/generated/google/apis/compute_beta.rb +1 -1
  159. data/generated/google/apis/compute_v1/classes.rb +426 -160
  160. data/generated/google/apis/compute_v1/representations.rb +56 -0
  161. data/generated/google/apis/compute_v1/service.rb +700 -551
  162. data/generated/google/apis/compute_v1.rb +1 -1
  163. data/generated/google/apis/container_v1/classes.rb +55 -16
  164. data/generated/google/apis/container_v1/representations.rb +17 -0
  165. data/generated/google/apis/container_v1/service.rb +4 -2
  166. data/generated/google/apis/container_v1.rb +1 -1
  167. data/generated/google/apis/container_v1beta1/classes.rb +31 -20
  168. data/generated/google/apis/container_v1beta1/representations.rb +2 -0
  169. data/generated/google/apis/container_v1beta1/service.rb +6 -2
  170. data/generated/google/apis/container_v1beta1.rb +1 -1
  171. data/generated/google/apis/containeranalysis_v1alpha1/classes.rb +0 -6
  172. data/generated/google/apis/containeranalysis_v1alpha1/representations.rb +0 -1
  173. data/generated/google/apis/containeranalysis_v1alpha1.rb +1 -1
  174. data/generated/google/apis/containeranalysis_v1beta1/classes.rb +2 -7
  175. data/generated/google/apis/containeranalysis_v1beta1/representations.rb +0 -1
  176. data/generated/google/apis/containeranalysis_v1beta1.rb +1 -1
  177. data/generated/google/apis/content_v2/classes.rb +4 -4
  178. data/generated/google/apis/content_v2.rb +1 -1
  179. data/generated/google/apis/content_v2_1/classes.rb +625 -11
  180. data/generated/google/apis/content_v2_1/representations.rb +266 -0
  181. data/generated/google/apis/content_v2_1/service.rb +295 -0
  182. data/generated/google/apis/content_v2_1.rb +1 -1
  183. data/generated/google/apis/datacatalog_v1beta1/classes.rb +6 -6
  184. data/generated/google/apis/datacatalog_v1beta1/representations.rb +1 -1
  185. data/generated/google/apis/datacatalog_v1beta1.rb +1 -1
  186. data/generated/google/apis/dataflow_v1b3/classes.rb +17 -1
  187. data/generated/google/apis/dataflow_v1b3/representations.rb +2 -0
  188. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  189. data/generated/google/apis/datalabeling_v1beta1.rb +1 -1
  190. data/generated/google/apis/datamigration_v1beta1/classes.rb +0 -6
  191. data/generated/google/apis/datamigration_v1beta1/representations.rb +0 -1
  192. data/generated/google/apis/datamigration_v1beta1.rb +1 -1
  193. data/generated/google/apis/dataproc_v1/classes.rb +107 -7
  194. data/generated/google/apis/dataproc_v1/representations.rb +36 -1
  195. data/generated/google/apis/dataproc_v1/service.rb +42 -0
  196. data/generated/google/apis/dataproc_v1.rb +1 -1
  197. data/generated/google/apis/dataproc_v1beta2/classes.rb +75 -7
  198. data/generated/google/apis/dataproc_v1beta2/representations.rb +32 -1
  199. data/generated/google/apis/dataproc_v1beta2/service.rb +42 -0
  200. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  201. data/generated/google/apis/deploymentmanager_alpha/classes.rb +276 -644
  202. data/generated/google/apis/deploymentmanager_alpha/representations.rb +10 -143
  203. data/generated/google/apis/deploymentmanager_alpha/service.rb +247 -398
  204. data/generated/google/apis/deploymentmanager_alpha.rb +6 -5
  205. data/generated/google/apis/deploymentmanager_v2/classes.rb +0 -6
  206. data/generated/google/apis/deploymentmanager_v2/representations.rb +0 -1
  207. data/generated/google/apis/deploymentmanager_v2/service.rb +5 -25
  208. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  209. data/generated/google/apis/deploymentmanager_v2beta/classes.rb +0 -6
  210. data/generated/google/apis/deploymentmanager_v2beta/representations.rb +0 -1
  211. data/generated/google/apis/deploymentmanager_v2beta/service.rb +8 -40
  212. data/generated/google/apis/deploymentmanager_v2beta.rb +1 -1
  213. data/generated/google/apis/dialogflow_v2/classes.rb +3930 -507
  214. data/generated/google/apis/dialogflow_v2/representations.rb +1866 -285
  215. data/generated/google/apis/dialogflow_v2/service.rb +12 -4
  216. data/generated/google/apis/dialogflow_v2.rb +1 -1
  217. data/generated/google/apis/dialogflow_v2beta1/classes.rb +4100 -682
  218. data/generated/google/apis/dialogflow_v2beta1/representations.rb +1877 -296
  219. data/generated/google/apis/dialogflow_v2beta1/service.rb +496 -32
  220. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  221. data/generated/google/apis/dialogflow_v3/classes.rb +11752 -0
  222. data/generated/google/apis/dialogflow_v3/representations.rb +5158 -0
  223. data/generated/google/apis/dialogflow_v3/service.rb +3414 -0
  224. data/generated/google/apis/{bigqueryreservation_v1alpha2.rb → dialogflow_v3.rb} +13 -12
  225. data/generated/google/apis/dialogflow_v3beta1/classes.rb +5190 -2229
  226. data/generated/google/apis/dialogflow_v3beta1/representations.rb +1789 -342
  227. data/generated/google/apis/dialogflow_v3beta1/service.rb +591 -2
  228. data/generated/google/apis/dialogflow_v3beta1.rb +1 -1
  229. data/generated/google/apis/displayvideo_v1/classes.rb +97 -3
  230. data/generated/google/apis/displayvideo_v1/representations.rb +45 -0
  231. data/generated/google/apis/displayvideo_v1/service.rb +103 -39
  232. data/generated/google/apis/displayvideo_v1.rb +1 -1
  233. data/generated/google/apis/dlp_v2/service.rb +297 -10
  234. data/generated/google/apis/dlp_v2.rb +1 -1
  235. data/generated/google/apis/dns_v1/classes.rb +71 -0
  236. data/generated/google/apis/dns_v1/representations.rb +33 -0
  237. data/generated/google/apis/dns_v1.rb +1 -1
  238. data/generated/google/apis/dns_v1beta2/classes.rb +6 -0
  239. data/generated/google/apis/dns_v1beta2/representations.rb +1 -0
  240. data/generated/google/apis/dns_v1beta2.rb +1 -1
  241. data/generated/google/apis/documentai_v1beta2/classes.rb +217 -186
  242. data/generated/google/apis/documentai_v1beta2/representations.rb +107 -24
  243. data/generated/google/apis/documentai_v1beta2.rb +1 -1
  244. data/generated/google/apis/documentai_v1beta3/classes.rb +238 -201
  245. data/generated/google/apis/documentai_v1beta3/representations.rb +107 -24
  246. data/generated/google/apis/documentai_v1beta3/service.rb +81 -2
  247. data/generated/google/apis/documentai_v1beta3.rb +1 -1
  248. data/generated/google/apis/doubleclickbidmanager_v1_1.rb +1 -1
  249. data/generated/google/apis/drive_v2/classes.rb +4 -1
  250. data/generated/google/apis/drive_v2/service.rb +24 -56
  251. data/generated/google/apis/drive_v2.rb +1 -1
  252. data/generated/google/apis/drive_v3/classes.rb +4 -1
  253. data/generated/google/apis/drive_v3/service.rb +14 -30
  254. data/generated/google/apis/drive_v3.rb +1 -1
  255. data/generated/google/apis/eventarc_v1beta1/classes.rb +8 -15
  256. data/generated/google/apis/eventarc_v1beta1/representations.rb +0 -1
  257. data/generated/google/apis/eventarc_v1beta1/service.rb +25 -5
  258. data/generated/google/apis/eventarc_v1beta1.rb +1 -1
  259. data/generated/google/apis/file_v1/classes.rb +61 -0
  260. data/generated/google/apis/file_v1/representations.rb +19 -0
  261. data/generated/google/apis/file_v1.rb +1 -1
  262. data/generated/google/apis/firebasedatabase_v1beta/classes.rb +130 -0
  263. data/generated/google/apis/firebasedatabase_v1beta/representations.rb +82 -0
  264. data/generated/google/apis/firebasedatabase_v1beta/service.rb +292 -0
  265. data/generated/google/apis/firebasedatabase_v1beta.rb +44 -0
  266. data/generated/google/apis/games_v1/classes.rb +67 -14
  267. data/generated/google/apis/games_v1/representations.rb +31 -2
  268. data/generated/google/apis/games_v1/service.rb +33 -0
  269. data/generated/google/apis/games_v1.rb +1 -1
  270. data/generated/google/apis/gameservices_v1/service.rb +14 -14
  271. data/generated/google/apis/gameservices_v1.rb +1 -1
  272. data/generated/google/apis/gameservices_v1beta/service.rb +14 -14
  273. data/generated/google/apis/gameservices_v1beta.rb +1 -1
  274. data/generated/google/apis/genomics_v2alpha1/classes.rb +11 -7
  275. data/generated/google/apis/genomics_v2alpha1.rb +1 -1
  276. data/generated/google/apis/gmailpostmastertools_v1beta1/classes.rb +9 -0
  277. data/generated/google/apis/gmailpostmastertools_v1beta1/representations.rb +1 -0
  278. data/generated/google/apis/gmailpostmastertools_v1beta1.rb +1 -1
  279. data/generated/google/apis/healthcare_v1/classes.rb +18 -23
  280. data/generated/google/apis/healthcare_v1/representations.rb +0 -1
  281. data/generated/google/apis/healthcare_v1/service.rb +13 -12
  282. data/generated/google/apis/healthcare_v1.rb +1 -1
  283. data/generated/google/apis/healthcare_v1beta1/classes.rb +63 -36
  284. data/generated/google/apis/healthcare_v1beta1/representations.rb +3 -1
  285. data/generated/google/apis/healthcare_v1beta1/service.rb +37 -37
  286. data/generated/google/apis/healthcare_v1beta1.rb +1 -1
  287. data/generated/google/apis/iam_v1/classes.rb +101 -0
  288. data/generated/google/apis/iam_v1/representations.rb +33 -0
  289. data/generated/google/apis/iam_v1/service.rb +62 -0
  290. data/generated/google/apis/iam_v1.rb +1 -1
  291. data/generated/google/apis/iap_v1/classes.rb +0 -6
  292. data/generated/google/apis/iap_v1/representations.rb +0 -1
  293. data/generated/google/apis/iap_v1.rb +1 -1
  294. data/generated/google/apis/iap_v1beta1/classes.rb +0 -6
  295. data/generated/google/apis/iap_v1beta1/representations.rb +0 -1
  296. data/generated/google/apis/iap_v1beta1.rb +1 -1
  297. data/generated/google/apis/jobs_v3/classes.rb +9 -807
  298. data/generated/google/apis/jobs_v3/representations.rb +0 -272
  299. data/generated/google/apis/jobs_v3.rb +1 -1
  300. data/generated/google/apis/jobs_v3p1beta1/classes.rb +9 -768
  301. data/generated/google/apis/jobs_v3p1beta1/representations.rb +0 -257
  302. data/generated/google/apis/jobs_v3p1beta1.rb +1 -1
  303. data/generated/google/apis/jobs_v4/classes.rb +2699 -0
  304. data/generated/google/apis/jobs_v4/representations.rb +934 -0
  305. data/generated/google/apis/jobs_v4/service.rb +903 -0
  306. data/generated/google/apis/{jobs_v2.rb → jobs_v4.rb} +6 -6
  307. data/generated/google/apis/licensing_v1/classes.rb +26 -8
  308. data/generated/google/apis/licensing_v1/representations.rb +12 -0
  309. data/generated/google/apis/licensing_v1/service.rb +32 -29
  310. data/generated/google/apis/licensing_v1.rb +1 -1
  311. data/generated/google/apis/lifesciences_v2beta/classes.rb +25 -0
  312. data/generated/google/apis/lifesciences_v2beta/representations.rb +15 -0
  313. data/generated/google/apis/lifesciences_v2beta.rb +1 -1
  314. data/generated/google/apis/localservices_v1.rb +4 -1
  315. data/generated/google/apis/logging_v2/classes.rb +5 -4
  316. data/generated/google/apis/logging_v2.rb +1 -1
  317. data/generated/google/apis/managedidentities_v1/classes.rb +16 -11
  318. data/generated/google/apis/managedidentities_v1/representations.rb +0 -1
  319. data/generated/google/apis/managedidentities_v1.rb +1 -1
  320. data/generated/google/apis/managedidentities_v1alpha1/classes.rb +18 -12
  321. data/generated/google/apis/managedidentities_v1alpha1/representations.rb +0 -1
  322. data/generated/google/apis/managedidentities_v1alpha1.rb +1 -1
  323. data/generated/google/apis/managedidentities_v1beta1/classes.rb +4 -7
  324. data/generated/google/apis/managedidentities_v1beta1/representations.rb +0 -1
  325. data/generated/google/apis/managedidentities_v1beta1.rb +1 -1
  326. data/generated/google/apis/manufacturers_v1/classes.rb +2 -2
  327. data/generated/google/apis/manufacturers_v1.rb +1 -1
  328. data/generated/google/apis/metastore_v1beta/classes.rb +1151 -0
  329. data/generated/google/apis/metastore_v1beta/representations.rb +479 -0
  330. data/generated/google/apis/metastore_v1beta/service.rb +800 -0
  331. data/generated/google/apis/metastore_v1beta.rb +35 -0
  332. data/generated/google/apis/ml_v1/classes.rb +51 -24
  333. data/generated/google/apis/ml_v1/representations.rb +16 -1
  334. data/generated/google/apis/ml_v1.rb +1 -1
  335. data/generated/google/apis/monitoring_v3/classes.rb +15 -10
  336. data/generated/google/apis/monitoring_v3/service.rb +5 -4
  337. data/generated/google/apis/monitoring_v3.rb +1 -1
  338. data/generated/google/apis/notebooks_v1/classes.rb +13 -6
  339. data/generated/google/apis/notebooks_v1/representations.rb +12 -1
  340. data/generated/google/apis/notebooks_v1/service.rb +34 -0
  341. data/generated/google/apis/notebooks_v1.rb +1 -1
  342. data/generated/google/apis/osconfig_v1/classes.rb +419 -0
  343. data/generated/google/apis/osconfig_v1/representations.rb +168 -0
  344. data/generated/google/apis/osconfig_v1.rb +1 -1
  345. data/generated/google/apis/osconfig_v1beta/classes.rb +419 -0
  346. data/generated/google/apis/osconfig_v1beta/representations.rb +168 -0
  347. data/generated/google/apis/osconfig_v1beta.rb +1 -1
  348. data/generated/google/apis/pagespeedonline_v5/service.rb +3 -3
  349. data/generated/google/apis/pagespeedonline_v5.rb +1 -1
  350. data/generated/google/apis/people_v1/classes.rb +6 -2
  351. data/generated/google/apis/people_v1.rb +1 -1
  352. data/generated/google/apis/privateca_v1beta1/classes.rb +2 -1
  353. data/generated/google/apis/privateca_v1beta1.rb +1 -1
  354. data/generated/google/apis/prod_tt_sasportal_v1alpha1.rb +1 -1
  355. data/generated/google/apis/pubsub_v1/classes.rb +0 -6
  356. data/generated/google/apis/pubsub_v1/representations.rb +0 -1
  357. data/generated/google/apis/pubsub_v1.rb +1 -1
  358. data/generated/google/apis/pubsub_v1beta2/classes.rb +0 -6
  359. data/generated/google/apis/pubsub_v1beta2/representations.rb +0 -1
  360. data/generated/google/apis/pubsub_v1beta2.rb +1 -1
  361. data/generated/google/apis/recommendationengine_v1beta1/service.rb +2 -1
  362. data/generated/google/apis/recommendationengine_v1beta1.rb +1 -1
  363. data/generated/google/apis/recommender_v1/classes.rb +2 -2
  364. data/generated/google/apis/recommender_v1.rb +1 -1
  365. data/generated/google/apis/recommender_v1beta1/classes.rb +2 -2
  366. data/generated/google/apis/recommender_v1beta1/service.rb +317 -0
  367. data/generated/google/apis/recommender_v1beta1.rb +1 -1
  368. data/generated/google/apis/redis_v1/classes.rb +2 -2
  369. data/generated/google/apis/redis_v1.rb +1 -1
  370. data/generated/google/apis/redis_v1beta1/classes.rb +2 -2
  371. data/generated/google/apis/redis_v1beta1.rb +1 -1
  372. data/generated/google/apis/remotebuildexecution_v1/classes.rb +5 -30
  373. data/generated/google/apis/remotebuildexecution_v1/representations.rb +1 -16
  374. data/generated/google/apis/remotebuildexecution_v1.rb +1 -1
  375. data/generated/google/apis/remotebuildexecution_v1alpha/classes.rb +5 -30
  376. data/generated/google/apis/remotebuildexecution_v1alpha/representations.rb +1 -16
  377. data/generated/google/apis/remotebuildexecution_v1alpha.rb +1 -1
  378. data/generated/google/apis/remotebuildexecution_v2/classes.rb +5 -30
  379. data/generated/google/apis/remotebuildexecution_v2/representations.rb +1 -16
  380. data/generated/google/apis/remotebuildexecution_v2.rb +1 -1
  381. data/generated/google/apis/reseller_v1/service.rb +5 -5
  382. data/generated/google/apis/reseller_v1.rb +4 -4
  383. data/generated/google/apis/run_v1/classes.rb +2 -1
  384. data/generated/google/apis/run_v1.rb +1 -1
  385. data/generated/google/apis/run_v1alpha1/classes.rb +2 -1
  386. data/generated/google/apis/run_v1alpha1.rb +1 -1
  387. data/generated/google/apis/safebrowsing_v4/classes.rb +277 -277
  388. data/generated/google/apis/safebrowsing_v4/representations.rb +128 -128
  389. data/generated/google/apis/safebrowsing_v4/service.rb +44 -44
  390. data/generated/google/apis/safebrowsing_v4.rb +1 -1
  391. data/generated/google/apis/searchconsole_v1/classes.rb +7 -0
  392. data/generated/google/apis/searchconsole_v1/representations.rb +1 -0
  393. data/generated/google/apis/searchconsole_v1.rb +1 -1
  394. data/generated/google/apis/securitycenter_v1/classes.rb +109 -10
  395. data/generated/google/apis/securitycenter_v1/representations.rb +38 -0
  396. data/generated/google/apis/securitycenter_v1/service.rb +1464 -430
  397. data/generated/google/apis/securitycenter_v1.rb +1 -1
  398. data/generated/google/apis/securitycenter_v1beta1/classes.rb +75 -0
  399. data/generated/google/apis/securitycenter_v1beta1/representations.rb +33 -0
  400. data/generated/google/apis/securitycenter_v1beta1.rb +1 -1
  401. data/generated/google/apis/securitycenter_v1beta2/classes.rb +75 -0
  402. data/generated/google/apis/securitycenter_v1beta2/representations.rb +33 -0
  403. data/generated/google/apis/securitycenter_v1beta2.rb +1 -1
  404. data/generated/google/apis/serviceconsumermanagement_v1beta1/classes.rb +11 -10
  405. data/generated/google/apis/serviceconsumermanagement_v1beta1.rb +1 -1
  406. data/generated/google/apis/servicecontrol_v1/service.rb +2 -2
  407. data/generated/google/apis/servicecontrol_v1.rb +3 -3
  408. data/generated/google/apis/servicecontrol_v2/service.rb +2 -2
  409. data/generated/google/apis/servicecontrol_v2.rb +3 -3
  410. data/generated/google/apis/servicedirectory_v1/classes.rb +721 -0
  411. data/generated/google/apis/servicedirectory_v1/representations.rb +304 -0
  412. data/generated/google/apis/servicedirectory_v1/service.rb +957 -0
  413. data/generated/google/apis/servicedirectory_v1.rb +35 -0
  414. data/generated/google/apis/servicedirectory_v1beta1/classes.rb +0 -6
  415. data/generated/google/apis/servicedirectory_v1beta1/representations.rb +0 -1
  416. data/generated/google/apis/servicedirectory_v1beta1.rb +1 -1
  417. data/generated/google/apis/servicemanagement_v1/classes.rb +11 -10
  418. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  419. data/generated/google/apis/servicenetworking_v1/classes.rb +57 -4
  420. data/generated/google/apis/servicenetworking_v1/representations.rb +19 -1
  421. data/generated/google/apis/servicenetworking_v1.rb +1 -1
  422. data/generated/google/apis/servicenetworking_v1beta/classes.rb +37 -4
  423. data/generated/google/apis/servicenetworking_v1beta/representations.rb +17 -1
  424. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  425. data/generated/google/apis/serviceusage_v1/classes.rb +11 -10
  426. data/generated/google/apis/serviceusage_v1.rb +1 -1
  427. data/generated/google/apis/serviceusage_v1beta1/classes.rb +11 -10
  428. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  429. data/generated/google/apis/sheets_v4/classes.rb +309 -0
  430. data/generated/google/apis/sheets_v4/representations.rb +99 -0
  431. data/generated/google/apis/sheets_v4.rb +1 -1
  432. data/generated/google/apis/slides_v1/classes.rb +9 -3
  433. data/generated/google/apis/slides_v1.rb +1 -1
  434. data/generated/google/apis/spanner_v1/classes.rb +9 -6
  435. data/generated/google/apis/spanner_v1/representations.rb +1 -1
  436. data/generated/google/apis/spanner_v1.rb +1 -1
  437. data/generated/google/apis/speech_v1p1beta1.rb +1 -1
  438. data/generated/google/apis/sqladmin_v1beta4/classes.rb +97 -14
  439. data/generated/google/apis/sqladmin_v1beta4/representations.rb +34 -0
  440. data/generated/google/apis/sqladmin_v1beta4/service.rb +5 -2
  441. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  442. data/generated/google/apis/storage_v1/classes.rb +7 -0
  443. data/generated/google/apis/storage_v1/representations.rb +1 -0
  444. data/generated/google/apis/storage_v1.rb +1 -1
  445. data/generated/google/apis/storagetransfer_v1/classes.rb +39 -16
  446. data/generated/google/apis/storagetransfer_v1/representations.rb +3 -0
  447. data/generated/google/apis/storagetransfer_v1.rb +1 -1
  448. data/generated/google/apis/testing_v1/classes.rb +1 -1
  449. data/generated/google/apis/testing_v1.rb +1 -1
  450. data/generated/google/apis/trafficdirector_v2/service.rb +1 -1
  451. data/generated/google/apis/trafficdirector_v2.rb +2 -2
  452. data/generated/google/apis/transcoder_v1beta1/classes.rb +12 -2
  453. data/generated/google/apis/transcoder_v1beta1/representations.rb +1 -0
  454. data/generated/google/apis/transcoder_v1beta1.rb +1 -1
  455. data/generated/google/apis/translate_v3/classes.rb +1 -1
  456. data/generated/google/apis/translate_v3.rb +1 -1
  457. data/generated/google/apis/translate_v3beta1/classes.rb +1 -1
  458. data/generated/google/apis/translate_v3beta1.rb +1 -1
  459. data/generated/google/apis/vault_v1/classes.rb +76 -0
  460. data/generated/google/apis/vault_v1/representations.rb +45 -0
  461. data/generated/google/apis/vault_v1.rb +1 -1
  462. data/generated/google/apis/vectortile_v1/classes.rb +59 -4
  463. data/generated/google/apis/vectortile_v1/representations.rb +19 -0
  464. data/generated/google/apis/vectortile_v1.rb +1 -1
  465. data/generated/google/apis/videointelligence_v1/classes.rb +65 -0
  466. data/generated/google/apis/videointelligence_v1/representations.rb +15 -0
  467. data/generated/google/apis/videointelligence_v1.rb +1 -1
  468. data/generated/google/apis/videointelligence_v1beta2/classes.rb +65 -0
  469. data/generated/google/apis/videointelligence_v1beta2/representations.rb +15 -0
  470. data/generated/google/apis/videointelligence_v1beta2.rb +1 -1
  471. data/generated/google/apis/videointelligence_v1p1beta1/classes.rb +65 -0
  472. data/generated/google/apis/videointelligence_v1p1beta1/representations.rb +15 -0
  473. data/generated/google/apis/videointelligence_v1p1beta1.rb +1 -1
  474. data/generated/google/apis/videointelligence_v1p2beta1/classes.rb +65 -0
  475. data/generated/google/apis/videointelligence_v1p2beta1/representations.rb +15 -0
  476. data/generated/google/apis/videointelligence_v1p2beta1.rb +1 -1
  477. data/generated/google/apis/videointelligence_v1p3beta1/classes.rb +65 -0
  478. data/generated/google/apis/videointelligence_v1p3beta1/representations.rb +15 -0
  479. data/generated/google/apis/videointelligence_v1p3beta1.rb +1 -1
  480. data/generated/google/apis/webmasters_v3/classes.rb +8 -0
  481. data/generated/google/apis/webmasters_v3/representations.rb +1 -0
  482. data/generated/google/apis/workflows_v1beta/classes.rb +4 -4
  483. data/generated/google/apis/workflows_v1beta.rb +1 -1
  484. data/generated/google/apis/youtube_v3/classes.rb +20 -145
  485. data/generated/google/apis/youtube_v3/representations.rb +0 -57
  486. data/generated/google/apis/youtube_v3/service.rb +0 -43
  487. data/generated/google/apis/youtube_v3.rb +1 -1
  488. data/lib/google/apis/version.rb +1 -23
  489. metadata +55 -275
  490. data/.github/CONTRIBUTING.md +0 -31
  491. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -36
  492. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -21
  493. data/.github/ISSUE_TEMPLATE/support_request.md +0 -7
  494. data/.github/workflows/autoapprove.yml +0 -49
  495. data/.github/workflows/release-please.yml +0 -77
  496. data/.gitignore +0 -23
  497. data/.kokoro/build.bat +0 -11
  498. data/.kokoro/build.sh +0 -4
  499. data/.kokoro/continuous/common.cfg +0 -25
  500. data/.kokoro/continuous/linux.cfg +0 -25
  501. data/.kokoro/continuous/osx.cfg +0 -8
  502. data/.kokoro/continuous/post.cfg +0 -30
  503. data/.kokoro/continuous/windows.cfg +0 -29
  504. data/.kokoro/osx.sh +0 -4
  505. data/.kokoro/presubmit/common.cfg +0 -24
  506. data/.kokoro/presubmit/linux.cfg +0 -24
  507. data/.kokoro/presubmit/osx.cfg +0 -8
  508. data/.kokoro/presubmit/windows.cfg +0 -29
  509. data/.kokoro/release.cfg +0 -94
  510. data/.kokoro/trampoline.bat +0 -10
  511. data/.kokoro/trampoline.sh +0 -4
  512. data/.repo-metadata.json +0 -5
  513. data/.rspec +0 -2
  514. data/.rubocop.yml +0 -12
  515. data/.rubocop_todo.yml +0 -63
  516. data/CODE_OF_CONDUCT.md +0 -43
  517. data/Gemfile +0 -55
  518. data/MIGRATING.md +0 -215
  519. data/README.md +0 -402
  520. data/Rakefile +0 -131
  521. data/api_list_config.yaml +0 -9
  522. data/api_names.yaml +0 -1082
  523. data/bin/generate-api +0 -194
  524. data/docs/api-keys.md +0 -20
  525. data/docs/auth.md +0 -53
  526. data/docs/client-secrets.md +0 -69
  527. data/docs/getting-started.md +0 -340
  528. data/docs/installation.md +0 -0
  529. data/docs/logging.md +0 -34
  530. data/docs/media-upload.md +0 -25
  531. data/docs/oauth-installed.md +0 -191
  532. data/docs/oauth-server.md +0 -133
  533. data/docs/oauth-web.md +0 -280
  534. data/docs/oauth.md +0 -268
  535. data/docs/pagination.md +0 -29
  536. data/docs/performance.md +0 -25
  537. data/generated/google/apis/bigqueryreservation_v1alpha2/classes.rb +0 -426
  538. data/generated/google/apis/bigqueryreservation_v1alpha2/representations.rb +0 -195
  539. data/generated/google/apis/bigqueryreservation_v1alpha2/service.rb +0 -622
  540. data/generated/google/apis/jobs_v2/classes.rb +0 -4012
  541. data/generated/google/apis/jobs_v2/representations.rb +0 -1396
  542. data/generated/google/apis/jobs_v2/service.rb +0 -693
  543. data/google-api-client.gemspec +0 -36
  544. data/lib/google/api_client/auth/installed_app.rb +0 -143
  545. data/lib/google/api_client/auth/key_utils.rb +0 -94
  546. data/lib/google/api_client/auth/storage.rb +0 -104
  547. data/lib/google/api_client/auth/storages/file_store.rb +0 -57
  548. data/lib/google/api_client/auth/storages/redis_store.rb +0 -59
  549. data/lib/google/api_client/client_secrets.rb +0 -176
  550. data/lib/google/apis/core/api_command.rb +0 -209
  551. data/lib/google/apis/core/base_service.rb +0 -447
  552. data/lib/google/apis/core/batch.rb +0 -236
  553. data/lib/google/apis/core/composite_io.rb +0 -97
  554. data/lib/google/apis/core/download.rb +0 -118
  555. data/lib/google/apis/core/hashable.rb +0 -44
  556. data/lib/google/apis/core/http_command.rb +0 -447
  557. data/lib/google/apis/core/json_representation.rb +0 -153
  558. data/lib/google/apis/core/multipart.rb +0 -135
  559. data/lib/google/apis/core/upload.rb +0 -273
  560. data/lib/google/apis/errors.rb +0 -89
  561. data/lib/google/apis/generator/annotator.rb +0 -339
  562. data/lib/google/apis/generator/helpers.rb +0 -76
  563. data/lib/google/apis/generator/model.rb +0 -187
  564. data/lib/google/apis/generator/template.rb +0 -124
  565. data/lib/google/apis/generator/templates/_class.tmpl +0 -43
  566. data/lib/google/apis/generator/templates/_method.tmpl +0 -92
  567. data/lib/google/apis/generator/templates/_representation.tmpl +0 -51
  568. data/lib/google/apis/generator/templates/_representation_stub.tmpl +0 -17
  569. data/lib/google/apis/generator/templates/_representation_type.tmpl +0 -10
  570. data/lib/google/apis/generator/templates/classes.rb.tmpl +0 -29
  571. data/lib/google/apis/generator/templates/module.rb.tmpl +0 -40
  572. data/lib/google/apis/generator/templates/representations.rb.tmpl +0 -32
  573. data/lib/google/apis/generator/templates/service.rb.tmpl +0 -61
  574. data/lib/google/apis/generator.rb +0 -71
  575. data/lib/google/apis/options.rb +0 -116
  576. data/lib/google/apis.rb +0 -58
  577. data/rakelib/devsite/devsite_builder.rb +0 -126
  578. data/rakelib/devsite/link_checker.rb +0 -64
  579. data/rakelib/devsite/repo_metadata.rb +0 -56
  580. data/rakelib/metrics.rake +0 -22
  581. data/rakelib/rubocop.rake +0 -10
  582. data/rakelib/spec.rake +0 -11
  583. data/rakelib/yard.rake +0 -11
  584. data/samples/cli/.env +0 -4
  585. data/samples/cli/Gemfile +0 -7
  586. data/samples/cli/README.md +0 -51
  587. data/samples/cli/google-api-samples +0 -32
  588. data/samples/cli/lib/base_cli.rb +0 -95
  589. data/samples/cli/lib/samples/adsense.rb +0 -99
  590. data/samples/cli/lib/samples/analytics.rb +0 -80
  591. data/samples/cli/lib/samples/androidpublisher.rb +0 -47
  592. data/samples/cli/lib/samples/bigquery.rb +0 -101
  593. data/samples/cli/lib/samples/calendar.rb +0 -83
  594. data/samples/cli/lib/samples/drive.rb +0 -82
  595. data/samples/cli/lib/samples/gmail.rb +0 -157
  596. data/samples/cli/lib/samples/pubsub.rb +0 -114
  597. data/samples/cli/lib/samples/sheets.rb +0 -61
  598. data/samples/cli/lib/samples/translate.rb +0 -44
  599. data/samples/cli/lib/samples/vision.rb +0 -69
  600. data/samples/cli/lib/samples/you_tube.rb +0 -47
  601. data/samples/web/Gemfile +0 -9
  602. data/samples/web/README.md +0 -44
  603. data/samples/web/app.rb +0 -120
  604. data/samples/web/views/calendar.erb +0 -34
  605. data/samples/web/views/drive.erb +0 -33
  606. data/samples/web/views/home.erb +0 -34
  607. data/samples/web/views/layout.erb +0 -40
  608. data/synth.py +0 -40
@@ -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/options'
18
- require 'google/apis/errors'
19
- require 'retriable'
20
- require 'google/apis/core/logging'
21
- require 'pp'
22
-
23
- module Google
24
- module Apis
25
- module Core
26
- # Command for HTTP request/response.
27
- class HttpCommand
28
- include Logging
29
-
30
- RETRIABLE_ERRORS = [Google::Apis::ServerError, Google::Apis::RateLimitError, Google::Apis::TransmissionError]
31
-
32
- begin
33
- require 'opencensus'
34
- OPENCENSUS_AVAILABLE = true
35
- rescue LoadError
36
- OPENCENSUS_AVAILABLE = false
37
- end
38
-
39
- # Request options
40
- # @return [Google::Apis::RequestOptions]
41
- attr_accessor :options
42
-
43
- # HTTP request URL
44
- # @return [String, Addressable::URI]
45
- attr_accessor :url
46
-
47
- # HTTP headers
48
- # @return [Hash]
49
- attr_accessor :header
50
-
51
- # Request body
52
- # @return [#read]
53
- attr_accessor :body
54
-
55
- # HTTP method
56
- # @return [symbol]
57
- attr_accessor :method
58
-
59
- # HTTP Client
60
- # @return [HTTPClient]
61
- attr_accessor :connection
62
-
63
- # Query params
64
- # @return [Hash]
65
- attr_accessor :query
66
-
67
- # Path params for URL Template
68
- # @return [Hash]
69
- attr_accessor :params
70
-
71
- # @param [symbol] method
72
- # HTTP method
73
- # @param [String,Addressable::URI, Addressable::Template] url
74
- # HTTP URL or template
75
- # @param [String, #read] body
76
- # Request body
77
- def initialize(method, url, body: nil)
78
- self.options = Google::Apis::RequestOptions.default.dup
79
- self.url = url
80
- self.url = Addressable::Template.new(url) if url.is_a?(String)
81
- self.method = method
82
- self.header = Hash.new
83
- self.body = body
84
- self.query = {}
85
- self.params = {}
86
- @opencensus_span = nil
87
- end
88
-
89
- # Execute the command, retrying as necessary
90
- #
91
- # @param [HTTPClient] client
92
- # HTTP client
93
- # @yield [result, err] Result or error if block supplied
94
- # @return [Object]
95
- # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
96
- # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
97
- # @raise [Google::Apis::AuthorizationError] Authorization is required
98
- def execute(client)
99
- prepare!
100
- opencensus_begin_span
101
- begin
102
- Retriable.retriable tries: options.retries + 1,
103
- base_interval: 1,
104
- multiplier: 2,
105
- on: RETRIABLE_ERRORS do |try|
106
- # This 2nd level retriable only catches auth errors, and supports 1 retry, which allows
107
- # auth to be re-attempted without having to retry all sorts of other failures like
108
- # NotFound, etc
109
- auth_tries = (try == 1 && authorization_refreshable? ? 2 : 1)
110
- Retriable.retriable tries: auth_tries,
111
- on: [Google::Apis::AuthorizationError, Signet::AuthorizationError, Signet::RemoteServerError, Signet::UnexpectedStatusError],
112
- on_retry: proc { |*| refresh_authorization } do
113
- execute_once(client).tap do |result|
114
- if block_given?
115
- yield result, nil
116
- end
117
- end
118
- end
119
- end
120
- rescue => e
121
- if block_given?
122
- yield nil, e
123
- else
124
- raise e
125
- end
126
- end
127
- ensure
128
- opencensus_end_span
129
- @http_res = nil
130
- release!
131
- end
132
-
133
- # Refresh the authorization authorization after a 401 error
134
- #
135
- # @private
136
- # @return [void]
137
- def refresh_authorization
138
- # Handled implicitly by auth lib, here in case need to override
139
- logger.debug('Retrying after authentication failure')
140
- end
141
-
142
- # Check if attached credentials can be automatically refreshed
143
- # @return [Boolean]
144
- def authorization_refreshable?
145
- options.authorization.respond_to?(:apply!)
146
- end
147
-
148
- # Prepare the request (e.g. calculate headers, add query params, serialize data, etc) before sending
149
- #
150
- # @private
151
- # @return [void]
152
- def prepare!
153
- normalize_unicode = true
154
- if options
155
- header.update(options.header) if options.header
156
- query.update(options.query) if options.query
157
- normalize_unicode = options.normalize_unicode
158
- end
159
- self.url = url.expand(params, nil, normalize_unicode) if url.is_a?(Addressable::Template)
160
- url.query_values = normalize_query_values(query).merge(url.query_values || {})
161
-
162
- if allow_form_encoding?
163
- @form_encoded = true
164
- self.body = Addressable::URI.form_encode(url.query_values(Array))
165
- self.header['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'
166
- self.url.query_values = {}
167
- else
168
- @form_encoded = false
169
- end
170
-
171
- self.body = '' unless self.body
172
- end
173
-
174
- # Release any resources used by this command
175
- # @private
176
- # @return [void]
177
- def release!
178
- end
179
-
180
- # Check the response and either decode body or raise error
181
- #
182
- # @param [Fixnum] status
183
- # HTTP status code of response
184
- # @param [Hash] header
185
- # Response headers
186
- # @param [String, #read] body
187
- # Response body
188
- # @return [Object]
189
- # Response object
190
- # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
191
- # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
192
- # @raise [Google::Apis::AuthorizationError] Authorization is required
193
- def process_response(status, header, body)
194
- check_status(status, header, body)
195
- decode_response_body(header['Content-Type'].first, body)
196
- end
197
-
198
- # Check the response and raise error if needed
199
- #
200
- # @param [Fixnum] status
201
- # HTTP status code of response
202
- # @param [Hash] header
203
- # HTTP response headers
204
- # @param [String] body
205
- # HTTP response body
206
- # @param [String] message
207
- # Error message text
208
- # @return [void]
209
- # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
210
- # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
211
- # @raise [Google::Apis::AuthorizationError] Authorization is required
212
- def check_status(status, header = nil, body = nil, message = nil)
213
- # TODO: 304 Not Modified depends on context...
214
- case status
215
- when 200...300
216
- nil
217
- when 301, 302, 303, 307
218
- message ||= sprintf('Redirect to %s', header['Location'])
219
- raise Google::Apis::RedirectError.new(message, status_code: status, header: header, body: body)
220
- when 401
221
- message ||= 'Unauthorized'
222
- raise Google::Apis::AuthorizationError.new(message, status_code: status, header: header, body: body)
223
- when 429
224
- message ||= 'Rate limit exceeded'
225
- raise Google::Apis::RateLimitError.new(message, status_code: status, header: header, body: body)
226
- when 304, 400, 402...500
227
- message ||= 'Invalid request'
228
- raise Google::Apis::ClientError.new(message, status_code: status, header: header, body: body)
229
- when 500...600
230
- message ||= 'Server error'
231
- raise Google::Apis::ServerError.new(message, status_code: status, header: header, body: body)
232
- else
233
- logger.warn(sprintf('Encountered unexpected status code %s', status))
234
- message ||= 'Unknown error'
235
- raise Google::Apis::TransmissionError.new(message, status_code: status, header: header, body: body)
236
- end
237
- end
238
-
239
- # Process the actual response body. Intended to be overridden by subclasses
240
- #
241
- # @param [String] _content_type
242
- # Content type of body
243
- # @param [String, #read] body
244
- # Response body
245
- # @return [Object]
246
- def decode_response_body(_content_type, body)
247
- body
248
- end
249
-
250
- # Process a success response
251
- # @param [Object] result
252
- # Result object
253
- # @return [Object] result if no block given
254
- # @yield [result, nil] if block given
255
- def success(result, &block)
256
- logger.debug { sprintf('Success - %s', safe_object_representation(result)) }
257
- block.call(result, nil) if block_given?
258
- result
259
- end
260
-
261
- # Process an error response
262
- # @param [StandardError] err
263
- # Error object
264
- # @param [Boolean] rethrow
265
- # True if error should be raised again after handling
266
- # @return [void]
267
- # @yield [nil, err] if block given
268
- # @raise [StandardError] if no block
269
- def error(err, rethrow: false, &block)
270
- logger.debug { sprintf('Error - %s', PP.pp(err, '')) }
271
- if err.is_a?(HTTPClient::BadResponseError)
272
- begin
273
- res = err.res
274
- raise Google::Apis::TransmissionError.new(err) if res.nil?
275
- check_status(res.status.to_i, res.header, res.body)
276
- rescue Google::Apis::Error => e
277
- err = e
278
- end
279
- elsif err.is_a?(HTTPClient::TimeoutError) || err.is_a?(SocketError)
280
- err = Google::Apis::TransmissionError.new(err)
281
- end
282
- block.call(nil, err) if block_given?
283
- fail err if rethrow || block.nil?
284
- end
285
-
286
- # Execute the command once.
287
- #
288
- # @private
289
- # @param [HTTPClient] client
290
- # HTTP client
291
- # @return [Object]
292
- # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
293
- # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
294
- # @raise [Google::Apis::AuthorizationError] Authorization is required
295
- def execute_once(client)
296
- body.rewind if body.respond_to?(:rewind)
297
- begin
298
- logger.debug { sprintf('Sending HTTP %s %s', method, url) }
299
- request_header = header.dup
300
- apply_request_options(request_header)
301
-
302
- @http_res = client.request(method.to_s.upcase,
303
- url.to_s,
304
- query: nil,
305
- body: body,
306
- header: request_header,
307
- follow_redirect: true)
308
- logger.debug { @http_res.status }
309
- logger.debug { safe_response_representation @http_res }
310
- response = process_response(@http_res.status.to_i, @http_res.header, @http_res.body)
311
- success(response)
312
- rescue => e
313
- logger.debug { sprintf('Caught error %s', e) }
314
- error(e, rethrow: true)
315
- end
316
- end
317
-
318
- # Update the request with any specified options.
319
- # @param [Hash] req_header
320
- # HTTP headers
321
- # @return [void]
322
- def apply_request_options(req_header)
323
- if options.authorization.respond_to?(:apply!)
324
- options.authorization.apply!(req_header)
325
- elsif options.authorization.is_a?(String)
326
- req_header['Authorization'] = sprintf('Bearer %s', options.authorization)
327
- end
328
- req_header.update(header)
329
- end
330
-
331
- def allow_form_encoding?
332
- [:post, :put].include?(method) && body.nil?
333
- end
334
-
335
- private
336
-
337
- UNSAFE_CLASS_NAMES = [
338
- "Google::Apis::CloudkmsV1::DecryptResponse"
339
- ]
340
-
341
- def safe_object_representation obj
342
- name = obj.class.name
343
- if UNSAFE_CLASS_NAMES.include? name
344
- "#<#{name} (fields redacted)>"
345
- else
346
- PP.pp(obj, "")
347
- end
348
- end
349
-
350
- def safe_response_representation http_res
351
- if respond_to?(:response_class) && response_class.is_a?(Class) &&
352
- UNSAFE_CLASS_NAMES.include?(response_class.name)
353
- return "#<#{http_res.class.name} (fields redacted)>"
354
- end
355
- http_res.inspect
356
- end
357
-
358
- def opencensus_begin_span
359
- return unless OPENCENSUS_AVAILABLE && options.use_opencensus
360
- return if @opencensus_span
361
- return unless OpenCensus::Trace.span_context
362
-
363
- @opencensus_span = OpenCensus::Trace.start_span url.path.to_s
364
- @opencensus_span.kind = OpenCensus::Trace::SpanBuilder::CLIENT
365
- @opencensus_span.put_attribute "http.host", url.host.to_s
366
- @opencensus_span.put_attribute "http.method", method.to_s.upcase
367
- @opencensus_span.put_attribute "http.path", url.path.to_s
368
- if body.respond_to? :bytesize
369
- @opencensus_span.put_message_event \
370
- OpenCensus::Trace::SpanBuilder::SENT, 1, body.bytesize
371
- end
372
-
373
- formatter = OpenCensus::Trace.config.http_formatter
374
- if formatter.respond_to? :header_name
375
- header[formatter.header_name] = formatter.serialize @opencensus_span.context.trace_context
376
- end
377
- rescue StandardError => e
378
- # Log exceptions and continue, so opencensus failures don't cause
379
- # the entire request to fail.
380
- logger.debug { sprintf('Error opening OpenCensus span: %s', e) }
381
- end
382
-
383
- def opencensus_end_span
384
- return unless OPENCENSUS_AVAILABLE
385
- return unless @opencensus_span
386
- return unless OpenCensus::Trace.span_context
387
-
388
- if @http_res
389
- if @http_res.body.respond_to? :bytesize
390
- @opencensus_span.put_message_event \
391
- OpenCensus::Trace::SpanBuilder::RECEIVED, 1, @http_res.body.bytesize
392
- end
393
- status = @http_res.status.to_i
394
- if status > 0
395
- @opencensus_span.set_status map_http_status status
396
- @opencensus_span.put_attribute "http.status_code", status
397
- end
398
- end
399
-
400
- OpenCensus::Trace.end_span @opencensus_span
401
- @opencensus_span = nil
402
- rescue StandardError => e
403
- # Log exceptions and continue, so failures don't cause leaks by
404
- # aborting cleanup.
405
- logger.debug { sprintf('Error finishing OpenCensus span: %s', e) }
406
- end
407
-
408
- def form_encoded?
409
- @form_encoded
410
- end
411
-
412
- def map_http_status http_status
413
- case http_status
414
- when 200..399 then 0 # OK
415
- when 400 then 3 # INVALID_ARGUMENT
416
- when 401 then 16 # UNAUTHENTICATED
417
- when 403 then 7 # PERMISSION_DENIED
418
- when 404 then 5 # NOT_FOUND
419
- when 429 then 8 # RESOURCE_EXHAUSTED
420
- when 501 then 12 # UNIMPLEMENTED
421
- when 503 then 14 # UNAVAILABLE
422
- when 504 then 4 # DEADLINE_EXCEEDED
423
- else 2 # UNKNOWN
424
- end
425
- end
426
-
427
- def normalize_query_values(input)
428
- input.inject({}) do |h, (k, v)|
429
- h[k] = normalize_query_value(v)
430
- h
431
- end
432
- end
433
-
434
- def normalize_query_value(v)
435
- case v
436
- when Array
437
- v.map { |v2| normalize_query_value(v2) }
438
- when nil
439
- nil
440
- else
441
- v.to_s
442
- end
443
- end
444
- end
445
- end
446
- end
447
- end
@@ -1,153 +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 'representable/json'
16
- require 'representable/json/hash'
17
- require 'base64'
18
- require 'date'
19
-
20
- module Google
21
- module Apis
22
- module Core
23
- # Support for serializing hashes + property value/nil/unset tracking
24
- # To be included in representers as a feature.
25
- # @private
26
- module JsonRepresentationSupport
27
- def self.included(base)
28
- base.extend(JsonSupport)
29
- end
30
-
31
- # @private
32
- module JsonSupport
33
- # Returns a customized getter function for Representable. Allows
34
- # indifferent hash/attribute access.
35
- #
36
- # @param [String] name Property name
37
- # @return [Proc]
38
- def getter_fn(name)
39
- ivar_name = "@#{name}".to_sym
40
- lambda do |_|
41
- if respond_to?(:fetch)
42
- fetch(name, instance_variable_get(ivar_name))
43
- else
44
- instance_variable_get(ivar_name)
45
- end
46
- end
47
- end
48
-
49
- # Returns a customized function for Representable that checks whether or not
50
- # an attribute should be serialized. Allows proper patch semantics by distinguishing
51
- # between nil & unset values
52
- #
53
- # @param [String] name Property name
54
- # @return [Proc]
55
- def if_fn(name)
56
- ivar_name = "@#{name}".to_sym
57
- lambda do |opts|
58
- if opts[:user_options] && opts[:user_options][:skip_undefined]
59
- if respond_to?(:key?)
60
- self.key?(name) || instance_variable_defined?(ivar_name)
61
- else
62
- instance_variable_defined?(ivar_name)
63
- end
64
- else
65
- true
66
- end
67
- end
68
- end
69
-
70
- def set_default_options(name, options)
71
- if options[:base64]
72
- options[:render_filter] = ->(value, _doc, *_args) { value.nil? ? nil : Base64.urlsafe_encode64(value) }
73
- options[:parse_filter] = ->(fragment, _doc, *_args) { Base64.urlsafe_decode64(fragment) }
74
- end
75
- if options[:numeric_string]
76
- options[:render_filter] = ->(value, _doc, *_args) { value.nil? ? nil : value.to_s}
77
- options[:parse_filter] = ->(fragment, _doc, *_args) { fragment.to_i }
78
- end
79
- if options[:type] == DateTime
80
- options[:render_filter] = ->(value, _doc, *_args) { value.nil? ? nil : value.is_a?(DateTime) ? value.rfc3339(3) : value.to_s }
81
- options[:parse_filter] = ->(fragment, _doc, *_args) { DateTime.parse(fragment) }
82
- end
83
- if options[:type] == Date
84
- options[:render_filter] = ->(value, _doc, *_args) { value.nil? ? nil : value.to_s}
85
- options[:parse_filter] = ->(fragment, _doc, *_args) { Date.parse(fragment) }
86
- end
87
-
88
- options[:render_nil] = true
89
- options[:getter] = getter_fn(name)
90
- options[:if] = if_fn(name)
91
- end
92
-
93
- # Define a single value property
94
- #
95
- # @param [String] name
96
- # Property name
97
- # @param [Hash] options
98
- def property(name, options = {})
99
- set_default_options(name, options)
100
- super(name, options)
101
- end
102
-
103
- # Define a collection property
104
- #
105
- # @param [String] name
106
- # Property name
107
- # @param [Hash] options
108
- def collection(name, options = {})
109
- set_default_options(name, options)
110
- super(name, options)
111
- end
112
-
113
- # Define a hash property
114
- #
115
- # @param [String] name
116
- # Property name
117
- # @param [Hash] options
118
- def hash(name = nil, options = nil)
119
- return super() unless name # Allow Object.hash
120
- set_default_options(name, options)
121
- super(name, options)
122
- end
123
- end
124
- end
125
-
126
- # Base decorator for JSON representers
127
- #
128
- # @see https://github.com/apotonick/representable
129
- class JsonRepresentation < Representable::Decorator
130
- include Representable::JSON
131
- feature JsonRepresentationSupport
132
- end
133
-
134
- module JsonObjectSupport
135
- def self.included(base)
136
- base.extend(ClassMethods)
137
- end
138
-
139
- module ClassMethods
140
- def from_json(json)
141
- representation = self.const_get(:Representation)
142
- representation.new(self.new).from_json(json, unwrap: self)
143
- end
144
- end
145
-
146
- def to_json(*a)
147
- representation = self.class.const_get(:Representation)
148
- representation.new(self).to_hash(user_options: { skip_undefined: true }).to_json(*a)
149
- end
150
- end
151
- end
152
- end
153
- end