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,80 +0,0 @@
1
- # Copyright 2016 Google Inc.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- require 'google/apis/analytics_v3'
16
- require 'base_cli'
17
-
18
- module Samples
19
- # Examples for the Google Analytics APIs
20
- #
21
- # Sample usage session:
22
- #
23
- # $ ./google-api-samples analytics show_visits 55622900 --start='2015-12-01' --end='2015-12-08'
24
- # ga:date ga:sessions ga:users ga:newUsers ga:percentNewSessions ga:sessionDuration ga:avgSessionDuration
25
- # 20151201 0 0 0 0.0 0.0 0.0
26
- # 20151202 0 0 0 0.0 0.0 0.0
27
- # 20151203 1 1 1 100.0 0.0 0.0
28
- # 20151204 2 2 1 50.0 616.0 308.0
29
- # 20151205 0 0 0 0.0 0.0 0.0
30
- # 20151206 1 1 1 100.0 0.0 0.0
31
- # 20151207 0 0 0 0.0 0.0 0.0
32
- # 20151208 2 2 1 50.0 0.0 0.0
33
- #
34
- class Analytics < BaseCli
35
- Analytics = Google::Apis::AnalyticsV3
36
-
37
- desc 'show_visits PROFILE_ID', 'Show visits for the given analytics profile ID'
38
- method_option :start, type: :string, required: true
39
- method_option :end, type: :string, required: true
40
- def show_visits(profile_id)
41
- analytics = Analytics::AnalyticsService.new
42
- analytics.authorization = user_credentials_for(Analytics::AUTH_ANALYTICS)
43
-
44
- dimensions = %w(ga:date)
45
- metrics = %w(ga:sessions ga:users ga:newUsers ga:percentNewSessions
46
- ga:sessionDuration ga:avgSessionDuration)
47
- sort = %w(ga:date)
48
- result = analytics.get_ga_data("ga:#{profile_id}",
49
- options[:start],
50
- options[:end],
51
- metrics.join(','),
52
- dimensions: dimensions.join(','),
53
- sort: sort.join(','))
54
-
55
- data = []
56
- data.push(result.column_headers.map { |h| h.name })
57
- data.push(*result.rows)
58
- print_table(data)
59
- end
60
-
61
- desc 'show_realtime_visits PROFILE_ID', 'Show realtime visits for the given analytics profile ID'
62
- def show_realtime_visits(profile_id)
63
- analytics = Analytics::AnalyticsService.new
64
- analytics.authorization = user_credentials_for(Analytics::AUTH_ANALYTICS)
65
-
66
- dimensions = %w(rt:medium rt:pagePath)
67
- metrics = %w(rt:activeUsers)
68
- sort = %w(rt:medium rt:pagePath)
69
- result = analytics.get_realtime_data("ga:#{profile_id}",
70
- metrics.join(','),
71
- dimensions: dimensions.join(','),
72
- sort: sort.join(','))
73
-
74
- data = []
75
- data.push(result.column_headers.map { |h| h.name })
76
- data.push(*result.rows)
77
- print_table(data)
78
- end
79
- end
80
- end
@@ -1,47 +0,0 @@
1
- # Copyright 2016 Google Inc.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- require 'google/apis/androidpublisher_v2'
16
- require 'base_cli'
17
-
18
-
19
- module Samples
20
- # Examples for the Google Play Developer API
21
- #
22
- # Sample usage:
23
- #
24
- # $ ./google-api-samples androidpublisher upload --apk-path /path/to/com.spiffygame.apk --package-name com.spiffygame
25
- class Androidpublisher < BaseCli
26
- Androidpublisher = Google::Apis::AndroidpublisherV2
27
-
28
- desc 'upload', 'Upload an apk to Google Play'
29
- method_option :apk_path, type: :string
30
- method_option :package_name, type: :string
31
- def upload_apk
32
- android_publisher = Androidpublisher::AndroidPublisherService.new
33
- android_publisher.authorization = user_credentials_for(Androidpublisher::AUTH_ANDROIDPUBLISHER)
34
-
35
- apk_path = options[:apk_path]
36
- package_name = options[:package_name]
37
-
38
- edit = android_publisher.insert_edit(package_name)
39
- apk = android_publisher.upload_apk(package_name, edit.id, upload_source: apk_path)
40
- android_publisher.update_track(package_name, edit.id, :production,
41
- Androidpublisher::Track.new(track: "production", version_codes: [apk.version_code]))
42
- android_publisher.commit_edit(package_name, edit.id)
43
-
44
- say "Upload complete"
45
- end
46
- end
47
- end
@@ -1,101 +0,0 @@
1
- # Copyright 2016 Google Inc.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- require 'google/apis/bigquery_v2'
16
- require 'base_cli'
17
-
18
-
19
- module Samples
20
- # Examples for the Google BigQuery API
21
- #
22
- # Sample usage:
23
- #
24
- # $ ./google-api-samples bigquery list_datasets --project_id=publicdata
25
- # $ ./google-api-samples bigquery list_tables --project_id=publicdata --dataset_id=samples
26
- # $ ./google-api-samples bigquery list_table_data --project_id=publicdata --dataset_id=samples --table_id=wikipedia --max_results=10
27
- class Bigquery < BaseCli
28
- Bigquery = Google::Apis::BigqueryV2
29
-
30
- desc 'list datasets', 'List datasets'
31
- method_option :project_id, type: :string
32
- def list_datasets
33
- bigquery = Bigquery::BigqueryService.new
34
- bigquery.authorization = user_credentials_for(Bigquery::AUTH_BIGQUERY)
35
-
36
- begin
37
- project_id = options[:project_id] || 'publicdata'
38
- result = bigquery.list_datasets(project_id)
39
- data = []
40
- data << ['id','kind']
41
- result.datasets.each do |dataset|
42
- data << [
43
- dataset.id,
44
- dataset.kind,
45
- ]
46
- end
47
- print_table(data)
48
- end
49
- end
50
-
51
- desc 'list tables', 'List tables'
52
- method_option :project_id, type: :string
53
- method_option :dataset_id, type: :string
54
- def list_tables
55
- bigquery = Bigquery::BigqueryService.new
56
- bigquery.authorization = user_credentials_for(Bigquery::AUTH_BIGQUERY)
57
-
58
- begin
59
- project_id = options[:project_id] || 'publicdata'
60
- dataset_id = options[:dataset_id] || 'samples'
61
- result = bigquery.list_tables(project_id, dataset_id)
62
- data = []
63
- data << ['id','kind']
64
- result.tables.each do |table|
65
- data << [
66
- table.id,
67
- table.kind,
68
- ]
69
- end
70
- print_table(data)
71
- end
72
- end
73
-
74
- desc 'list table data', 'List table data'
75
- method_option :project_id, type: :string
76
- method_option :dataset_id, type: :string
77
- method_option :table_id, type: :string
78
- def list_table_data
79
- bigquery = Bigquery::BigqueryService.new
80
- bigquery.authorization = user_credentials_for(Bigquery::AUTH_BIGQUERY)
81
-
82
- begin
83
- project_id = options[:project_id] || 'publicdata'
84
- dataset_id = options[:dataset_id] || 'samples'
85
- table_id = options[:table_id] || 'wikipedia'
86
- max_results = options[:max_results] || 10
87
- result = bigquery.list_table_data(project_id, dataset_id, table_id, max_results: max_results)
88
-
89
- datas = []
90
- result.rows.each do |row|
91
- data = []
92
- row.f.each do |field|
93
- data << field.v
94
- end
95
- datas << data
96
- end
97
- print_table(datas)
98
- end
99
- end
100
- end
101
- end
@@ -1,83 +0,0 @@
1
- # Copyright 2016 Google Inc.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- require 'google/apis/calendar_v3'
16
- require 'base_cli'
17
-
18
-
19
- module Samples
20
- # Examples for the Google Calendar API
21
- #
22
- # Sample usage:
23
- #
24
- # $ ./google-api-samples calendar list --limit 10
25
- class Calendar < BaseCli
26
- Calendar = Google::Apis::CalendarV3
27
-
28
- desc 'schedule', 'Create an event'
29
- method_option :summary, type: :string, required: true
30
- method_option :start, type: :string, required: true
31
- method_option :end , type: :string, required: true
32
- method_option :attendees, type: :array
33
- def schedule
34
- calendar = Calendar::CalendarService.new
35
- calendar.authorization = user_credentials_for(Calendar::AUTH_CALENDAR)
36
-
37
- event = {
38
- summary: options[:summary],
39
- attendees: Array(options[:attendees]).map { |email| { email: email } },
40
- start: {
41
- date_time: DateTime.parse(options[:start])
42
- },
43
- end: {
44
- date_time: DateTime.parse(options[:end])
45
- }
46
- }
47
-
48
- event = calendar.insert_event('primary', event, send_notifications: true)
49
- say "Created event '#{event.summary}' (#{event.id})"
50
- end
51
-
52
- desc 'list', 'List upcoming events'
53
- method_option :limit, type: :numeric
54
- def list()
55
- calendar = Calendar::CalendarService.new
56
- calendar.authorization = user_credentials_for(Calendar::AUTH_CALENDAR)
57
-
58
- page_token = nil
59
- limit = options[:limit] || 1000
60
- now = Time.now.iso8601
61
- begin
62
- result = calendar.list_events('primary',
63
- max_results: [limit, 100].min,
64
- single_events: true,
65
- order_by: 'startTime',
66
- time_min: now,
67
- page_token: page_token,
68
- fields: 'items(id,summary,start),next_page_token')
69
-
70
- result.items.each do |event|
71
- time = event.start.date_time || event.start.date
72
- say "#{time}, #{event.summary}"
73
- end
74
- limit -= result.items.length
75
- if result.next_page_token
76
- page_token = result.next_page_token
77
- else
78
- page_token = nil
79
- end
80
- end while !page_token.nil? && limit > 0
81
- end
82
- end
83
- end
@@ -1,82 +0,0 @@
1
- # Copyright 2016 Google Inc.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- require 'google/apis/drive_v3'
16
- require 'base_cli'
17
-
18
-
19
- module Samples
20
- # Examples for the Google Drive API
21
- #
22
- # Sample usage:
23
- #
24
- # $ ./google-api-samples drive upload ~/myvideo.mov
25
- class Drive < BaseCli
26
- Drive = Google::Apis::DriveV3
27
-
28
- desc 'upload FILE', 'Upload a file to Google Drive'
29
- method_option :name, type: :string
30
- def upload(file)
31
- drive = Drive::DriveService.new
32
- drive.authorization = user_credentials_for(Drive::AUTH_DRIVE)
33
-
34
- metadata = {
35
- name: options[:name] || file
36
- }
37
- result = drive.create_file(metadata, upload_source: file)
38
- say "Upload complete"
39
- end
40
-
41
- desc 'download FILE_ID', 'Download a file from Google Drive'
42
- method_option :out, type: :string
43
- def download(file_id)
44
- drive = Drive::DriveService.new
45
- drive.authorization = user_credentials_for(Drive::AUTH_DRIVE)
46
-
47
- dest = options[:out] || StringIO.new
48
- drive.get_file(file_id, download_dest: dest)
49
-
50
- if dest.is_a?(StringIO)
51
- dest.rewind
52
- STDOUT.write(dest.read)
53
- else
54
- say "File downloaded to #{options[:out]}"
55
- end
56
- end
57
-
58
- desc 'list QUERY', 'Search for files'
59
- method_option :limit, type: :numeric
60
- def list(query)
61
- drive = Drive::DriveService.new
62
- drive.authorization = user_credentials_for(Drive::AUTH_DRIVE)
63
-
64
- page_token = nil
65
- limit = options[:limit] || 1000
66
- begin
67
- result = drive.list_files(q: query,
68
- page_size: [limit, 100].min,
69
- page_token: page_token,
70
- fields: 'files(id,name),next_page_token')
71
-
72
- result.files.each { |file| puts "#{file.id}, #{file.name}" }
73
- limit -= result.files.length
74
- if result.next_page_token
75
- page_token = result.next_page_token
76
- else
77
- page_token = nil
78
- end
79
- end while !page_token.nil? && limit > 0
80
- end
81
- end
82
- end
@@ -1,157 +0,0 @@
1
- # Copyright 2016 Google Inc.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- require 'google/apis/gmail_v1'
16
- require 'base_cli'
17
- require 'rmail'
18
-
19
- module Samples
20
- # Examples for the Gmail API
21
- #
22
- # Sample usage:
23
- #
24
- # $ ./google-api-samples gmail send 'Hello there!' \
25
- # --to='recipient@example.com' --from='user@example.com' \
26
- # --subject='Hello'
27
- #
28
- class Gmail < BaseCli
29
- Gmail = Google::Apis::GmailV1
30
-
31
- desc 'get ID', 'Get a message for an id with the gmail API'
32
- def get(id)
33
- gmail = Gmail::GmailService.new
34
- gmail.authorization = user_credentials_for(Gmail::AUTH_SCOPE)
35
-
36
- result = gmail.get_user_message('me', id)
37
- payload = result.payload
38
- headers = payload.headers
39
-
40
- date = headers.any? { |h| h.name == 'Date' } ? headers.find { |h| h.name == 'Date' }.value : ''
41
- from = headers.any? { |h| h.name == 'From' } ? headers.find { |h| h.name == 'From' }.value : ''
42
- to = headers.any? { |h| h.name == 'To' } ? headers.find { |h| h.name == 'To' }.value : ''
43
- subject = headers.any? { |h| h.name == 'Subject' } ? headers.find { |h| h.name == 'Subject' }.value : ''
44
-
45
- body = payload.body.data
46
- if body.nil? && payload.parts.any?
47
- body = payload.parts.map { |part| part.body.data }.join
48
- end
49
-
50
- puts "id: #{result.id}"
51
- puts "date: #{date}"
52
- puts "from: #{from}"
53
- puts "to: #{to}"
54
- puts "subject: #{subject}"
55
- puts "body: #{body}"
56
- end
57
-
58
- desc 'send TEXT', 'Send a message with the gmail API'
59
- method_option :to, type: :string, required: true
60
- method_option :from, type: :string, required: true
61
- method_option :subject, type: :string, required: true
62
- def send(body)
63
- gmail = Gmail::GmailService.new
64
- gmail.authorization = user_credentials_for(Gmail::AUTH_SCOPE)
65
-
66
- message = RMail::Message.new
67
- message.header['To'] = options[:to]
68
- message.header['From'] = options[:from]
69
- message.header['Subject'] = options[:subject]
70
- message.body = body
71
-
72
- gmail.send_user_message('me',
73
- upload_source: StringIO.new(message.to_s),
74
- content_type: 'message/rfc822')
75
- end
76
-
77
- desc 'list', 'list messages with the gmail API'
78
- method_option :limit, type: :numeric, default: 100
79
- def list
80
- gmail = Gmail::GmailService.new
81
- gmail.authorization = user_credentials_for(Gmail::AUTH_SCOPE)
82
-
83
- messages = []
84
- next_page = nil
85
- begin
86
- result = gmail.list_user_messages('me', max_results: [options[:limit], 500].min, page_token: next_page)
87
- messages += result.messages
88
- break if messages.size >= options[:limit]
89
- next_page = result.next_page_token
90
- end while next_page
91
-
92
- puts "Found #{messages.size} messages"
93
- end
94
-
95
- desc 'search QUERY', 'Search messages matching the specified query with the gmail API'
96
- method_option :limit, type: :numeric, default: 100
97
- def search(query)
98
- gmail = Gmail::GmailService.new
99
- gmail.authorization = user_credentials_for(Gmail::AUTH_SCOPE)
100
-
101
- ids =
102
- gmail.fetch_all(max: options[:limit], items: :messages) do |token|
103
- gmail.list_user_messages('me', max_results: [options[:limit], 500].min, q: query, page_token: token)
104
- end.map(&:id)
105
-
106
- callback = lambda do |result, err|
107
- if err
108
- puts "error: #{err.inspect}"
109
- else
110
- headers = result.payload.headers
111
- date = headers.any? { |h| h.name == 'Date' } ? headers.find { |h| h.name == 'Date' }.value : ''
112
- subject = headers.any? { |h| h.name == 'Subject' } ? headers.find { |h| h.name == 'Subject' }.value : ''
113
- puts "#{result.id}, #{date}, #{subject}"
114
- end
115
- end
116
-
117
- ids.each_slice(1000) do |ids_array|
118
- gmail.batch do |gm|
119
- ids_array.each { |id| gm.get_user_message('me', id, &callback) }
120
- end
121
- end
122
- end
123
-
124
-
125
- desc 'impersonate and update email signature', 'Update the email signature of another user'
126
- method_option :impersonated_email, type: :string, required: true
127
- def update_email_signature(new_signature_content)
128
- gmail = Gmail::GmailService.new
129
-
130
- # You can download a client_secret.json from the service account page
131
- # of your developer's console
132
-
133
- attrs = {
134
- json_key_io: 'client_secret.json',
135
- scope: [ Gmail::AUTH_GMAIL_SETTINGS_BASIC ]
136
- }
137
-
138
- auth = Google::Auth::ServiceAccountCredentials.make_creds(attrs)
139
- impersonate_auth = auth.dup
140
- impersonate_auth.sub = impersonated_email
141
-
142
- user_id = impersonated_email
143
- send_as_email = update_user_setting_send_as
144
-
145
-
146
- gmail.authorization = impersonate_auth
147
-
148
- send_as_object = {"signature": new_signature_content}
149
- # options: {} is necessary for method to be called correctly.
150
- result = service.patch_user_setting_send_as(user_id, send_as_email, send_as_object, options: {})
151
-
152
-
153
- puts "signature of #{impersonated_email} is now: #{result.signature}"
154
- end
155
-
156
- end
157
- end
@@ -1,114 +0,0 @@
1
- # Copyright 2016 Google Inc.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- require 'google/apis/pubsub_v1'
16
- require 'base_cli'
17
-
18
-
19
- module Samples
20
- # Examples for the Google Cloud Pub/Sub API.
21
- #
22
- # Sample usage session:
23
- #
24
- # $ ./google-api-samples pubsub create_topic mytopic --project=623040240964
25
- # # ./google-api-samples pubsub subscribe mysub --topic=mytopic --project=623040240964
26
- # $ ./google-api-samples pubsub publish 'Hello!' --topic=mytopic --project=623040240964
27
- # $ ./google-api-samples pubsub pull mysub --project=623040240964
28
- # Received: Hello!
29
- # $ ./google-api-samples pubsub unsubscribe mysub --project=623040240964
30
- # $ ./google-api-samples pubsub delete_topic mytopic --project=623040240964
31
- #
32
- class PubSub < BaseCli
33
- Pubsub = Google::Apis::PubsubV1
34
-
35
- desc 'create_topic TOPIC_NAME', 'Create a topic'
36
- method_option :project, type: :string, required: true
37
- def create_topic(name)
38
- pubsub = Pubsub::PubsubService.new
39
- pubsub.authorization = Google::Auth.get_application_default([Pubsub::AUTH_PUBSUB])
40
- topic = "projects/#{options[:project]}/topics/#{name}"
41
-
42
- pubsub.create_topic(topic)
43
- end
44
-
45
- desc 'delete_topic TOPIC_NAME', 'Delete a topic'
46
- method_option :project, type: :string, required: true
47
- def delete_topic(name)
48
- pubsub = Pubsub::PubsubService.new
49
- pubsub.authorization = Google::Auth.get_application_default([Pubsub::AUTH_PUBSUB])
50
-
51
- topic = "projects/#{options[:project]}/topics/#{name}"
52
-
53
- pubsub.delete_topic(topic)
54
- end
55
-
56
- desc 'subscribe SUBSCRIPTION_NAME', 'Subscribe to a topic'
57
- method_option :project, type: :string, required: true
58
- method_option :topic, type: :string, required: true
59
- def subscribe(name)
60
- pubsub = Pubsub::PubsubService.new
61
- pubsub.authorization = Google::Auth.get_application_default([Pubsub::AUTH_PUBSUB])
62
-
63
- topic = "projects/#{options[:project]}/topics/#{options[:topic]}"
64
- subscription = "projects/#{options[:project]}/subscriptions/#{name}"
65
- pubsub.create_subscription(subscription, Pubsub::Subscription.new(topic: topic))
66
- end
67
-
68
- desc 'unsubscribe subscription_name', 'Ububscribe from a topic'
69
- method_option :project, type: :string, required: true
70
- def unsubscribe(name)
71
- pubsub = Pubsub::PubsubService.new
72
- pubsub.authorization = Google::Auth.get_application_default([Pubsub::AUTH_PUBSUB])
73
-
74
- subscription = "projects/#{options[:project]}/subscriptions/#{name}"
75
- pubsub.delete_subscription(subscription)
76
- end
77
-
78
-
79
- desc 'publish MESSAGE', 'Publish a message to a topic'
80
- method_option :project, type: :string, required: true
81
- method_option :topic, type: :string, required: true
82
- def publish(message)
83
- pubsub = Pubsub::PubsubService.new
84
- pubsub.authorization = Google::Auth.get_application_default([Pubsub::AUTH_PUBSUB])
85
- topic = "projects/#{options[:project]}/topics/#{options[:topic]}"
86
-
87
- request = Pubsub::PublishRequest.new(messages: [])
88
- request.messages << Pubsub::Message.new(data: message)
89
-
90
- pubsub.publish_topic(topic, request)
91
- end
92
-
93
- desc 'pull SUBSCRIPTION_NAME', 'Pull message(s) from the topic'
94
- method_option :project, type: :string, required: true
95
- method_option :max, type: :numeric, default: 5
96
- def pull(name)
97
- pubsub = Pubsub::PubsubService.new
98
- pubsub.authorization = Google::Auth.get_application_default([Pubsub::AUTH_PUBSUB])
99
-
100
- subscription = "projects/#{options[:project]}/subscriptions/#{name}"
101
-
102
- # Pull messages
103
- response = pubsub.pull_subscription(subscription, Pubsub::PullRequest.new(max_messages: options[:max]))
104
- response.received_messages.each do |received_message|
105
- data = received_message.message.data
106
- puts "Received: #{data}"
107
- end
108
-
109
- # Acknowledge receipt
110
- ack_ids = response.received_messages.map{ |msg| msg.ack_id }
111
- pubsub.acknowledge_subscription(subscription, Pubsub::AcknowledgeRequest.new(ack_ids: ack_ids))
112
- end
113
- end
114
- end