google-api-client 0.51.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 (418) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +0 -14
  3. data/CHANGELOG.md +106 -0
  4. data/OVERVIEW.md +36 -27
  5. data/generated/google/apis/accesscontextmanager_v1/classes.rb +326 -0
  6. data/generated/google/apis/accesscontextmanager_v1/representations.rb +139 -0
  7. data/generated/google/apis/accesscontextmanager_v1.rb +1 -1
  8. data/generated/google/apis/admin_datatransfer_v1/classes.rb +6 -16
  9. data/generated/google/apis/admin_datatransfer_v1/service.rb +3 -3
  10. data/generated/google/apis/admin_datatransfer_v1.rb +2 -2
  11. data/generated/google/apis/admin_directory_v1/classes.rb +453 -321
  12. data/generated/google/apis/admin_directory_v1/representations.rb +15 -15
  13. data/generated/google/apis/admin_directory_v1/service.rb +325 -185
  14. data/generated/google/apis/admin_directory_v1.rb +2 -2
  15. data/generated/google/apis/admin_reports_v1/classes.rb +48 -43
  16. data/generated/google/apis/admin_reports_v1/service.rb +198 -179
  17. data/generated/google/apis/admin_reports_v1.rb +2 -2
  18. data/generated/google/apis/alertcenter_v1beta1.rb +1 -1
  19. data/generated/google/apis/analytics_v3/service.rb +1 -1
  20. data/generated/google/apis/analyticsadmin_v1alpha/classes.rb +10 -2
  21. data/generated/google/apis/analyticsadmin_v1alpha/representations.rb +1 -0
  22. data/generated/google/apis/analyticsadmin_v1alpha/service.rb +17 -13
  23. data/generated/google/apis/analyticsadmin_v1alpha.rb +2 -2
  24. data/generated/google/apis/analyticsdata_v1alpha/classes.rb +11 -11
  25. data/generated/google/apis/analyticsdata_v1alpha.rb +1 -1
  26. data/generated/google/apis/androidmanagement_v1.rb +1 -1
  27. data/generated/google/apis/apigateway_v1/classes.rb +1116 -0
  28. data/generated/google/apis/apigateway_v1/representations.rb +442 -0
  29. data/generated/google/apis/apigateway_v1/service.rb +1172 -0
  30. data/{lib/google/apis/generator/templates/classes.rb.tmpl → generated/google/apis/apigateway_v1.rb} +14 -9
  31. data/generated/google/apis/apigateway_v1beta/classes.rb +22 -17
  32. data/generated/google/apis/apigateway_v1beta/representations.rb +1 -1
  33. data/generated/google/apis/apigateway_v1beta.rb +1 -1
  34. data/generated/google/apis/apigee_v1/classes.rb +95 -22
  35. data/generated/google/apis/apigee_v1/representations.rb +42 -0
  36. data/generated/google/apis/apigee_v1/service.rb +256 -48
  37. data/generated/google/apis/apigee_v1.rb +1 -1
  38. data/generated/google/apis/appengine_v1/classes.rb +7 -0
  39. data/generated/google/apis/appengine_v1/representations.rb +1 -0
  40. data/generated/google/apis/appengine_v1.rb +1 -1
  41. data/generated/google/apis/artifactregistry_v1/classes.rb +242 -0
  42. data/generated/google/apis/artifactregistry_v1/representations.rb +116 -0
  43. data/generated/google/apis/artifactregistry_v1/service.rb +210 -0
  44. data/generated/google/apis/artifactregistry_v1.rb +38 -0
  45. data/generated/google/apis/artifactregistry_v1beta1/classes.rb +0 -120
  46. data/generated/google/apis/artifactregistry_v1beta1/representations.rb +0 -62
  47. data/generated/google/apis/artifactregistry_v1beta1/service.rb +4 -1
  48. data/generated/google/apis/artifactregistry_v1beta1.rb +1 -1
  49. data/generated/google/apis/artifactregistry_v1beta2/classes.rb +0 -120
  50. data/generated/google/apis/artifactregistry_v1beta2/representations.rb +0 -62
  51. data/generated/google/apis/artifactregistry_v1beta2/service.rb +4 -1
  52. data/generated/google/apis/artifactregistry_v1beta2.rb +1 -1
  53. data/generated/google/apis/chat_v1/service.rb +132 -0
  54. data/generated/google/apis/chat_v1.rb +1 -1
  55. data/generated/google/apis/cloudasset_v1/classes.rb +326 -0
  56. data/generated/google/apis/cloudasset_v1/representations.rb +139 -0
  57. data/generated/google/apis/cloudasset_v1.rb +1 -1
  58. data/generated/google/apis/cloudasset_v1beta1/classes.rb +326 -0
  59. data/generated/google/apis/cloudasset_v1beta1/representations.rb +139 -0
  60. data/generated/google/apis/cloudasset_v1beta1.rb +1 -1
  61. data/generated/google/apis/cloudasset_v1p5beta1/classes.rb +326 -0
  62. data/generated/google/apis/cloudasset_v1p5beta1/representations.rb +139 -0
  63. data/generated/google/apis/cloudasset_v1p5beta1.rb +1 -1
  64. data/generated/google/apis/cloudbuild_v1/classes.rb +3 -3
  65. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  66. data/generated/google/apis/cloudbuild_v1alpha1/classes.rb +3 -3
  67. data/generated/google/apis/cloudbuild_v1alpha1.rb +1 -1
  68. data/generated/google/apis/cloudbuild_v1alpha2/classes.rb +3 -3
  69. data/generated/google/apis/cloudbuild_v1alpha2.rb +1 -1
  70. data/generated/google/apis/cloudfunctions_v1/classes.rb +6 -0
  71. data/generated/google/apis/cloudfunctions_v1/representations.rb +1 -0
  72. data/generated/google/apis/cloudfunctions_v1.rb +1 -1
  73. data/generated/google/apis/cloudidentity_v1/classes.rb +240 -0
  74. data/generated/google/apis/cloudidentity_v1/representations.rb +125 -0
  75. data/generated/google/apis/cloudidentity_v1/service.rb +202 -2
  76. data/generated/google/apis/cloudidentity_v1.rb +1 -1
  77. data/generated/google/apis/cloudidentity_v1beta1/classes.rb +1 -1
  78. data/generated/google/apis/cloudidentity_v1beta1/service.rb +8 -2
  79. data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
  80. data/generated/google/apis/cloudkms_v1/classes.rb +0 -6
  81. data/generated/google/apis/cloudkms_v1/representations.rb +0 -1
  82. data/generated/google/apis/cloudkms_v1.rb +1 -1
  83. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +0 -26
  84. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +0 -24
  85. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  86. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +0 -26
  87. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +0 -24
  88. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  89. data/generated/google/apis/cloudresourcemanager_v2/classes.rb +0 -26
  90. data/generated/google/apis/cloudresourcemanager_v2/representations.rb +0 -24
  91. data/generated/google/apis/cloudresourcemanager_v2.rb +1 -1
  92. data/generated/google/apis/cloudresourcemanager_v2beta1/classes.rb +0 -26
  93. data/generated/google/apis/cloudresourcemanager_v2beta1/representations.rb +0 -24
  94. data/generated/google/apis/cloudresourcemanager_v2beta1.rb +1 -1
  95. data/generated/google/apis/cloudscheduler_v1beta1/classes.rb +19 -0
  96. data/generated/google/apis/cloudscheduler_v1beta1/representations.rb +2 -0
  97. data/generated/google/apis/cloudscheduler_v1beta1/service.rb +12 -2
  98. data/generated/google/apis/cloudscheduler_v1beta1.rb +1 -1
  99. data/generated/google/apis/cloudtasks_v2beta2/classes.rb +59 -0
  100. data/generated/google/apis/cloudtasks_v2beta2/representations.rb +19 -0
  101. data/generated/google/apis/cloudtasks_v2beta2.rb +1 -1
  102. data/generated/google/apis/cloudtasks_v2beta3/classes.rb +102 -0
  103. data/generated/google/apis/cloudtasks_v2beta3/representations.rb +35 -0
  104. data/generated/google/apis/cloudtasks_v2beta3/service.rb +16 -2
  105. data/generated/google/apis/cloudtasks_v2beta3.rb +1 -1
  106. data/generated/google/apis/composer_v1beta1/classes.rb +64 -0
  107. data/generated/google/apis/composer_v1beta1/representations.rb +18 -0
  108. data/generated/google/apis/composer_v1beta1.rb +1 -1
  109. data/generated/google/apis/compute_alpha/classes.rb +1071 -341
  110. data/generated/google/apis/compute_alpha/representations.rb +248 -19
  111. data/generated/google/apis/compute_alpha/service.rb +291 -15
  112. data/generated/google/apis/compute_alpha.rb +1 -1
  113. data/generated/google/apis/compute_beta/classes.rb +926 -283
  114. data/generated/google/apis/compute_beta/representations.rb +221 -18
  115. data/generated/google/apis/compute_beta/service.rb +24 -15
  116. data/generated/google/apis/compute_beta.rb +1 -1
  117. data/generated/google/apis/compute_v1/classes.rb +419 -158
  118. data/generated/google/apis/compute_v1/representations.rb +55 -0
  119. data/generated/google/apis/compute_v1/service.rb +9 -7
  120. data/generated/google/apis/compute_v1.rb +1 -1
  121. data/generated/google/apis/container_v1/classes.rb +55 -16
  122. data/generated/google/apis/container_v1/representations.rb +17 -0
  123. data/generated/google/apis/container_v1/service.rb +4 -2
  124. data/generated/google/apis/container_v1.rb +1 -1
  125. data/generated/google/apis/container_v1beta1/classes.rb +31 -20
  126. data/generated/google/apis/container_v1beta1/representations.rb +2 -0
  127. data/generated/google/apis/container_v1beta1/service.rb +6 -2
  128. data/generated/google/apis/container_v1beta1.rb +1 -1
  129. data/generated/google/apis/content_v2_1/classes.rb +450 -7
  130. data/generated/google/apis/content_v2_1/representations.rb +188 -0
  131. data/generated/google/apis/content_v2_1/service.rb +116 -0
  132. data/generated/google/apis/content_v2_1.rb +1 -1
  133. data/generated/google/apis/datacatalog_v1beta1/classes.rb +6 -0
  134. data/generated/google/apis/datacatalog_v1beta1/representations.rb +1 -0
  135. data/generated/google/apis/datacatalog_v1beta1.rb +1 -1
  136. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  137. data/generated/google/apis/datalabeling_v1beta1.rb +1 -1
  138. data/generated/google/apis/datamigration_v1beta1/classes.rb +0 -6
  139. data/generated/google/apis/datamigration_v1beta1/representations.rb +0 -1
  140. data/generated/google/apis/datamigration_v1beta1.rb +1 -1
  141. data/generated/google/apis/dataproc_v1/classes.rb +29 -1
  142. data/generated/google/apis/dataproc_v1/representations.rb +14 -0
  143. data/generated/google/apis/dataproc_v1/service.rb +42 -0
  144. data/generated/google/apis/dataproc_v1.rb +1 -1
  145. data/generated/google/apis/dataproc_v1beta2/classes.rb +29 -1
  146. data/generated/google/apis/dataproc_v1beta2/representations.rb +14 -0
  147. data/generated/google/apis/dataproc_v1beta2/service.rb +42 -0
  148. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  149. data/generated/google/apis/deploymentmanager_alpha/classes.rb +276 -644
  150. data/generated/google/apis/deploymentmanager_alpha/representations.rb +10 -143
  151. data/generated/google/apis/deploymentmanager_alpha/service.rb +247 -398
  152. data/generated/google/apis/deploymentmanager_alpha.rb +6 -5
  153. data/generated/google/apis/deploymentmanager_v2/service.rb +5 -25
  154. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  155. data/generated/google/apis/deploymentmanager_v2beta/service.rb +8 -40
  156. data/generated/google/apis/deploymentmanager_v2beta.rb +1 -1
  157. data/generated/google/apis/dialogflow_v2/classes.rb +4339 -284
  158. data/generated/google/apis/dialogflow_v2/representations.rb +2090 -211
  159. data/generated/google/apis/dialogflow_v2.rb +1 -1
  160. data/generated/google/apis/dialogflow_v2beta1/classes.rb +4341 -286
  161. data/generated/google/apis/dialogflow_v2beta1/representations.rb +2097 -218
  162. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  163. data/generated/google/apis/dialogflow_v3/classes.rb +11752 -0
  164. data/generated/google/apis/dialogflow_v3/representations.rb +5158 -0
  165. data/generated/google/apis/dialogflow_v3/service.rb +3414 -0
  166. data/generated/google/apis/{bigqueryreservation_v1alpha2.rb → dialogflow_v3.rb} +13 -12
  167. data/generated/google/apis/dialogflow_v3beta1/classes.rb +5147 -1554
  168. data/generated/google/apis/dialogflow_v3beta1/representations.rb +1966 -221
  169. data/generated/google/apis/dialogflow_v3beta1/service.rb +581 -0
  170. data/generated/google/apis/dialogflow_v3beta1.rb +1 -1
  171. data/generated/google/apis/dlp_v2/service.rb +297 -10
  172. data/generated/google/apis/dlp_v2.rb +1 -1
  173. data/generated/google/apis/dns_v1/classes.rb +65 -0
  174. data/generated/google/apis/dns_v1/representations.rb +32 -0
  175. data/generated/google/apis/dns_v1.rb +1 -1
  176. data/generated/google/apis/documentai_v1beta2/classes.rb +217 -186
  177. data/generated/google/apis/documentai_v1beta2/representations.rb +107 -24
  178. data/generated/google/apis/documentai_v1beta2.rb +1 -1
  179. data/generated/google/apis/documentai_v1beta3/classes.rb +238 -201
  180. data/generated/google/apis/documentai_v1beta3/representations.rb +107 -24
  181. data/generated/google/apis/documentai_v1beta3/service.rb +81 -2
  182. data/generated/google/apis/documentai_v1beta3.rb +1 -1
  183. data/generated/google/apis/eventarc_v1beta1/classes.rb +8 -9
  184. data/generated/google/apis/eventarc_v1beta1/service.rb +25 -5
  185. data/generated/google/apis/eventarc_v1beta1.rb +1 -1
  186. data/generated/google/apis/file_v1/classes.rb +61 -0
  187. data/generated/google/apis/file_v1/representations.rb +19 -0
  188. data/generated/google/apis/file_v1.rb +1 -1
  189. data/generated/google/apis/gameservices_v1/service.rb +14 -14
  190. data/generated/google/apis/gameservices_v1.rb +1 -1
  191. data/generated/google/apis/gameservices_v1beta/service.rb +14 -14
  192. data/generated/google/apis/gameservices_v1beta.rb +1 -1
  193. data/generated/google/apis/genomics_v2alpha1/classes.rb +11 -7
  194. data/generated/google/apis/genomics_v2alpha1.rb +1 -1
  195. data/generated/google/apis/healthcare_v1/classes.rb +0 -6
  196. data/generated/google/apis/healthcare_v1/representations.rb +0 -1
  197. data/generated/google/apis/healthcare_v1/service.rb +13 -12
  198. data/generated/google/apis/healthcare_v1.rb +1 -1
  199. data/generated/google/apis/healthcare_v1beta1/classes.rb +45 -19
  200. data/generated/google/apis/healthcare_v1beta1/representations.rb +3 -1
  201. data/generated/google/apis/healthcare_v1beta1/service.rb +37 -37
  202. data/generated/google/apis/healthcare_v1beta1.rb +1 -1
  203. data/generated/google/apis/iap_v1/classes.rb +0 -6
  204. data/generated/google/apis/iap_v1/representations.rb +0 -1
  205. data/generated/google/apis/iap_v1.rb +1 -1
  206. data/generated/google/apis/iap_v1beta1/classes.rb +0 -6
  207. data/generated/google/apis/iap_v1beta1/representations.rb +0 -1
  208. data/generated/google/apis/iap_v1beta1.rb +1 -1
  209. data/generated/google/apis/localservices_v1.rb +4 -1
  210. data/generated/google/apis/manufacturers_v1/classes.rb +2 -2
  211. data/generated/google/apis/manufacturers_v1.rb +1 -1
  212. data/generated/google/apis/metastore_v1beta/classes.rb +1151 -0
  213. data/generated/google/apis/metastore_v1beta/representations.rb +479 -0
  214. data/generated/google/apis/metastore_v1beta/service.rb +800 -0
  215. data/{lib/google/apis/core/logging.rb → generated/google/apis/metastore_v1beta.rb} +15 -10
  216. data/generated/google/apis/ml_v1/classes.rb +51 -18
  217. data/generated/google/apis/ml_v1/representations.rb +16 -0
  218. data/generated/google/apis/ml_v1.rb +1 -1
  219. data/generated/google/apis/monitoring_v3/classes.rb +10 -6
  220. data/generated/google/apis/monitoring_v3.rb +1 -1
  221. data/generated/google/apis/notebooks_v1/classes.rb +13 -0
  222. data/generated/google/apis/notebooks_v1/representations.rb +12 -0
  223. data/generated/google/apis/notebooks_v1/service.rb +34 -0
  224. data/generated/google/apis/notebooks_v1.rb +1 -1
  225. data/generated/google/apis/privateca_v1beta1/classes.rb +2 -1
  226. data/generated/google/apis/privateca_v1beta1.rb +1 -1
  227. data/generated/google/apis/prod_tt_sasportal_v1alpha1.rb +1 -1
  228. data/generated/google/apis/recommendationengine_v1beta1/service.rb +2 -1
  229. data/generated/google/apis/recommendationengine_v1beta1.rb +1 -1
  230. data/generated/google/apis/recommender_v1beta1/service.rb +317 -0
  231. data/generated/google/apis/recommender_v1beta1.rb +1 -1
  232. data/generated/google/apis/redis_v1/classes.rb +2 -2
  233. data/generated/google/apis/redis_v1.rb +1 -1
  234. data/generated/google/apis/redis_v1beta1/classes.rb +2 -2
  235. data/generated/google/apis/redis_v1beta1.rb +1 -1
  236. data/generated/google/apis/safebrowsing_v4/classes.rb +277 -277
  237. data/generated/google/apis/safebrowsing_v4/representations.rb +128 -128
  238. data/generated/google/apis/safebrowsing_v4/service.rb +44 -44
  239. data/generated/google/apis/safebrowsing_v4.rb +1 -1
  240. data/generated/google/apis/searchconsole_v1/classes.rb +7 -0
  241. data/generated/google/apis/searchconsole_v1/representations.rb +1 -0
  242. data/generated/google/apis/searchconsole_v1.rb +1 -1
  243. data/generated/google/apis/securitycenter_v1/classes.rb +18 -10
  244. data/generated/google/apis/securitycenter_v1/representations.rb +1 -0
  245. data/generated/google/apis/securitycenter_v1/service.rb +30 -30
  246. data/generated/google/apis/securitycenter_v1.rb +1 -1
  247. data/generated/google/apis/securitycenter_v1beta1/classes.rb +7 -0
  248. data/generated/google/apis/securitycenter_v1beta1/representations.rb +1 -0
  249. data/generated/google/apis/securitycenter_v1beta1.rb +1 -1
  250. data/generated/google/apis/securitycenter_v1beta2/classes.rb +7 -0
  251. data/generated/google/apis/securitycenter_v1beta2/representations.rb +1 -0
  252. data/generated/google/apis/securitycenter_v1beta2.rb +1 -1
  253. data/generated/google/apis/serviceconsumermanagement_v1beta1/classes.rb +11 -10
  254. data/generated/google/apis/serviceconsumermanagement_v1beta1.rb +1 -1
  255. data/generated/google/apis/servicecontrol_v1/service.rb +2 -2
  256. data/generated/google/apis/servicecontrol_v1.rb +3 -3
  257. data/generated/google/apis/servicecontrol_v2/service.rb +2 -2
  258. data/generated/google/apis/servicecontrol_v2.rb +3 -3
  259. data/generated/google/apis/servicedirectory_v1/classes.rb +721 -0
  260. data/generated/google/apis/servicedirectory_v1/representations.rb +304 -0
  261. data/generated/google/apis/servicedirectory_v1/service.rb +957 -0
  262. data/{lib/google/apis/generator/templates/representations.rb.tmpl → generated/google/apis/servicedirectory_v1.rb} +15 -12
  263. data/generated/google/apis/servicemanagement_v1/classes.rb +11 -10
  264. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  265. data/generated/google/apis/servicenetworking_v1/classes.rb +1 -1
  266. data/generated/google/apis/servicenetworking_v1.rb +1 -1
  267. data/generated/google/apis/servicenetworking_v1beta/classes.rb +1 -1
  268. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  269. data/generated/google/apis/serviceusage_v1/classes.rb +11 -10
  270. data/generated/google/apis/serviceusage_v1.rb +1 -1
  271. data/generated/google/apis/serviceusage_v1beta1/classes.rb +11 -10
  272. data/generated/google/apis/serviceusage_v1beta1.rb +1 -1
  273. data/generated/google/apis/slides_v1/classes.rb +9 -3
  274. data/generated/google/apis/slides_v1.rb +1 -1
  275. data/generated/google/apis/speech_v1p1beta1/classes.rb +0 -22
  276. data/generated/google/apis/speech_v1p1beta1/representations.rb +0 -2
  277. data/generated/google/apis/speech_v1p1beta1.rb +1 -1
  278. data/generated/google/apis/sqladmin_v1beta4/classes.rb +7 -7
  279. data/generated/google/apis/sqladmin_v1beta4/service.rb +4 -1
  280. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  281. data/generated/google/apis/storagetransfer_v1/classes.rb +25 -0
  282. data/generated/google/apis/storagetransfer_v1/representations.rb +3 -0
  283. data/generated/google/apis/storagetransfer_v1.rb +1 -1
  284. data/generated/google/apis/testing_v1/classes.rb +1 -1
  285. data/generated/google/apis/testing_v1.rb +1 -1
  286. data/generated/google/apis/trafficdirector_v2/service.rb +1 -1
  287. data/generated/google/apis/trafficdirector_v2.rb +2 -2
  288. data/generated/google/apis/transcoder_v1beta1/classes.rb +12 -2
  289. data/generated/google/apis/transcoder_v1beta1/representations.rb +1 -0
  290. data/generated/google/apis/transcoder_v1beta1.rb +1 -1
  291. data/generated/google/apis/translate_v3/classes.rb +1 -1
  292. data/generated/google/apis/translate_v3.rb +1 -1
  293. data/generated/google/apis/translate_v3beta1/classes.rb +1 -1
  294. data/generated/google/apis/translate_v3beta1.rb +1 -1
  295. data/generated/google/apis/webmasters_v3/classes.rb +8 -0
  296. data/generated/google/apis/webmasters_v3/representations.rb +1 -0
  297. data/generated/google/apis/workflows_v1beta/classes.rb +4 -4
  298. data/generated/google/apis/workflows_v1beta.rb +1 -1
  299. data/generated/google/apis/youtube_v3/classes.rb +18 -143
  300. data/generated/google/apis/youtube_v3/representations.rb +0 -57
  301. data/generated/google/apis/youtube_v3/service.rb +0 -43
  302. data/generated/google/apis/youtube_v3.rb +1 -1
  303. data/lib/google/apis/version.rb +1 -23
  304. metadata +39 -267
  305. data/.github/CONTRIBUTING.md +0 -31
  306. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -36
  307. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -21
  308. data/.github/ISSUE_TEMPLATE/support_request.md +0 -7
  309. data/.github/workflows/autoapprove.yml +0 -49
  310. data/.github/workflows/release-please.yml +0 -79
  311. data/.gitignore +0 -23
  312. data/.kokoro/build.bat +0 -11
  313. data/.kokoro/build.sh +0 -4
  314. data/.kokoro/continuous/common.cfg +0 -25
  315. data/.kokoro/continuous/linux.cfg +0 -25
  316. data/.kokoro/continuous/osx.cfg +0 -8
  317. data/.kokoro/continuous/post.cfg +0 -30
  318. data/.kokoro/continuous/windows.cfg +0 -29
  319. data/.kokoro/osx.sh +0 -4
  320. data/.kokoro/presubmit/common.cfg +0 -24
  321. data/.kokoro/presubmit/linux.cfg +0 -24
  322. data/.kokoro/presubmit/osx.cfg +0 -8
  323. data/.kokoro/presubmit/windows.cfg +0 -29
  324. data/.kokoro/release.cfg +0 -94
  325. data/.kokoro/trampoline.bat +0 -10
  326. data/.kokoro/trampoline.sh +0 -4
  327. data/.repo-metadata.json +0 -5
  328. data/.rspec +0 -2
  329. data/.rubocop.yml +0 -12
  330. data/.rubocop_todo.yml +0 -63
  331. data/CODE_OF_CONDUCT.md +0 -43
  332. data/Gemfile +0 -55
  333. data/MIGRATING.md +0 -215
  334. data/README.md +0 -402
  335. data/Rakefile +0 -131
  336. data/api_list_config.yaml +0 -9
  337. data/api_names.yaml +0 -1082
  338. data/bin/generate-api +0 -194
  339. data/docs/api-keys.md +0 -20
  340. data/docs/auth.md +0 -53
  341. data/docs/client-secrets.md +0 -69
  342. data/docs/getting-started.md +0 -340
  343. data/docs/installation.md +0 -0
  344. data/docs/logging.md +0 -34
  345. data/docs/media-upload.md +0 -25
  346. data/docs/oauth-installed.md +0 -191
  347. data/docs/oauth-server.md +0 -133
  348. data/docs/oauth-web.md +0 -280
  349. data/docs/oauth.md +0 -268
  350. data/docs/pagination.md +0 -29
  351. data/docs/performance.md +0 -25
  352. data/generated/google/apis/bigqueryreservation_v1alpha2/classes.rb +0 -426
  353. data/generated/google/apis/bigqueryreservation_v1alpha2/representations.rb +0 -195
  354. data/generated/google/apis/bigqueryreservation_v1alpha2/service.rb +0 -622
  355. data/google-api-client.gemspec +0 -36
  356. data/lib/google/api_client/auth/installed_app.rb +0 -143
  357. data/lib/google/api_client/auth/key_utils.rb +0 -94
  358. data/lib/google/api_client/auth/storage.rb +0 -104
  359. data/lib/google/api_client/auth/storages/file_store.rb +0 -57
  360. data/lib/google/api_client/auth/storages/redis_store.rb +0 -59
  361. data/lib/google/api_client/client_secrets.rb +0 -176
  362. data/lib/google/apis/core/api_command.rb +0 -209
  363. data/lib/google/apis/core/base_service.rb +0 -447
  364. data/lib/google/apis/core/batch.rb +0 -236
  365. data/lib/google/apis/core/composite_io.rb +0 -97
  366. data/lib/google/apis/core/download.rb +0 -118
  367. data/lib/google/apis/core/hashable.rb +0 -44
  368. data/lib/google/apis/core/http_command.rb +0 -447
  369. data/lib/google/apis/core/json_representation.rb +0 -153
  370. data/lib/google/apis/core/multipart.rb +0 -135
  371. data/lib/google/apis/core/upload.rb +0 -273
  372. data/lib/google/apis/errors.rb +0 -89
  373. data/lib/google/apis/generator/annotator.rb +0 -339
  374. data/lib/google/apis/generator/helpers.rb +0 -76
  375. data/lib/google/apis/generator/model.rb +0 -187
  376. data/lib/google/apis/generator/template.rb +0 -124
  377. data/lib/google/apis/generator/templates/_class.tmpl +0 -43
  378. data/lib/google/apis/generator/templates/_method.tmpl +0 -92
  379. data/lib/google/apis/generator/templates/_representation.tmpl +0 -51
  380. data/lib/google/apis/generator/templates/_representation_stub.tmpl +0 -17
  381. data/lib/google/apis/generator/templates/_representation_type.tmpl +0 -10
  382. data/lib/google/apis/generator/templates/module.rb.tmpl +0 -40
  383. data/lib/google/apis/generator/templates/service.rb.tmpl +0 -61
  384. data/lib/google/apis/generator.rb +0 -71
  385. data/lib/google/apis/options.rb +0 -116
  386. data/lib/google/apis.rb +0 -58
  387. data/rakelib/devsite/devsite_builder.rb +0 -126
  388. data/rakelib/devsite/link_checker.rb +0 -64
  389. data/rakelib/devsite/repo_metadata.rb +0 -56
  390. data/rakelib/metrics.rake +0 -22
  391. data/rakelib/rubocop.rake +0 -10
  392. data/rakelib/spec.rake +0 -11
  393. data/rakelib/yard.rake +0 -11
  394. data/samples/cli/.env +0 -4
  395. data/samples/cli/Gemfile +0 -7
  396. data/samples/cli/README.md +0 -51
  397. data/samples/cli/google-api-samples +0 -32
  398. data/samples/cli/lib/base_cli.rb +0 -95
  399. data/samples/cli/lib/samples/adsense.rb +0 -99
  400. data/samples/cli/lib/samples/analytics.rb +0 -80
  401. data/samples/cli/lib/samples/androidpublisher.rb +0 -47
  402. data/samples/cli/lib/samples/bigquery.rb +0 -101
  403. data/samples/cli/lib/samples/calendar.rb +0 -83
  404. data/samples/cli/lib/samples/drive.rb +0 -82
  405. data/samples/cli/lib/samples/gmail.rb +0 -157
  406. data/samples/cli/lib/samples/pubsub.rb +0 -114
  407. data/samples/cli/lib/samples/sheets.rb +0 -61
  408. data/samples/cli/lib/samples/translate.rb +0 -44
  409. data/samples/cli/lib/samples/vision.rb +0 -69
  410. data/samples/cli/lib/samples/you_tube.rb +0 -47
  411. data/samples/web/Gemfile +0 -9
  412. data/samples/web/README.md +0 -44
  413. data/samples/web/app.rb +0 -120
  414. data/samples/web/views/calendar.erb +0 -34
  415. data/samples/web/views/drive.erb +0 -33
  416. data/samples/web/views/home.erb +0 -34
  417. data/samples/web/views/layout.erb +0 -40
  418. data/synth.py +0 -40
@@ -1,143 +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 'webrick'
16
-
17
- launchy_available =
18
- begin
19
- require 'launchy'
20
- true
21
- rescue LoadError
22
- warn "Attempted to require google/api_client/auth/installed_app.rb when" \
23
- " launchy is not available. The InstalledAppFlow class is disabled."
24
- false
25
- end
26
-
27
- module Google
28
- class APIClient
29
-
30
- # Small helper for the sample apps for performing OAuth 2.0 flows from the command
31
- # line or in any other installed app environment.
32
- #
33
- # This class is used in some sample apps and tests but is not really part
34
- # of the client libraries, and probably does not belong here. As such, it
35
- # is deprecated. If you do choose to use it, note that you must include the
36
- # `launchy` gem in your bundle, as it is required by this class but not
37
- # listed in the google-api-client gem's requirements.
38
- #
39
- # @example
40
- #
41
- # flow = Google::APIClient::InstalledAppFlow.new(
42
- # :client_id => '691380668085.apps.googleusercontent.com',
43
- # :client_secret => '...',
44
- # :scope => 'https://www.googleapis.com/auth/drive'
45
- # )
46
- # authorization = flow.authorize
47
- # Drive = Google::Apis::DriveV2
48
- # drive = Drive::DriveService.new
49
- # drive.authorization = authorization
50
- #
51
- # @deprecated Use google-auth-library-ruby instead
52
- class InstalledAppFlow
53
-
54
- RESPONSE_BODY = <<-HTML
55
- <html>
56
- <head>
57
- <script>
58
- function closeWindow() {
59
- window.open('', '_self', '');
60
- window.close();
61
- }
62
- setTimeout(closeWindow, 10);
63
- </script>
64
- </head>
65
- <body>You may close this window.</body>
66
- </html>
67
- HTML
68
-
69
- ##
70
- # Configure the flow
71
- #
72
- # @param [Hash] options The configuration parameters for the client.
73
- # @option options [Fixnum] :port
74
- # Port to run the embedded server on. Defaults to 9292
75
- # @option options [String] :client_id
76
- # A unique identifier issued to the client to identify itself to the
77
- # authorization server.
78
- # @option options [String] :client_secret
79
- # A shared symmetric secret issued by the authorization server,
80
- # which is used to authenticate the client.
81
- # @option options [String] :scope
82
- # The scope of the access request, expressed either as an Array
83
- # or as a space-delimited String.
84
- #
85
- # @see Signet::OAuth2::Client
86
- def initialize(options)
87
- @port = options[:port] || 9292
88
- @authorization = Signet::OAuth2::Client.new({
89
- :authorization_uri => 'https://accounts.google.com/o/oauth2/auth',
90
- :token_credential_uri => 'https://accounts.google.com/o/oauth2/token',
91
- :redirect_uri => "http://localhost:#{@port}/"}.update(options)
92
- )
93
- end
94
-
95
- ##
96
- # Request authorization. Opens a browser and waits for response.
97
- #
98
- # @param [Google::APIClient::Storage] storage
99
- # Optional object that responds to :write_credentials, used to serialize
100
- # the OAuth 2 credentials after completing the flow.
101
- #
102
- # @return [Signet::OAuth2::Client]
103
- # Authorization instance, nil if user cancelled.
104
- def authorize(storage=nil, options={})
105
- auth = @authorization
106
-
107
- server = WEBrick::HTTPServer.new(
108
- :Port => @port,
109
- :BindAddress =>"localhost",
110
- :Logger => WEBrick::Log.new(STDOUT, 0),
111
- :AccessLog => []
112
- )
113
- begin
114
- trap("INT") { server.shutdown }
115
-
116
- server.mount_proc '/' do |req, res|
117
- auth.code = req.query['code']
118
- if auth.code
119
- auth.fetch_access_token!
120
- end
121
- res.status = WEBrick::HTTPStatus::RC_ACCEPTED
122
- res.body = RESPONSE_BODY
123
- server.stop
124
- end
125
-
126
- Launchy.open(auth.authorization_uri(options).to_s)
127
- server.start
128
- ensure
129
- server.shutdown
130
- end
131
- if @authorization.access_token
132
- if storage.respond_to?(:write_credentials)
133
- storage.write_credentials(@authorization)
134
- end
135
- return @authorization
136
- else
137
- return nil
138
- end
139
- end
140
- end
141
-
142
- end
143
- end if launchy_available
@@ -1,94 +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
- module Google
16
- class APIClient
17
- ##
18
- # Helper for loading keys from the PKCS12 files downloaded when
19
- # setting up service accounts at the APIs Console.
20
- #
21
- # @deprecated Use google-auth-library-ruby instead
22
- module KeyUtils
23
- ##
24
- # Loads a key from PKCS12 file, assuming a single private key
25
- # is present.
26
- #
27
- # @param [String] keyfile
28
- # Path of the PKCS12 file to load. If not a path to an actual file,
29
- # assumes the string is the content of the file itself.
30
- # @param [String] passphrase
31
- # Passphrase for unlocking the private key
32
- #
33
- # @return [OpenSSL::PKey] The private key for signing assertions.
34
- def self.load_from_pkcs12(keyfile, passphrase)
35
- load_key(keyfile, passphrase) do |content, pass_phrase|
36
- OpenSSL::PKCS12.new(content, pass_phrase).key
37
- end
38
- end
39
-
40
-
41
- ##
42
- # Loads a key from a PEM file.
43
- #
44
- # @param [String] keyfile
45
- # Path of the PEM file to load. If not a path to an actual file,
46
- # assumes the string is the content of the file itself.
47
- # @param [String] passphrase
48
- # Passphrase for unlocking the private key
49
- #
50
- # @return [OpenSSL::PKey] The private key for signing assertions.
51
- #
52
- def self.load_from_pem(keyfile, passphrase)
53
- load_key(keyfile, passphrase) do | content, pass_phrase|
54
- OpenSSL::PKey::RSA.new(content, pass_phrase)
55
- end
56
- end
57
-
58
- private
59
-
60
- ##
61
- # Helper for loading keys from file or memory. Accepts a block
62
- # to handle the specific file format.
63
- #
64
- # @param [String] keyfile
65
- # Path of thefile to load. If not a path to an actual file,
66
- # assumes the string is the content of the file itself.
67
- # @param [String] passphrase
68
- # Passphrase for unlocking the private key
69
- #
70
- # @yield [String, String]
71
- # Key file & passphrase to extract key from
72
- # @yieldparam [String] keyfile
73
- # Contents of the file
74
- # @yieldparam [String] passphrase
75
- # Passphrase to unlock key
76
- # @yieldreturn [OpenSSL::PKey]
77
- # Private key
78
- #
79
- # @return [OpenSSL::PKey] The private key for signing assertions.
80
- def self.load_key(keyfile, passphrase, &block)
81
- begin
82
- begin
83
- content = File.open(keyfile, 'rb') { |io| io.read }
84
- rescue
85
- content = keyfile
86
- end
87
- block.call(content, passphrase)
88
- rescue OpenSSL::OpenSSLError
89
- raise ArgumentError.new("Invalid keyfile or passphrase")
90
- end
91
- end
92
- end
93
- end
94
- end
@@ -1,104 +0,0 @@
1
- # Copyright 2013 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 'signet/oauth_2/client'
16
-
17
- module Google
18
- class APIClient
19
- ##
20
- # Represents cached OAuth 2 tokens stored on local disk in a
21
- # JSON serialized file. Meant to resemble the serialized format
22
- # http://google-api-python-client.googlecode.com/hg/docs/epy/oauth2client.file.Storage-class.html
23
- #
24
- # @deprecated Use google-auth-library-ruby instead
25
- class Storage
26
-
27
- AUTHORIZATION_URI = 'https://accounts.google.com/o/oauth2/auth'
28
- TOKEN_CREDENTIAL_URI = 'https://accounts.google.com/o/oauth2/token'
29
-
30
- # @return [Object] Storage object.
31
- attr_accessor :store
32
-
33
- # @return [Signet::OAuth2::Client]
34
- attr_reader :authorization
35
-
36
- ##
37
- # Initializes the Storage object.
38
- #
39
- # @param [Object] store
40
- # Storage object
41
- def initialize(store)
42
- @store= store
43
- @authorization = nil
44
- end
45
-
46
- ##
47
- # Write the credentials to the specified store.
48
- #
49
- # @param [Signet::OAuth2::Client] authorization
50
- # Optional authorization instance. If not provided, the authorization
51
- # already associated with this instance will be written.
52
- def write_credentials(authorization=nil)
53
- @authorization = authorization if authorization
54
- if @authorization.respond_to?(:refresh_token) && @authorization.refresh_token
55
- store.write_credentials(credentials_hash)
56
- end
57
- end
58
-
59
- ##
60
- # Loads credentials and authorizes an client.
61
- # @return [Object] Signet::OAuth2::Client or NIL
62
- def authorize
63
- @authorization = nil
64
- cached_credentials = load_credentials
65
- if cached_credentials && cached_credentials.size > 0
66
- @authorization = Signet::OAuth2::Client.new(cached_credentials)
67
- @authorization.issued_at = Time.at(cached_credentials['issued_at'].to_i)
68
- self.refresh_authorization if @authorization.expired?
69
- end
70
- return @authorization
71
- end
72
-
73
- ##
74
- # refresh credentials and save them to store
75
- def refresh_authorization
76
- authorization.refresh!
77
- self.write_credentials
78
- end
79
-
80
- private
81
-
82
- ##
83
- # Attempt to read in credentials from the specified store.
84
- def load_credentials
85
- store.load_credentials
86
- end
87
-
88
- ##
89
- # @return [Hash] with credentials
90
- def credentials_hash
91
- {
92
- :access_token => authorization.access_token,
93
- :authorization_uri => AUTHORIZATION_URI,
94
- :client_id => authorization.client_id,
95
- :client_secret => authorization.client_secret,
96
- :expires_in => authorization.expires_in,
97
- :refresh_token => authorization.refresh_token,
98
- :token_credential_uri => TOKEN_CREDENTIAL_URI,
99
- :issued_at => authorization.issued_at.to_i
100
- }
101
- end
102
- end
103
- end
104
- end
@@ -1,57 +0,0 @@
1
- # Copyright 2013 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
-
17
- module Google
18
- class APIClient
19
- ##
20
- # Represents cached OAuth 2 tokens stored on local disk in a
21
- # JSON serialized file. Meant to resemble the serialized format
22
- # http://google-api-python-client.googlecode.com/hg/docs/epy/oauth2client.file.Storage-class.html
23
- #
24
- # @deprecated Use google-auth-library-ruby instead
25
- class FileStore
26
-
27
- attr_accessor :path
28
-
29
- ##
30
- # Initializes the FileStorage object.
31
- #
32
- # @param [String] path
33
- # Path to the credentials file.
34
- def initialize(path)
35
- @path= path
36
- end
37
-
38
- ##
39
- # Attempt to read in credentials from the specified file.
40
- def load_credentials
41
- open(path, 'r') { |f| JSON.parse(f.read) }
42
- rescue
43
- nil
44
- end
45
-
46
- ##
47
- # Write the credentials to the specified file.
48
- #
49
- # @param [Hash] credentials_hash
50
- def write_credentials(credentials_hash)
51
- open(self.path, 'w+') do |f|
52
- f.write(credentials_hash.to_json)
53
- end
54
- end
55
- end
56
- end
57
- end
@@ -1,59 +0,0 @@
1
- # Copyright 2013 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
-
17
- module Google
18
- class APIClient
19
- # @deprecated Use google-auth-library-ruby instead
20
- class RedisStore
21
-
22
- DEFAULT_REDIS_CREDENTIALS_KEY = "google_api_credentials"
23
-
24
- attr_accessor :redis
25
-
26
- ##
27
- # Initializes the RedisStore object.
28
- #
29
- # @param [Object] redis
30
- # Redis instance
31
- # @param [Object] key
32
- # Optional key to store credentials under. Defaults to 'google_api_credentials'
33
- def initialize(redis, key = nil)
34
- @redis= redis
35
- @redis_credentials_key = key
36
- end
37
-
38
- ##
39
- # Attempt to read in credentials from redis.
40
- # @return [Hash]
41
- def load_credentials
42
- credentials = redis.get redis_credentials_key
43
- JSON.parse(credentials) if credentials
44
- end
45
-
46
- def redis_credentials_key
47
- @redis_credentials_key || DEFAULT_REDIS_CREDENTIALS_KEY
48
- end
49
-
50
- ##
51
- # Write the credentials to redis.
52
- #
53
- # @param [Hash] credentials_hash
54
- def write_credentials(credentials_hash)
55
- redis.set(redis_credentials_key, credentials_hash.to_json)
56
- end
57
- end
58
- end
59
- end
@@ -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